This is an automated email from the git hooks/post-receive script.
andyp pushed a commit to branch master
in repository gfs2-utils.
commit 61b3351f9bcf2b5451fb9f620442a8a7130fb439
Author: Andrew Price <anprice(a)redhat.com>
AuthorDate: Fri Nov 12 21:52:28 2021 +0000
libgfs2: Remove start and length from struct rgrp_tree
These are essentially duplicates of rt_addr and rt_skip.
Signed-off-by: Andrew Price <anprice(a)redhat.com>
---
gfs2/fsck/rgrepair.c | 34 ++++++++--------------------------
gfs2/libgfs2/libgfs2.h | 2 --
gfs2/libgfs2/super.c | 13 ++++---------
3 files changed, 12 insertions(+), 37 deletions(-)
diff --git a/gfs2/fsck/rgrepair.c b/gfs2/fsck/rgrepair.c
index 129e3e5c..eec59681 100644
--- a/gfs2/fsck/rgrepair.c
+++ b/gfs2/fsck/rgrepair.c
@@ -754,7 +754,6 @@ static void compute_rgrp_layout(struct gfs2_sbd *sdp, struct osi_root
*rgtree, i
{
struct device *dev;
struct rgrp_tree *rl, *rlast = NULL;
- struct osi_node *n, *next = NULL;
unsigned int rgrp = 0, nrgrp, rglength;
uint64_t rgaddr;
@@ -771,20 +770,11 @@ static void compute_rgrp_layout(struct gfs2_sbd *sdp, struct
osi_root *rgtree, i
uint64_t old_length, new_chunk;
unsigned new_rgrps;
- printf("Existing resource groups:\n");
- for (rgrp = 0, n = osi_first(rgtree); n; n = next, rgrp++) {
- next = osi_next(n);
- rl = (struct rgrp_tree *)n;
+ for (struct osi_node *n = osi_first(rgtree); n; n = osi_next(n))
+ rlast = (struct rgrp_tree *)n;
- printf("%d: start: %" PRIu64 " (0x%"
- PRIx64 "), length = %"PRIu64" (0x%"
- PRIx64 ")\n", rgrp + 1, rl->start, rl->start,
- rl->length, rl->length);
- rlast = rl;
- }
- rlast->start = rlast->rt_addr;
rglength = rgrp_size(rlast);
- rlast->length = rglength;
+ rlast->rt_skip = rglength;
old_length = rlast->rt_addr + rglength;
new_chunk = dev->length - old_length;
new_rgrps = new_chunk / rglength;
@@ -795,20 +785,15 @@ static void compute_rgrp_layout(struct gfs2_sbd *sdp, struct
osi_root *rgtree, i
printf("\nNew resource groups:\n");
for (; rgrp < nrgrp; rgrp++) {
if (rgrp) {
- rgaddr = rlast->start + rlast->length;
+ rgaddr = rlast->rt_addr + rlast->rt_skip;
rl = rgrp_insert(rgtree, rgaddr);
- rl->length = rglength;
+ rl->rt_skip = rglength;
} else {
rgaddr = LGFS2_SB_ADDR(sdp) + 1;
rl = rgrp_insert(rgtree, rgaddr);
- rl->length = dev->length -
+ rl->rt_skip = dev->length -
(nrgrp - 1) * (dev->length / nrgrp);
}
- rl->start = rgaddr;
- /* printf("%d: start: %" PRIu64 " (0x%"
- PRIx64 "), length = %"PRIu64" (0x%"
- PRIx64 ")\n", rgrp + 1, rl->start, rl->start,
- rl->length, rl->length);*/
rlast = rl;
}
@@ -825,11 +810,10 @@ static int calc_rgrps(struct gfs2_sbd *sdp)
next = osi_next(n);
rl = (struct rgrp_tree *)n;
- bitblocks = rgblocks2bitblocks(sdp->sd_bsize, rl->length, &rgblocks);
+ bitblocks = rgblocks2bitblocks(sdp->sd_bsize, rl->rt_skip, &rgblocks);
- rl->rt_addr = rl->start;
rl->rt_length = bitblocks;
- rl->rt_data0 = rl->start + bitblocks;
+ rl->rt_data0 = rl->rt_addr + bitblocks;
rl->rt_data = rgblocks;
rl->rt_bitbytes = rgblocks / GFS2_NBBY;
rl->rt_free = rgblocks;
@@ -970,8 +954,6 @@ static int expect_rindex_sanity(struct gfs2_sbd *sdp, int *num_rgs)
fprintf(stderr, "Out of memory in %s\n", __FUNCTION__);
exit(-1);
}
- exp->start = rgd->start;
- exp->length = rgd->length;
exp->rt_data0 = rgd->rt_data0;
exp->rt_data = rgd->rt_data;
exp->rt_length = rgd->rt_length;
diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h
index dd97441f..e37f5c57 100644
--- a/gfs2/libgfs2/libgfs2.h
+++ b/gfs2/libgfs2/libgfs2.h
@@ -175,8 +175,6 @@ typedef struct _lgfs2_rgrps *lgfs2_rgrps_t;
struct rgrp_tree {
struct osi_node node;
- uint64_t start; /* The offset of the beginning of this resource group */
- uint64_t length; /* The length of this resource group */
struct gfs2_bitmap *bits;
lgfs2_rgrps_t rgrps;
diff --git a/gfs2/libgfs2/super.c b/gfs2/libgfs2/super.c
index cd2a2ecf..1bdfe254 100644
--- a/gfs2/libgfs2/super.c
+++ b/gfs2/libgfs2/super.c
@@ -224,29 +224,26 @@ int rindex_read(struct gfs2_sbd *sdp, uint64_t *rgcount, int *ok)
*ok = 0;
if (prev_rgd == NULL)
continue;
- addr = prev_rgd->rt_addr + prev_rgd->length;
+ addr = prev_rgd->rt_data0 + prev_rgd->rt_data;
}
rgd = rgrp_insert(&sdp->rgtree, addr);
rgd->rt_length = be32_to_cpu(ri.ri_length);
rgd->rt_data0 = be64_to_cpu(ri.ri_data0);
rgd->rt_data = be32_to_cpu(ri.ri_data);
rgd->rt_bitbytes = be32_to_cpu(ri.ri_bitbytes);
- rgd->start = addr;
if (prev_rgd) {
/* If rg addresses go backwards, it's not sane
(or it's converted from gfs1). */
if (!sdp->gfs1) {
- if (prev_rgd->start >= rgd->start)
+ if (prev_rgd->rt_addr >= rgd->rt_addr)
*ok = 0;
else if (!rgd_seems_ok(sdp, rgd))
*ok = 0;
else if (*ok && rg > 2 && prev_length &&
- prev_length != rgd->start -
- prev_rgd->start)
+ prev_length != rgd->rt_addr - prev_rgd->rt_addr)
*ok = good_on_disk(sdp, rgd);
}
- prev_length = rgd->start - prev_rgd->start;
- prev_rgd->length = rgrp_size(prev_rgd);
+ prev_length = rgd->rt_addr - prev_rgd->rt_addr;
}
if(gfs2_compute_bitstructs(sdp->sd_bsize, rgd))
@@ -255,8 +252,6 @@ int rindex_read(struct gfs2_sbd *sdp, uint64_t *rgcount, int *ok)
(*rgcount)++;
prev_rgd = rgd;
}
- if (prev_rgd)
- prev_rgd->length = rgrp_size(prev_rgd);
if (*rgcount == 0)
return -1;
return 0;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.