diff options
author | Andreas Gruenbacher | 2024-06-01 21:49:54 +0200 |
---|---|---|
committer | Andreas Gruenbacher | 2024-06-04 16:00:34 +0200 |
commit | 51316523d1f233c1cea182d4cccbc3b22ef75d87 (patch) | |
tree | 4958ff9c5e09a6437583175df16ed6cd052a00a6 /fs/gfs2 | |
parent | 713f8834389f4b34bc8b449412202543c8b32214 (diff) |
gfs2: Minor gfs2_quota_init error path cleanup
Add a fail_brelse label and use it where useful. Move variable bh out
of the loop to extend its visibility to the new label. No functional
change.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'fs/gfs2')
-rw-r--r-- | fs/gfs2/quota.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c index aa9cf0102848..d75eeb327060 100644 --- a/fs/gfs2/quota.c +++ b/fs/gfs2/quota.c @@ -1407,6 +1407,7 @@ int gfs2_quota_init(struct gfs2_sbd *sdp) unsigned int found = 0; unsigned int hash; unsigned int bm_size; + struct buffer_head *bh; u64 dblock; u32 extlen = 0; int error; @@ -1426,7 +1427,6 @@ int gfs2_quota_init(struct gfs2_sbd *sdp) return error; for (x = 0; x < blocks; x++) { - struct buffer_head *bh; const struct gfs2_quota_change *qc; unsigned int y; @@ -1440,10 +1440,8 @@ int gfs2_quota_init(struct gfs2_sbd *sdp) bh = gfs2_meta_ra(ip->i_gl, dblock, extlen); if (!bh) goto fail; - if (gfs2_metatype_check(sdp, bh, GFS2_METATYPE_QC)) { - brelse(bh); - goto fail; - } + if (gfs2_metatype_check(sdp, bh, GFS2_METATYPE_QC)) + goto fail_brelse; qc = (const struct gfs2_quota_change *)(bh->b_data + sizeof(struct gfs2_meta_header)); for (y = 0; y < sdp->sd_qc_per_block && slot < sdp->sd_quota_slots; @@ -1461,10 +1459,8 @@ int gfs2_quota_init(struct gfs2_sbd *sdp) hash = gfs2_qd_hash(sdp, qc_id); qd = qd_alloc(hash, sdp, qc_id); - if (qd == NULL) { - brelse(bh); - goto fail; - } + if (qd == NULL) + goto fail_brelse; set_bit(QDF_CHANGE, &qd->qd_flags); qd->qd_change = qc_change; @@ -1494,6 +1490,8 @@ int gfs2_quota_init(struct gfs2_sbd *sdp) return 0; +fail_brelse: + brelse(bh); fail: gfs2_quota_cleanup(sdp); return error; |