From: Andriy Skulysh Date: Wed, 15 Jul 2015 08:15:37 +0000 (+0300) Subject: LU-6305 osd-ldiskfs: buffer head leak in osd X-Git-Tag: 2.7.59~58 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=6630a5fccdc287b61d1cf532aed37b98bb7103f2;p=fs%2Flustre-release.git LU-6305 osd-ldiskfs: buffer head leak in osd iam_new_leaf() should release new_leaf in case of an error Change-Id: I48d358cb823d83b5412a1e4b88ab3ea13a0bee35 Xyratex-bug-id: MRP-2338 Signed-off-by: Andriy Skulysh Reviewed-by: Alexey Lyashkov Reviewed-by: Andrew Perepechko Reviewed-on: http://review.whamcloud.com/13909 Tested-by: Jenkins Reviewed-by: Alex Zhuravlev Reviewed-by: Andreas Dilger Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lustre/osd-ldiskfs/osd_iam.c b/lustre/osd-ldiskfs/osd_iam.c index 0251e5b..8d10fe9 100644 --- a/lustre/osd-ldiskfs/osd_iam.c +++ b/lustre/osd-ldiskfs/osd_iam.c @@ -1803,12 +1803,12 @@ static int iam_new_leaf(handle_t *handle, struct iam_leaf *leaf) iam_unlock_htree(path->ip_container, lh); do_corr(schedule()); err = iam_txn_dirty(handle, path, new_leaf); - brelse(new_leaf); if (err == 0) err = ldiskfs_mark_inode_dirty(handle, obj); do_corr(schedule()); } else err = -ENOMEM; + brelse(new_leaf); } assert_inv(iam_leaf_check(leaf)); assert_inv(iam_leaf_check(&iam_leaf_path(leaf)->ip_leaf));