Hi,
On 11/01/18 21:14, Andreas Gruenbacher wrote:
Hello,
this patch queue converts gfs2 to use iomap for buffered writes, which
uses multi-page block allocations for large writes instead of requiring
a separate allocation for each page of data.
The patches apply on top of the gfs2 punch-hole patch queue [*].
So far, the only user of iomap_file_buffered_write was xfs, which
doesn't do data journaling. To support gfs2's data journaling, patch
08/10 adds a new iomap_written iomap operation: if defined, this
operation is called by iomap_file_buffered_write whenever a page has
been written to.
This patch queue doesn't convert direct I/O, so we still have a
remaining user of the old gfs2_write_begin / gfs2_write_end interface
left. Once direct I/O has been converted to use iomap, we'll get rid of
that code, though.
Thanks,
Andreas
[*] https://www.redhat.com/archives/cluster-devel/2017-December/msg00089.html
Andreas Gruenbacher (10):
gfs2: Typo fixes
gfs2: Add gfs2_max_stuffed_size
gfs2: Minor gfs2_page_add_databufs cleanup
gfs2: gfs2_stuffed_write_end cleanup
gfs2: gfs2_stuffed_write_end cleanup (fixup)
gfs2: Remove ordered write mode handling from gfs2_trans_add_data
gfs2: Iomap cleanups and improvements
iomap: New iomap_written operation
gfs2: Implement iomap buffered write support (1)
gfs2: Implement iomap buffered write support (2)
It looks like patches 1 to 3 inclusive could be sent right away as they
are worthwhile clean ups in their own right - no need to delay those.
Patches 4 and 5 should be merged into one I think. Otherwise it looks
like everything is going in the right direction generally, the other
comments which have been made notwithstanding,
Steve.
fs/gfs2/aops.c | 178 ++++++++++++++++------
fs/gfs2/aops.h | 19 +++
fs/gfs2/bmap.c | 407 +++++++++++++++++++++++++++++++++++++-------------
fs/gfs2/bmap.h | 5 +-
fs/gfs2/dir.c | 3 +-
fs/gfs2/file.c | 49 +++++-
fs/gfs2/incore.h | 5 +
fs/gfs2/inode.c | 10 +-
fs/gfs2/log.h | 7 +-
fs/gfs2/quota.c | 5 +-
fs/gfs2/trans.c | 27 +---
fs/iomap.c | 21 ++-
include/linux/iomap.h | 9 ++
13 files changed, 558 insertions(+), 187 deletions(-)
create mode 100644 fs/gfs2/aops.h