@@ -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