Memory leak on revoke error
Hi,
I ran across this rare memory leak in revoke_lo_scan_elements
while working on bz 349271. This patch is for upstream gfs2.
Regards,
Bob Peterson
--
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
--
fs/gfs2/lops.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
index 29a8689..6dfcf4c 100644
--- a/fs/gfs2/lops.c
+++ b/fs/gfs2/lops.c
@@ -421,8 +421,10 @@ static int revoke_lo_scan_elements(struct gfs2_jdesc *jd, unsigned int start,
blkno = be64_to_cpu(*(__be64 *)(bh->b_data + offset));
error = gfs2_revoke_add(sdp, blkno, start);
- if (error < 0)
+ if (error < 0) {
+ brelse(bh);
return error;
+ }
else if (error)
sdp->sd_found_revokes++;
|