On Fri, 23 Apr 2010, Josef Bacik wrote: > > __generic_block_fiemap is called by generic_block_fiemap which takes the > i_mutex. The only reason we have __generic_block_fiemap is because gfs2 needs > to do its own locking magic before we go calling get_block. The idea is that > the file size doesn't change while we're doing this. Ok, maybe just a comment then.. > As for reading the size several times, I can read it once and store it in a > local variable if you prefer, but theres no way to know if len is smaller than > the size or not, which is why I'm constantly doing i_size_read(). If thats what > you would prefer I can do that, just let me know. .. or a comment _and_ a "read size once into a variable". Not a big deal, it just wasn't entirely clear to me and I hadn't checked the callchain. > > Issue #2: "blk_to_logical(inode, 0)"? WTF? Since when has shifting zero > > ever resulted in anything interesting or relevant? There's at least two of > > those things. > > > > Umm, yeah I'm sorry? I have no idea why I did that. I think its because I was > getting the logical offset of the first block + size, which is just stupid > because the logical offset is 0, so all I can say is I'm sorry that me a year > ago was alot dumber than me now :). Thanks, Ok, fix that, and I think the patch will be a clear improvement. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html