• Ritesh Harjani (IBM)'s avatar
    ext2: Move direct-io to use iomap · fb5de435
    Ritesh Harjani (IBM) authored
    This patch converts ext2 direct-io path to iomap interface.
    - This also takes care of DIO_SKIP_HOLES part in which we return -ENOTBLK
      from ext2_iomap_begin(), in case if the write is done on a hole.
    - This fallbacks to buffered-io in case of DIO_SKIP_HOLES or in case of
      a partial write or if any error is detected in ext2_iomap_end().
      We try to return -ENOTBLK in such cases.
    - For any unaligned or extending DIO writes, we pass
      IOMAP_DIO_FORCE_WAIT flag to ensure synchronous writes.
    - For extending writes we set IOMAP_F_DIRTY in ext2_iomap_begin because
      otherwise with dsync writes on devices that support FUA, generic_write_sync
      won't be called and we might miss inode metadata updates.
    - Since ext2 already now uses _nolock vartiant of sync write. Hence
      there is no inode lock problem with iomap in this patch.
    - ext2_iomap_ops are now being shared by DIO, DAX & fiemap path
    Tested-by: default avatarDisha Goel <disgoel@linux.ibm.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarRitesh Harjani (IBM) <ritesh.list@gmail.com>
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Message-Id: <610b672a52f2a7ff6dc550fd14d0f995806232a5.1682069716.git.ritesh.list@gmail.com>
    fb5de435
inode.c 47.2 KB