FAILED: patch "[PATCH] filelocks: use mount idmapping for setlease permission check" failed to apply to 6.2-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 6.2-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.2.y
git checkout FETCH_HEAD
git cherry-pick -x 42d0c4bdf753063b6eec55415003184d3ca24f6e
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '[email protected]' --subject-prefix 'PATCH 6.2.y' HEAD^..
Possible dependencies:
42d0c4bdf753 ("filelocks: use mount idmapping for setlease permission check") c65454a94726 ("fs: remove locks_inode")5970e15dbcfe ("filelock: move file locking definitions to separate header file")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 42d0c4bdf753063b6eec55415003184d3ca24f6e Mon Sep 17 00:00:00 2001
From: Seth Forshee <[email protected]>
Date: Thu, 9 Mar 2023 14:39:09 -0600
Subject: [PATCH] filelocks: use mount idmapping for setlease permission check
A user should be allowed to take out a lease via an idmapped mount if the fsuid matches the mapped uid of the inode. generic_setlease() is checking the unmapped inode uid, causing these operations to be denied.
Fix this by comparing against the mapped inode uid instead of the unmapped uid.
fs/locks.c +2 -1
@@ -1863,9 +1863,10 @@ int generic_setlease(struct file *filp, long arg, struct file_lock **flp, void **priv) {struct inode *inode =file_inode (filp); +vfsuid_t vfsuid =i_uid_into_vfsuid (file_mnt_idmap (filp), inode);int error; -if ((!uid_eq (current_fsuid (), inode->i_uid)) && !capable (CAP_LEASE )) +if ((!vfsuid_eq_kuid (vfsuid,current_fsuid ())) && !capable (CAP_LEASE ))return -EACCES ;if (!S_ISREG (inode->i_mode))return -EINVAL ;
PATCH 1/1 filelocks: use mount idmapping for setlease permission check
From: Seth Forshee <[email protected]>
[ Upstream commit 42d0c4bdf753063b6eec55415003184d3ca24f6e ]
A user should be allowed to take out a lease via an idmapped mount if the fsuid matches the mapped uid of the inode. generic_setlease() is checking the unmapped inode uid, causing these operations to be denied.
Fix this by comparing against the mapped inode uid instead of the unmapped uid.
--- fs/locks.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
fs/locks.c +2 -1
@@ -1862,9 +1862,10 @@ int generic_setlease(struct file *filp, long arg, struct file_lock **flp, void **priv) {struct inode *inode =locks_inode (filp); +vfsuid_t vfsuid =i_uid_into_vfsuid (file_mnt_user_ns (filp), inode);int error; -if ((!uid_eq (current_fsuid (), inode->i_uid)) && !capable (CAP_LEASE )) +if ((!vfsuid_eq_kuid (vfsuid,current_fsuid ())) && !capable (CAP_LEASE ))return -EACCES ;if (!S_ISREG (inode->i_mode))return -EINVAL ;
Signature · 1 line
2.39.1
Greg KH
maintainerRe: [PATCH 6.2] filelocks: use mount idmapping for setlease permission check
Quoted 11 lines · Seth Forshee (DigitalOcean)
From: Seth Forshee <[email protected]>
[ Upstream commit
42d0c4bdf753063b6eec55415003184d3ca24f6e]A user should be allowed to take out a lease via an idmapped mount if the fsuid matches the mapped uid of the inode.
generic_setlease()is checking the unmapped inode uid, causing these operations to be denied.Fix this by comparing against the mapped inode uid instead of the unmapped uid.
Quoted 7 lines
Fixes 9caccd41541a ("fs: introduce MOUNT_ATTR_IDMAP")Signed-off-by Seth Forshee (DigitalOcean) <[email protected]>Signed-off-by Christian Brauner (Microsoft) <[email protected]>--- fs/locks.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
Now queued up, thanks.
greg k-h