[PATCH stable 4.9, 4.14, 4.19, 5.4, 5.10] xfs: remove incorrect ASSERT in xfs_rename

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Eric Sandeen <sandeen@xxxxxxxxxx>

commit e445976537ad139162980bee015b7364e5b64fff upstream.

Ayushman Dutta reported our 5.10 kernel hit the warning.  It was because
the original commit misses a Fixes tag and was not backported to the stable
tree.  The fix is merged in 5.16, but it conflicts in 4.9 - 5.10 because
of the idmapped mount changes:

  ++<<<<<<< HEAD
   +      ASSERT(!(flags & (RENAME_NOREPLACE | RENAME_EXCHANGE)));
   +      error = xfs_rename_alloc_whiteout(target_dp, &wip);
  ++=======
  +       error = xfs_rename_alloc_whiteout(mnt_userns, target_dp, &wip);
  ++>>>>>>> e445976537ad (xfs: remove incorrect ASSERT in xfs_rename)

We can resolve this by removing mnt_userns from the argument.

This ASSERT in xfs_rename is a) incorrect, because
(RENAME_WHITEOUT|RENAME_NOREPLACE) is a valid combination, and
b) unnecessary, because actual invalid flag combinations are already
handled at the vfs level in do_renameat2() before we get called.
So, remove it.

Reported-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx>
Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>
Fixes: 7dcf5c3e4527 ("xfs: add RENAME_WHITEOUT support")
Signed-off-by: Kuniyuki Iwashima <kuniyu@xxxxxxxxxx>
---
I confirmed this can be applied cleanly on the latest 4.9 - 5.10 stable
branch, but if there is any problem, please let me know.
---
 fs/xfs/xfs_inode.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index e958b1c74561..03497741aef7 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -3170,7 +3170,6 @@ xfs_rename(
 	 * appropriately.
 	 */
 	if (flags & RENAME_WHITEOUT) {
-		ASSERT(!(flags & (RENAME_NOREPLACE | RENAME_EXCHANGE)));
 		error = xfs_rename_alloc_whiteout(target_dp, &wip);
 		if (error)
 			return error;
-- 
2.30.2




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux