On Mon, Oct 29, 2007 at 04:29:07PM -0600, Andreas Dilger wrote: > On Oct 29, 2007 16:13 -0600, Andreas Dilger wrote: > > On Oct 29, 2007 13:57 -0700, Mark Fasheh wrote: > > > I'm a little bit confused by fe_offset. Is it a physical offset, or a > > > logical offset? The reason I ask is that your description above says "FIEMAP > > > ioctl will return the logical to physical mapping for the extent that > > > contains the specified logical byte address." Which seems to imply physical, > > > but your math to get to the next logical start in a very fragmented file, > > > implies that fe_offset is a logical offset: > > > > > > fm_start = fm_extents[fm_extent_count - 1].fe_offset + > > > fm_extents[fm_extent_count - 1].fe_length + 1; > > > > Note the distinction between "fe_offset" (which is a physical offset for > > a single extent) and "fm_offset" (which is a logical offset for that file). > > Actually, that is completely bunk. What it should say is something like: > "filefrag can easily call the FIEMAP ioctls repeatedly using the returned > fm_start and fm_length as the start offset for the next ioctl: > > fiemap.fm_start = fiemap.fm_start + fiemap.fm_length + 1; Yeah - that's where I was going with my question. This is much more clear now, thanks. --Mark -- Mark Fasheh Senior Software Developer, Oracle mark.fasheh@xxxxxxxxxx - 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