xfs: fix xfs_ifree() error handling to not leak perag ref
[ Upstream commit6f5097e336
] For some reason commit9a5280b312
("xfs: reorder iunlink remove operation in xfs_ifree") replaced a jump to the exit path in the event of an xfs_difree() error with a direct return, which skips releasing the perag reference acquired at the top of the function. Restore the original code to drop the reference on error. Fixes:9a5280b312
("xfs: reorder iunlink remove operation in xfs_ifree") Signed-off-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com> Signed-off-by: Leah Rumancik <leah.rumancik@gmail.com> Acked-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
9e7b231687
Коммит
5caa3a1279
|
@ -2634,7 +2634,7 @@ xfs_ifree(
|
|||
*/
|
||||
error = xfs_difree(tp, pag, ip->i_ino, &xic);
|
||||
if (error)
|
||||
return error;
|
||||
goto out;
|
||||
|
||||
error = xfs_iunlink_remove(tp, pag, ip);
|
||||
if (error)
|
||||
|
|
Загрузка…
Ссылка в новой задаче