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

Bob Peterson rpeterso at redhat.com
Mon Apr 7 15:15:45 UTC 2014


----- Original Message -----
> 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
> 
> 

Hi,

I can't say I followed it all, but it looks like a good approach. Good job.

Regards,

Bob Peterson
Red Hat File Systems




More information about the Cluster-devel mailing list