Hi, On Fri, Oct 03, 2008 at 05:59:06PM -0400, Theodore Ts'o wrote: > From: Josef Bacik <jbacik@xxxxxxxxxx> > > Any block based fs (this patch includes ext3) just has to declare its own > fiemap() function and then call this generic function with its own > get_block_t. This works well for block based filesystems that will map > multiple contiguous blocks at one time, but will work for filesystems that > only map one block at a time, you will just end up with an "extent" for each > block. One gotcha is this will not play nicely where there is hole+data > after the EOF. This function will assume its hit the end of the data as soon > as it hits a hole after the EOF, so if there is any data past that it will > not pick that up. AFAIK no block based fs does this anyway, but its in the > comments of the function anyway just in case. > > Signed-off-by: Josef Bacik <jbacik@xxxxxxxxxx> > Signed-off-by: Mark Fasheh <mfasheh@xxxxxxxx> > Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx> > Cc: linux-fsdevel@xxxxxxxxxxxxxxx Would it be possible to move the inode mutex out of generic_block_fiemap() and into the callers? The defined lock ordering in GFS2 is inode mutex -> inode glock, and thus we want to be able to lock in that order. We should be able to use generic_block_fiemap() for GFS2 in that case. Thanks, Steve. -- 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