[Cluster-devel] [PATCH 00/14] gfs2_grow and libgfs2 rgrp API improvements

Andrew Price anprice at redhat.com
Thu Apr 3 15:12:33 UTC 2014


Hi,

This patch set aims to do three main things:

- Improve and simplify libgfs2's rgrp APIs, bringing them closer to being proper library code
- Improve gfs2_grow using the new rgrp APIs for rgrp alignment and size calculation, larger rgrps by default, etc.
- Fix problems in libgfs2 and the utils uncovered along the way

These patches take us closer to being able to hide the implementation of the rgrp lists (currently using osi_tree.h) within libgfs2 and decoupling so that many resource group sets (lgfs2_rgrps_t's) can be manipulated independently. Bookkeeping will eventually be done by the applications instead of keeping application-specific data in the gfs2_sbd structure so this takes us closer to being able to remove sbd.rgtree and sbd.rgcalc.

Although the net diff is 284 insertions, that will be offset significantly once the old rgrp functions in libgfs2 can be removed (when fsck, convert and edit no longer use them).

I've thrown various tests at this set and added one to the in-tree test suite. Static analysis with coverity shows 1 defect fixed and 0 added.

Please review,
Andy

Andrew Price (14):
  mkfs.gfs2: Make dev a member of mkfs_opts
  libgfs2: Add lgfs2_space_for_data()
  libgfs2: Don't try to read more than IOV_MAX iovecs
  mkfs.gfs2: Fix the resource group layout strategy, again
  libgfs2: Don't call gfs2_blk2rgrpd in gfs2_set_bitmap
  libgfs2: Add abstractions for rgrp tree traversal
  libgfs2: Split out the rindex calculation from lgfs2_rgrp_append
  libgfs2: Consolidate rgrp_tree and bitstruct allocations
  libgfs2: Add a lgfs2_rindex_read_fd() function
  libgfs2: Const-ify the 'ri' argument to gfs2_rindex_out
  libgfs2: Fix off-by-one in lgfs2_rgrps_plan
  libgfs2: Stick to the (rgrp) plan in lgfs2_rindex_entry_new
  gfs2_grow: Migrate to the new resource group API
  gfs2_grow: Add stripe alignment

 gfs2/edit/hexedit.c    |   2 +-
 gfs2/fsck/metawalk.c   |   2 +-
 gfs2/fsck/pass5.c      |   6 +-
 gfs2/libgfs2/buf.c     |  57 ++++---
 gfs2/libgfs2/fs_bits.c |   5 +-
 gfs2/libgfs2/fs_ops.c  |  30 +++-
 gfs2/libgfs2/libgfs2.h |  31 ++--
 gfs2/libgfs2/ondisk.c  |   4 +-
 gfs2/libgfs2/rgrp.c    | 422 +++++++++++++++++++++++++++++++++++--------------
 gfs2/mkfs/gfs2_mkfs.h  |   1 -
 gfs2/mkfs/main_grow.c  | 351 +++++++++++++++++++++-------------------
 gfs2/mkfs/main_mkfs.c  | 227 +++++++++++++++-----------
 tests/mkfs.at          |   4 +
 13 files changed, 713 insertions(+), 429 deletions(-)

-- 
1.8.5.3




More information about the Cluster-devel mailing list