diff options
author | Ritesh Harjani (IBM) <ritesh.list@gmail.com> | 2023-04-21 15:16:15 +0530 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2023-05-16 11:32:42 +0200 |
commit | fb5de4358e1aa4753dce73c4dc1aca73ff39cedd (patch) | |
tree | d647a3da6edfb7b8c8ec0d9c9982a897c0eec6c4 /fs/ext2/ialloc.c | |
parent | d05307042500e3f2c06fc2f9e76e8db31d61c7c0 (diff) |
ext2: Move direct-io to use iomap
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: Disha Goel <disgoel@linux.ibm.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Message-Id: <610b672a52f2a7ff6dc550fd14d0f995806232a5.1682069716.git.ritesh.list@gmail.com>
Diffstat (limited to 'fs/ext2/ialloc.c')
0 files changed, 0 insertions, 0 deletions