On Apr 3, 2024, at 12:17 PM, Kent Overstreet <[email protected]> wrote: > > On Wed, Apr 03, 2024 at 03:22:41AM -0400, Sweet Tea Dorminy wrote: >> For many years, various btrfs users have written programs to discover >> the actual disk space used by files, using root-only interfaces. >> However, this information is a great fit for fiemap: it is inherently >> tied to extent information, all filesystems can use it, and the >> capabilities required for FIEMAP make sense for this additional >> information also. >> >> Hence, this patchset adds various additional information to fiemap, >> and extends filesystems (but not iomap) to return it. This uses some of >> the reserved padding in the fiemap extent structure, so programs unaware >> of the changes will be unaffected. >> >> This is based on next-20240403. I've tested the btrfs part of this with >> the standard btrfs testing matrix locally and manually, and done minimal >> testing of the non-btrfs parts. >> >> I'm unsure whether btrfs should be returning the entire physical extent >> referenced by a particular logical range, or just the part of the >> physical extent referenced by that range. The v2 thread has a discussion >> of this. > > I believe there was some talk of using the padding for a device ID, so > that fiemap could properly support multi device filesystems. Are we sure > this is the best use of those bytes?
The current (pre-patch) fiemap_extent struct is:
struct fiemap_extent {
__u64 fe_logical; /* logical offset in bytes for the start of
* the extent from the beginning of the file */
__u64 fe_physical; /* physical offset in bytes for the start
* of the extent from the beginning of the disk */
__u64 fe_length; /* length in bytes for this extent */
__u64 fe_reserved64[2];
__u32 fe_flags; /* FIEMAP_EXTENT_* flags for this extent */
__u32 fe_reserved[3];
};
and this series is only changing fe_reserved64[0] to fe_phys_length.
There was discussion in the past of using "fe_reserved[0]" for the device
ID, which is still OK.
Cheers, Andreas
signature.asc
Description: Message signed with OpenPGP
