Skip to content

Commit 4b3113a

Browse files
AstralBobAndreas Gruenbacher
authored andcommitted
gfs2: remove RDF_UPTODATE flag
The new GLF_INSTANTIATE_NEEDED flag obsoletes the old rgrp flag GFS2_RDF_UPTODATE, so this patch replaces it like we did with inodes. Signed-off-by: Bob Peterson <rpeterso@redhat.com> Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
1 parent ec1d398 commit 4b3113a

3 files changed

Lines changed: 15 additions & 24 deletions

File tree

fs/gfs2/glops.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ static void rgrp_go_inval(struct gfs2_glock *gl, int flags)
228228
gfs2_rgrp_brelse(rgd);
229229
WARN_ON_ONCE(!(flags & DIO_METADATA));
230230
truncate_inode_pages_range(mapping, start, end);
231-
rgd->rd_flags &= ~GFS2_RDF_UPTODATE;
231+
set_bit(GLF_INSTANTIATE_NEEDED, &gl->gl_flags);
232232
}
233233

234234
static void gfs2_rgrp_go_dump(struct seq_file *seq, struct gfs2_glock *gl,

fs/gfs2/incore.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ struct gfs2_rgrpd {
119119
u32 rd_flags;
120120
u32 rd_extfail_pt; /* extent failure point */
121121
#define GFS2_RDF_CHECK 0x10000000 /* check for unlinked inodes */
122-
#define GFS2_RDF_UPTODATE 0x20000000 /* rg is up to date */
123122
#define GFS2_RDF_ERROR 0x40000000 /* error in rg */
124123
#define GFS2_RDF_PREFERRED 0x80000000 /* This rgrp is preferred */
125124
#define GFS2_RDF_MASK 0xf0000000 /* mask for internal flags */

fs/gfs2/rgrp.c

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -932,7 +932,7 @@ static int read_rindex_entry(struct gfs2_inode *ip)
932932
goto fail;
933933

934934
rgd->rd_rgl = (struct gfs2_rgrp_lvb *)rgd->rd_gl->gl_lksb.sb_lvbptr;
935-
rgd->rd_flags &= ~(GFS2_RDF_UPTODATE | GFS2_RDF_PREFERRED);
935+
rgd->rd_flags &= ~GFS2_RDF_PREFERRED;
936936
if (rgd->rd_data > sdp->sd_max_rg_data)
937937
sdp->sd_max_rg_data = rgd->rd_data;
938938
spin_lock(&sdp->sd_rindex_spin);
@@ -1185,19 +1185,20 @@ static void rgrp_set_bitmap_flags(struct gfs2_rgrpd *rgd)
11851185
}
11861186

11871187
/**
1188-
* gfs2_rgrp_bh_get - Read in a RG's header and bitmaps
1189-
* @rgd: the struct gfs2_rgrpd describing the RG to read in
1188+
* gfs2_rgrp_go_instantiate - Read in a RG's header and bitmaps
1189+
* @gh: the glock holder representing the rgrpd to read in
11901190
*
11911191
* Read in all of a Resource Group's header and bitmap blocks.
11921192
* Caller must eventually call gfs2_rgrp_brelse() to free the bitmaps.
11931193
*
11941194
* Returns: errno
11951195
*/
11961196

1197-
static int gfs2_rgrp_bh_get(struct gfs2_rgrpd *rgd)
1197+
int gfs2_rgrp_go_instantiate(struct gfs2_holder *gh)
11981198
{
1199+
struct gfs2_glock *gl = gh->gh_gl;
1200+
struct gfs2_rgrpd *rgd = gl->gl_object;
11991201
struct gfs2_sbd *sdp = rgd->rd_sbd;
1200-
struct gfs2_glock *gl = rgd->rd_gl;
12011202
unsigned int length = rgd->rd_length;
12021203
struct gfs2_bitmap *bi;
12031204
unsigned int x, y;
@@ -1225,15 +1226,13 @@ static int gfs2_rgrp_bh_get(struct gfs2_rgrpd *rgd)
12251226
}
12261227
}
12271228

1228-
if (!(rgd->rd_flags & GFS2_RDF_UPTODATE)) {
1229-
gfs2_rgrp_in(rgd, (rgd->rd_bits[0].bi_bh)->b_data);
1230-
rgrp_set_bitmap_flags(rgd);
1231-
rgd->rd_flags |= (GFS2_RDF_UPTODATE | GFS2_RDF_CHECK);
1232-
rgd->rd_free_clone = rgd->rd_free;
1233-
GLOCK_BUG_ON(rgd->rd_gl, rgd->rd_reserved);
1234-
/* max out the rgrp allocation failure point */
1235-
rgd->rd_extfail_pt = rgd->rd_free;
1236-
}
1229+
gfs2_rgrp_in(rgd, (rgd->rd_bits[0].bi_bh)->b_data);
1230+
rgrp_set_bitmap_flags(rgd);
1231+
rgd->rd_flags |= GFS2_RDF_CHECK;
1232+
rgd->rd_free_clone = rgd->rd_free;
1233+
GLOCK_BUG_ON(rgd->rd_gl, rgd->rd_reserved);
1234+
/* max out the rgrp allocation failure point */
1235+
rgd->rd_extfail_pt = rgd->rd_free;
12371236
if (cpu_to_be32(GFS2_MAGIC) != rgd->rd_rgl->rl_magic) {
12381237
rgd->rd_rgl->rl_unlinked = cpu_to_be32(count_unlinked(rgd));
12391238
gfs2_rgrp_ondisk2lvb(rgd->rd_rgl,
@@ -1263,7 +1262,7 @@ static int update_rgrp_lvb(struct gfs2_rgrpd *rgd, struct gfs2_holder *gh)
12631262
{
12641263
u32 rl_flags;
12651264

1266-
if (rgd->rd_flags & GFS2_RDF_UPTODATE)
1265+
if (!test_bit(GLF_INSTANTIATE_NEEDED, &gh->gh_gl->gl_flags))
12671266
return 0;
12681267

12691268
if (cpu_to_be32(GFS2_MAGIC) != rgd->rd_rgl->rl_magic)
@@ -1286,13 +1285,6 @@ static int update_rgrp_lvb(struct gfs2_rgrpd *rgd, struct gfs2_holder *gh)
12861285
return 0;
12871286
}
12881287

1289-
int gfs2_rgrp_go_instantiate(struct gfs2_holder *gh)
1290-
{
1291-
struct gfs2_rgrpd *rgd = gh->gh_gl->gl_object;
1292-
1293-
return gfs2_rgrp_bh_get(rgd);
1294-
}
1295-
12961288
/**
12971289
* gfs2_rgrp_brelse - Release RG bitmaps read in with gfs2_rgrp_bh_get()
12981290
* @rgd: The resource group

0 commit comments

Comments
 (0)