On Nov 05, 2007 08:04 -0800, Badari Pulavarty wrote: > On Sat, 2007-11-03 at 09:36 +0800, Andreas Dilger wrote: > > But... this implies that every user of bh->b_data needs to kmap, and I > > don't see that in the code anywhere else. That makes me think something > > else is going wrong here. > > Most cases, this is handled in ll_rw_block() code - when we submit the > buffer head for IO. If the page is in highmem, we will end up creating > a bounce bufer for it. > > In our case, JBD code is trying to look at the data to do checksum > on it. Thats why we have to kmap() the page before looking. My point is that there is a LOT of code in ext[234] that dereferences bh->b_data without kmap() (e.g. group descriptors, bitmaps, superblock, inode tables, etc). Does that imply that something is forcing those bh pages into lowmem, or is the journal bh page in question being allocated in some different way that allows it to be in highmem? Cheers, Andreas -- Andreas Dilger Sr. Software Engineer, Lustre Group Sun Microsystems of Canada, Inc. - To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html