diff mbox series

fs/affs: release old buffer head on error path

Message ID 20210120085113.118984-1-bianpan2016@163.com (mailing list archive)
State New, archived
Headers show
Series fs/affs: release old buffer head on error path | expand

Commit Message

Pan Bian Jan. 20, 2021, 8:51 a.m. UTC
The reference count of the old buffer head should be decremented on path
that fails to get the new buffer head.

Fixes: 6b4657667ba0 ("fs/affs: add rename exchange")
Signed-off-by: Pan Bian <bianpan2016@163.com>
---
 fs/affs/namei.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

David Sterba Feb. 9, 2021, 4:12 p.m. UTC | #1
On Wed, Jan 20, 2021 at 12:51:13AM -0800, Pan Bian wrote:
> The reference count of the old buffer head should be decremented on path
> that fails to get the new buffer head.
> 
> Fixes: 6b4657667ba0 ("fs/affs: add rename exchange")
> Signed-off-by: Pan Bian <bianpan2016@163.com>

Thanks, added to affs branch. The fix is not that urgent for 5.11 so
I'll send it for the 5.12 merge window. I've added the stable tag so
it'll propagate to 4.14+.
diff mbox series

Patch

diff --git a/fs/affs/namei.c b/fs/affs/namei.c
index 41c5749f4db7..5400a876d73f 100644
--- a/fs/affs/namei.c
+++ b/fs/affs/namei.c
@@ -460,8 +460,10 @@  affs_xrename(struct inode *old_dir, struct dentry *old_dentry,
 		return -EIO;
 
 	bh_new = affs_bread(sb, d_inode(new_dentry)->i_ino);
-	if (!bh_new)
+	if (!bh_new) {
+		affs_brelse(bh_old);
 		return -EIO;
+	}
 
 	/* Remove old header from its parent directory. */
 	affs_lock_dir(old_dir);