fs/affs: release old buffer head on error path

commit 70779b8973 upstream.

The reference count of the old buffer head should be decremented on path
that fails to get the new buffer head.

Fixes: 6b4657667b ("fs/affs: add rename exchange")
CC: stable@vger.kernel.org # 4.14+
Signed-off-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Pan Bian
2021-01-20 00:51:13 -08:00
committed by Greg Kroah-Hartman
parent df2d431a1e
commit 885a2d24c2

View File

@@ -460,8 +460,10 @@ affs_xrename(struct inode *old_dir, struct dentry *old_dentry,
return -EIO; return -EIO;
bh_new = affs_bread(sb, d_inode(new_dentry)->i_ino); bh_new = affs_bread(sb, d_inode(new_dentry)->i_ino);
if (!bh_new) if (!bh_new) {
affs_brelse(bh_old);
return -EIO; return -EIO;
}
/* Remove old header from its parent directory. */ /* Remove old header from its parent directory. */
affs_lock_dir(old_dir); affs_lock_dir(old_dir);