cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
* [Cluster-devel] [PATCH 0/4] gfs2 iomap: fiemap and lseek
@ 2017-05-25 19:39 Andreas Gruenbacher
  2017-05-25 19:39 ` [Cluster-devel] [PATCH 1/4] GFS2: Make height info part of metapath Andreas Gruenbacher
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Andreas Gruenbacher @ 2017-05-25 19:39 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Here's an update of a patch queue that implements iomap in gfs2, switches
fiemap over to use iomap, and now also implements lseek SEEK_HOLE and SEEK_DATA
on top of iomap as well.  Several issues with the previous version of this
patch queue have been fixed:

 * Adds a IOMAP_F_BOUNDARY iomap flag that indicates when iomap has reached
   a "metadata boundary", and fetching the next mapping is likely to incur an
   additional I/O.  This flag is used to set the bh buffer boundary flag.

 * lseek SEEK_HOLE / SEEK_DATA is now implemented using a vfs helper and some
   filesystem wiring-up code.  This could be made generic if the iomap_ops are
   exposed at the vfs level.

 * Rounding fixes now that gfs2_get_iomap takes byte numbers instead of block
   numbers.
   
 * Fixes to make gfs2_get_iomap work beyond EOF (needed for allocations).

 * Glock lock taking has been moved from gfs2_get_iomap to its callers; it
   made no sense to drop glocks when iterating mappings.

 * The gfs2_iomap tracepoint is now split into gfs2_iomap_start and
   gfs2_iomap_end.

This patch queue still doesn't handle multi-page writes via iomap, but having
reasonable fiemap and lseek implementations is a start at least.

Thanks,
Andreas


Andreas Gruenbacher (1):
  gfs2: Implement lseek SEEK_HOLE / SEEK_DATA via iomap

Bob Peterson (3):
  GFS2: Make height info part of metapath
  GFS2: Implement iomap for block_map
  GFS2: Switch fiemap implementation to use iomap

 fs/gfs2/Kconfig       |   1 +
 fs/gfs2/bmap.c        | 292 ++++++++++++++++++++++++++++++++++++--------------
 fs/gfs2/bmap.h        |   4 +
 fs/gfs2/file.c        |  14 ++-
 fs/gfs2/inode.c       |  54 ++++++++--
 fs/gfs2/inode.h       |   1 +
 fs/gfs2/trace_gfs2.h  |  65 +++++++++++
 fs/iomap.c            |  55 ++++++++++
 include/linux/iomap.h |   5 +-
 9 files changed, 398 insertions(+), 93 deletions(-)

-- 
2.7.4



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [Cluster-devel] [PATCH 0/4] gfs2 iomap: fiemap and lseek
@ 2017-06-07 14:11 Andreas Gruenbacher
  2017-06-07 14:11 ` [Cluster-devel] [PATCH 1/4] GFS2: Make height info part of metapath Andreas Gruenbacher
  0 siblings, 1 reply; 10+ messages in thread
From: Andreas Gruenbacher @ 2017-06-07 14:11 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Here's an update of a patch queue that implements iomap in gfs2, switches
fiemap over to use iomap, and now also implements lseek SEEK_HOLE and SEEK_DATA
on top of iomap as well.  Several issues with the previous version of this
patch queue have been fixed:

 * Adds a IOMAP_F_BOUNDARY iomap flag that indicates when iomap has reached
   a "metadata boundary", and fetching the next mapping is likely to incur an
   additional I/O.  This flag is used to set the bh buffer boundary flag.

 * lseek SEEK_HOLE / SEEK_DATA is now implemented using a vfs helper and some
   filesystem wiring-up code.  This could be made generic if the iomap_ops are
   exposed at the vfs level.

 * Rounding fixes now that gfs2_get_iomap takes byte numbers instead of block
   numbers.
   
 * Fixes to make gfs2_get_iomap work beyond EOF (needed for allocations).

 * Glock lock taking has been moved from gfs2_get_iomap to its callers; it
   made no sense to drop glocks when iterating mappings.

 * The gfs2_iomap tracepoint is now split into gfs2_iomap_start and
   gfs2_iomap_end.

This patch queue still doesn't handle multi-page writes via iomap, but having
reasonable fiemap and lseek implementations is a start at least.

Thanks,
Andreas


Andreas Gruenbacher (1):
  gfs2: Implement lseek SEEK_HOLE / SEEK_DATA via iomap

Bob Peterson (3):
  GFS2: Make height info part of metapath
  GFS2: Implement iomap for block_map
  GFS2: Switch fiemap implementation to use iomap

 fs/gfs2/Kconfig       |   1 +
 fs/gfs2/bmap.c        | 292 ++++++++++++++++++++++++++++++++++++--------------
 fs/gfs2/bmap.h        |   4 +
 fs/gfs2/file.c        |  14 ++-
 fs/gfs2/inode.c       |  54 ++++++++--
 fs/gfs2/inode.h       |   1 +
 fs/gfs2/trace_gfs2.h  |  65 +++++++++++
 fs/iomap.c            |  55 ++++++++++
 include/linux/iomap.h |   5 +-
 9 files changed, 398 insertions(+), 93 deletions(-)

-- 
2.7.4



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [Cluster-devel] [PATCH 0/4] gfs2: Partial iomap support
@ 2017-09-21 17:43 Andreas Gruenbacher
  2017-09-21 17:43 ` [Cluster-devel] [PATCH 1/4] GFS2: Make height info part of metapath Andreas Gruenbacher
  0 siblings, 1 reply; 10+ messages in thread
From: Andreas Gruenbacher @ 2017-09-21 17:43 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Here is an update on Bob Peterson's gfs2 iomap patches:

From Bob (3):
1. GFS2: Make height info part of metapath
   Prepare the block mapping functions to using iomap.

2  GFS2: Implement iomap for block_map
   Switch to iomap for mapping logical to physical blocks; implement
   gfs2_block_map on top of gfs2_iomap_begin.  This covers reads and
   writes, but does not switch to multi-page write support, yet.

3. GFS2: Switch fiemap implementation to use iomap
   Switch to iomap_fiemap + gfs2_iomap_begin in gfs2_fiemap.

From myself (1):
4. gfs2: Implement SEEK_HOLE / SEEK_DATA via iomap
   Like fiemap, switch to iomap_seek_{hole,data} in gfs2_llseek.

The patches apply on top of the iomap infrastructure patches posted as
part of the "ext4: SEEK_HOLE / SEEK_DATA via iomap" patch queue a week
ago (https://lwn.net/Articles/734027/).

The patches have been carefully reviewed by Bob and myself, and they
have passed xfstests with no regressions.  We can queue them up for the
next merge window as soon as Theodore Ts'o has merged the ext4 patches
into his ext4 queue.

Thanks,
Andreas

 fs/gfs2/Kconfig       |   1 +
 fs/gfs2/bmap.c        | 309 +++++++++++++++++++++++++++++++++++++-------------
 fs/gfs2/bmap.h        |   4 +
 fs/gfs2/file.c        |  17 ++-
 fs/gfs2/inode.c       |  72 ++++++++----
 fs/gfs2/inode.h       |   2 +
 fs/gfs2/trace_gfs2.h  |  65 +++++++++++
 include/linux/iomap.h |   3 +-
 8 files changed, 365 insertions(+), 108 deletions(-)

-- 
2.13.3



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2017-09-21 17:43 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-25 19:39 [Cluster-devel] [PATCH 0/4] gfs2 iomap: fiemap and lseek Andreas Gruenbacher
2017-05-25 19:39 ` [Cluster-devel] [PATCH 1/4] GFS2: Make height info part of metapath Andreas Gruenbacher
2017-05-25 19:39 ` [Cluster-devel] [PATCH 2/4] GFS2: Implement iomap for block_map Andreas Gruenbacher
2017-05-25 19:39 ` [Cluster-devel] [PATCH 3/4] GFS2: Switch fiemap implementation to use iomap Andreas Gruenbacher
2017-05-25 19:39 ` [Cluster-devel] [PATCH 4/4] gfs2: Implement lseek SEEK_HOLE / SEEK_DATA via iomap Andreas Gruenbacher
2017-06-06 13:41   ` Bob Peterson
2017-06-07 13:23     ` Christoph Hellwig
2017-06-07 14:11       ` Andreas Gruenbacher
  -- strict thread matches above, loose matches on Subject: below --
2017-06-07 14:11 [Cluster-devel] [PATCH 0/4] gfs2 iomap: fiemap and lseek Andreas Gruenbacher
2017-06-07 14:11 ` [Cluster-devel] [PATCH 1/4] GFS2: Make height info part of metapath Andreas Gruenbacher
2017-09-21 17:43 [Cluster-devel] [PATCH 0/4] gfs2: Partial iomap support Andreas Gruenbacher
2017-09-21 17:43 ` [Cluster-devel] [PATCH 1/4] GFS2: Make height info part of metapath Andreas Gruenbacher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).