Skip to content

fiemap extension for more physical information

Sweet Tea Dorminy linux-bcachefs linux-btrfs linux-doc linux-f2fs-devel linux-fsdevel lkml 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest13 patches 24 repliesIn review
  2. v25 patches 8 repliesSuperseded
  3. v13 patches 6 repliesSuperseded

Changes in v3 from the cover letter

- Adapted all the direct users of fiemap, except iomap, to emit the new fiemap information, as far as I understand the other filesystems.

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/13fs: fiemap: add physical_length field to extentsDocumentation/filesystems/fiemap.rst fs/ioctl.c include/uapi/linux/fiemap.h+47 -164 replies
2/13fs: fiemap: update fiemap_fill_next_extent() signatureDocumentation/filesystems/fiemap.rst fs/bcachefs/fs.c fs/btrfs/extent_io.c +10 more+33 -243 replies
3/13fs: fiemap: add new COMPRESSED extent stateDocumentation/filesystems/fiemap.rst fs/ioctl.c include/uapi/linux/fiemap.h+8 -11 reply
4/13btrfs: fiemap: emit new COMPRESSED state.fs/btrfs/extent_io.c+2 -21 reply
5/13btrfs: fiemap: return extent physical sizefs/btrfs/extent_io.c+45 -250 replies
6/13nilfs2: fiemap: return correct extent physical lengthfs/nilfs2/inode.c+8 -41 reply
7/13ext4: fiemap: return correct extent physical lengthfs/ext4/extents.c+1 -11 reply
8/13f2fs: fiemap: add physical length to trace_f2fs_fiemapfs/f2fs/data.c fs/f2fs/inline.c include/trace/events/f2fs.h+11 -71 reply
9/13f2fs: fiemap: return correct extent physical lengthfs/f2fs/data.c fs/f2fs/inline.c+17 -100 replies
10/13ocfs2: fiemap: return correct extent physical lengthfs/ocfs2/extent_map.c+4 -21 reply
11/13bcachefs: fiemap: return correct extent physical lengthfs/bcachefs/fs.c+12 -62 replies
12/13f2fs: fiemap: emit new COMPRESSED statefs/f2fs/data.c+1 -00 replies
13/13bcachefs: fiemap: emit new COMPRESSED statefs/bcachefs/fs.c+1 -13 replies

Reviews trailers per patch

1 of 13 patches has a Reviewed-by or Acked-by.

PatchAndreas Dilger
1/13
2/13
3/13R-b
4/13
5/13
6/13
7/13
8/13
9/13
10/13
11/13
12/13
13/13

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v3 thread

Cover letter [PATCH v3 00/13] fiemap extension for more physical information

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.

Changelog:

v3:
- Adapted all the direct users of fiemap, except iomap, to emit the new fiemap information, as far as I understand the other filesystems.

v2:
- Adopted PHYS_LEN flag and COMPRESSED flag from the previous version,
as per Andreas Dilger' comment.
https://patchwork.ozlabs.org/project/linux-ext4/patch/4f8d5dc5b51a43efaf16c39398c23a6276e40a30.1386778303.git.dsterba@suse.cz/
- https://lore.kernel.org/linux-fsdevel/[email protected]/T/#t

v1: https://lore.kernel.org/linux-fsdevel/20240315030334.GQ6184@frogsfrogsfrogs/T/#t

Sweet Tea Dorminy (13):
fs: fiemap: add physical_length field to extents
fs: fiemap: update fiemap_fill_next_extent() signature
fs: fiemap: add new COMPRESSED extent state
btrfs: fiemap: emit new COMPRESSED state.
btrfs: fiemap: return extent physical size
nilfs2: fiemap: return correct extent physical length
ext4: fiemap: return correct extent physical length
f2fs: fiemap: add physical length to trace_f2fs_fiemap
f2fs: fiemap: return correct extent physical length
ocfs2: fiemap: return correct extent physical length
bcachefs: fiemap: return correct extent physical length
f2fs: fiemap: emit new COMPRESSED state
bcachefs: fiemap: emit new COMPRESSED state

 Documentation/filesystems/fiemap.rst | 35 ++++++++++----
 fs/bcachefs/fs.c                     | 17 +++++--
 fs/btrfs/extent_io.c                 | 72 ++++++++++++++++++----------
 fs/ext4/extents.c                    |  3 +-
 fs/f2fs/data.c                       | 36 +++++++++-----
 fs/f2fs/inline.c                     |  7 +--
 fs/ioctl.c                           | 11 +++--
 fs/iomap/fiemap.c                    |  2 +-
 fs/nilfs2/inode.c                    | 18 ++++---
 fs/ntfs3/frecord.c                   |  7 +--
 fs/ocfs2/extent_map.c                | 10 ++--
 fs/smb/client/smb2ops.c              |  1 +
 include/linux/fiemap.h               |  2 +-
 include/trace/events/f2fs.h          | 10 ++--
 include/uapi/linux/fiemap.h          | 34 ++++++++++---
 15 files changed, 178 insertions(+), 87 deletions(-)

base-commit: 75e31f66adc4c8d049e8aac1f079c1639294cd65

Signature · 1 line
2.43.0