On Thu, Jul 07, 2022 at 04:07:53PM -0700, Kuniyuki Iwashima wrote:
From: Eric Sandeen sandeen@redhat.com
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@redhat.com Signed-off-by: Eric Sandeen sandeen@redhat.com Reviewed-by: Darrick J. Wong djwong@kernel.org Signed-off-by: Darrick J. Wong djwong@kernel.org Fixes: 7dcf5c3e4527 ("xfs: add RENAME_WHITEOUT support") Signed-off-by: Kuniyuki Iwashima kuniyu@amazon.com
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.
LGTM Acked-by: Darrick J. Wong djwong@kernel.org
--D
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) {
error = xfs_rename_alloc_whiteout(target_dp, &wip); if (error) return error;ASSERT(!(flags & (RENAME_NOREPLACE | RENAME_EXCHANGE)));
-- 2.30.2