OSDN Git Service

gfs2: Add gfs2_blk2rgrpd comment and fix incorrect use
authorSteven Whitehouse <swhiteho@redhat.com>
Fri, 22 Dec 2017 12:13:07 +0000 (13:13 +0100)
committerBob Peterson <rpeterso@redhat.com>
Wed, 17 Jan 2018 13:34:24 +0000 (06:34 -0700)
Document when to use gfs2_blk2rgrpd for "inexact" resource group
matching.  Based on that, fix an incorrect use of gfs2_blk2rgrpd in
sweep_bh_for_rgrps.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
fs/gfs2/bmap.c
fs/gfs2/rgrp.c

index d5f0d96..8b993e4 100644 (file)
@@ -1133,7 +1133,7 @@ more_rgrps:
                        gfs2_assert_withdraw(sdp,
                                     gfs2_glock_is_locked_by_me(rd_gh->gh_gl));
                } else {
-                       rgd = gfs2_blk2rgrpd(sdp, bn, false);
+                       rgd = gfs2_blk2rgrpd(sdp, bn, true);
                        ret = gfs2_glock_nq_init(rgd->rd_gl, LM_ST_EXCLUSIVE,
                                                 0, rd_gh);
                        if (ret)
index 95b2a57..211d7a5 100644 (file)
@@ -489,6 +489,13 @@ void gfs2_rgrp_verify(struct gfs2_rgrpd *rgd)
  * @blk: The data block number
  * @exact: True if this needs to be an exact match
  *
+ * The @exact argument should be set to true by most callers. The exception
+ * is when we need to match blocks which are not represented by the rgrp
+ * bitmap, but which are part of the rgrp (i.e. padding blocks) which are
+ * there for alignment purposes. Another way of looking at it is that @exact
+ * matches only valid data/metadata blocks, but with @exact false, it will
+ * match any block within the extent of the rgrp.
+ *
  * Returns: The resource group, or NULL if not found
  */