On Thu, Nov 08, 2012 at 10:50:49AM -0600, Mark Tinguely wrote: > On 10/18/12 00:11, Dave Chinner wrote: > >From: Dave Chinner<dchinner@xxxxxxxxxx> > > > >fiemap is used to map extents of used space on files. it's just an > >array of extents, though, so there's no reason it can only index > >*used* space. > > > >Ther eis need for getting freespace layout information into > >userspace. For example, defragmentation programs would find it > >useful to be able to map the free space in the filesystem to > >work out where it is best to move data to defragment it. > >Alternatively, knowing where free space is enables us to identify > >extents that need to be moved to defragment free space. > > > >Hence, extend fiemap with the FIEMAP_FLAG_FREESPACE to indicate that > >the caller wants to map free space in the range fm_start bytes from > >the start of the filesystem for fm_length bytes. > > > >Because XFS can report extents in size order without needing to > >sort, and this information is useful to xfs_fsr, also add > >FIEMAP_FLAG_FREESPACE_SIZE to tell the filesystem to return a > >freespace map ordered by extent size rather than offset. If there > >are multiple extents of the same size, then they are ordered by > >offset. > > > >Signed-off-by: Dave Chinner<dchinner@xxxxxxxxxx> > >--- > > ... > > > -------------- > >diff --git a/include/linux/fiemap.h b/include/linux/fiemap.h > >index d830747..f4fbb9f 100644 > >--- a/include/linux/fiemap.h > >+++ b/include/linux/fiemap.h > > include/uabi/linux/fiemap.h > ^^^^ > other than that, it looks good. include/uapi/ actaully, but that change was made after I posted the patches so there's no surprise that It didn't apply. As it is, this needs to be redone into an FS_IOC_FIEMAPFS ioctl in response to other reviews. I've already done that work (a week ago), I just haven't fully tested it yet so I haven't reported it... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- 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