mbox series

[0/9,V4] New ->fiemap infrastructure and ->bmap removal

Message ID 20190731141245.7230-1-cmaiolino@redhat.com (mailing list archive)
Headers show
Series New ->fiemap infrastructure and ->bmap removal | expand

Message

Carlos Maiolino July 31, 2019, 2:12 p.m. UTC
Hi.

This is the 4th version of the complete series with the goal to deprecate and
eventually remove ->bmap() interface, in lieu of FIEMAP.

Besides the rebase of the patchset against latest Linus's tree, the only changes
in this patchset regarding to the previous version, are concentrated in patches
4/9 and 8/9.

In patch 4  (fibmap: Use bmap instead of ->bmap method in ioctl_fibmap), the
difference compared with previous version, is a change in ioclt_fibmap() return
value, I spotted while testing this new version with filesystems using data
inlined in inodes. It now returns 0 in case of error instead an error value,
otherwise it would be an user interface change.


In patch 8 (Use FIEMAP for FIBMAP calls), there are minor changes regarding V3.
It just contains a coding style fix pointed by Andreas in the previous version,
but now, it also include changes to all filesystems which supports both FIEMAP
and FIBMAP, and need some sort of special handling (like inlined data, reflinked
inodes, etc).

Again, Patch 9 is xfs-specific removal of ->bmap() interface, without any
changes compared to the previous version.



I do apologize for taking so long to rework this patchset, I've got busy with
other stuff.

Comments are appreciated, specially regarding if the error values returned by
ioctl_fibmap() make sense.


Cheers

Carlos Maiolino (9):
  fs: Enable bmap() function to properly return errors
  cachefiles: drop direct usage of ->bmap method.
  ecryptfs: drop direct calls to ->bmap
  fibmap: Use bmap instead of ->bmap method in ioctl_fibmap
  fs: Move start and length fiemap fields into fiemap_extent_info
  iomap: Remove length and start fields from iomap_fiemap
  fiemap: Use a callback to fill fiemap extents
  Use FIEMAP for FIBMAP calls
  xfs: Get rid of ->bmap

 drivers/md/md-bitmap.c |  16 ++++--
 fs/bad_inode.c         |   3 +-
 fs/btrfs/inode.c       |   5 +-
 fs/cachefiles/rdwr.c   |  27 ++++-----
 fs/ecryptfs/mmap.c     |  16 ++----
 fs/ext2/ext2.h         |   3 +-
 fs/ext2/inode.c        |   6 +-
 fs/ext4/ext4.h         |   3 +-
 fs/ext4/extents.c      |  15 +++--
 fs/f2fs/data.c         |  15 ++++-
 fs/f2fs/f2fs.h         |   3 +-
 fs/gfs2/inode.c        |   9 ++-
 fs/hpfs/file.c         |   4 +-
 fs/inode.c             | 105 +++++++++++++++++++++++++++++----
 fs/ioctl.c             | 128 ++++++++++++++++++++++++++---------------
 fs/iomap.c             |  40 ++-----------
 fs/jbd2/journal.c      |  22 ++++---
 fs/nilfs2/inode.c      |   5 +-
 fs/nilfs2/nilfs.h      |   3 +-
 fs/ocfs2/extent_map.c  |  13 ++++-
 fs/ocfs2/extent_map.h  |   3 +-
 fs/overlayfs/inode.c   |   5 +-
 fs/xfs/xfs_aops.c      |  24 --------
 fs/xfs/xfs_iops.c      |  19 +++---
 fs/xfs/xfs_trace.h     |   1 -
 include/linux/fs.h     |  33 +++++++----
 include/linux/iomap.h  |   2 +-
 mm/page_io.c           |  11 ++--
 28 files changed, 320 insertions(+), 219 deletions(-)

Comments

Carlos Maiolino Aug. 2, 2019, 10:20 a.m. UTC | #1
On Wed, Jul 31, 2019 at 04:12:36PM +0200, Carlos Maiolino wrote:
> Hi.

Please, disconsider this patchset, I wrongly rebased it and there are many
missing changes that should be done to properly rebase it agains 5.3

> 
> This is the 4th version of the complete series with the goal to deprecate and
> eventually remove ->bmap() interface, in lieu of FIEMAP.
> 
> Besides the rebase of the patchset against latest Linus's tree, the only changes
> in this patchset regarding to the previous version, are concentrated in patches
> 4/9 and 8/9.
> 
> In patch 4  (fibmap: Use bmap instead of ->bmap method in ioctl_fibmap), the
> difference compared with previous version, is a change in ioclt_fibmap() return
> value, I spotted while testing this new version with filesystems using data
> inlined in inodes. It now returns 0 in case of error instead an error value,
> otherwise it would be an user interface change.
> 
> 
> In patch 8 (Use FIEMAP for FIBMAP calls), there are minor changes regarding V3.
> It just contains a coding style fix pointed by Andreas in the previous version,
> but now, it also include changes to all filesystems which supports both FIEMAP
> and FIBMAP, and need some sort of special handling (like inlined data, reflinked
> inodes, etc).
> 
> Again, Patch 9 is xfs-specific removal of ->bmap() interface, without any
> changes compared to the previous version.
> 
> 
> 
> I do apologize for taking so long to rework this patchset, I've got busy with
> other stuff.
> 
> Comments are appreciated, specially regarding if the error values returned by
> ioctl_fibmap() make sense.
> 
> 
> Cheers
> 
> Carlos Maiolino (9):
>   fs: Enable bmap() function to properly return errors
>   cachefiles: drop direct usage of ->bmap method.
>   ecryptfs: drop direct calls to ->bmap
>   fibmap: Use bmap instead of ->bmap method in ioctl_fibmap
>   fs: Move start and length fiemap fields into fiemap_extent_info
>   iomap: Remove length and start fields from iomap_fiemap
>   fiemap: Use a callback to fill fiemap extents
>   Use FIEMAP for FIBMAP calls
>   xfs: Get rid of ->bmap
> 
>  drivers/md/md-bitmap.c |  16 ++++--
>  fs/bad_inode.c         |   3 +-
>  fs/btrfs/inode.c       |   5 +-
>  fs/cachefiles/rdwr.c   |  27 ++++-----
>  fs/ecryptfs/mmap.c     |  16 ++----
>  fs/ext2/ext2.h         |   3 +-
>  fs/ext2/inode.c        |   6 +-
>  fs/ext4/ext4.h         |   3 +-
>  fs/ext4/extents.c      |  15 +++--
>  fs/f2fs/data.c         |  15 ++++-
>  fs/f2fs/f2fs.h         |   3 +-
>  fs/gfs2/inode.c        |   9 ++-
>  fs/hpfs/file.c         |   4 +-
>  fs/inode.c             | 105 +++++++++++++++++++++++++++++----
>  fs/ioctl.c             | 128 ++++++++++++++++++++++++++---------------
>  fs/iomap.c             |  40 ++-----------
>  fs/jbd2/journal.c      |  22 ++++---
>  fs/nilfs2/inode.c      |   5 +-
>  fs/nilfs2/nilfs.h      |   3 +-
>  fs/ocfs2/extent_map.c  |  13 ++++-
>  fs/ocfs2/extent_map.h  |   3 +-
>  fs/overlayfs/inode.c   |   5 +-
>  fs/xfs/xfs_aops.c      |  24 --------
>  fs/xfs/xfs_iops.c      |  19 +++---
>  fs/xfs/xfs_trace.h     |   1 -
>  include/linux/fs.h     |  33 +++++++----
>  include/linux/iomap.h  |   2 +-
>  mm/page_io.c           |  11 ++--
>  28 files changed, 320 insertions(+), 219 deletions(-)
> 
> -- 
> 2.20.1
>