* [PATCH] ovl: use I_MUTEX_PARENT when locking parent in ovl_create_temp()
[not found] <CAOQ4uxi=bHN+UuTGHF8AH=GwJcED94KAPE0GAgB5zmv3PEhU8g@mail.gmail.com>
@ 2025-08-04 12:11 ` NeilBrown
0 siblings, 0 replies; only message in thread
From: NeilBrown @ 2025-08-04 12:11 UTC (permalink / raw)
To: Amir Goldstein, Al Viro, Miklos Szeredi, Christian Brauner
Cc: Alan Huang, syzbot, linux-bcachefs, linux-kernel, syzkaller-bugs,
linux-unionfs
ovl_create_temp() treats "workdir" as a parent in which it creates an
object so it should use I_MUTEX_PARENT.
Prior to the commit identified below the lock was taken by the caller
which sometimes used I_MUTEX_PARENT and sometimes used I_MUTEX_NORMAL.
The use of I_MUTEX_NORMAL was incorrect but unfortunately copied into
ovl_create_temp().
Note to backporters: This patch only applies after the last Fixes given
below (post v6.16). To fix the bug in v6.7 and later the
inode_lock() call in ovl_copy_up_workdir() needs to nest using
I_MUTEX_PARENT.
Link: https://lore.kernel.org/all/67a72070.050a0220.3d72c.0022.GAE@google.com/
Cc: stable@vger.kernel.org
Reported-by: syzbot+7836a68852a10ec3d790@syzkaller.appspotmail.com
Fixes: c63e56a4a652 ("ovl: do not open/llseek lower file with upper sb_writers held")
Fixes: d2c995581c7c ("ovl: Call ovl_create_temp() without lock held.")
Signed-off-by: NeilBrown <neil@brown.name>
---
fs/overlayfs/dir.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c
index 70b8687dc45e..dbd63a74df4b 100644
--- a/fs/overlayfs/dir.c
+++ b/fs/overlayfs/dir.c
@@ -225,7 +225,7 @@ struct dentry *ovl_create_temp(struct ovl_fs *ofs, struct dentry *workdir,
struct ovl_cattr *attr)
{
struct dentry *ret;
- inode_lock(workdir->d_inode);
+ inode_lock_nested(workdir->d_inode, I_MUTEX_PARENT);
ret = ovl_create_real(ofs, workdir,
ovl_lookup_temp(ofs, workdir), attr);
inode_unlock(workdir->d_inode);
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2025-08-04 12:11 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CAOQ4uxi=bHN+UuTGHF8AH=GwJcED94KAPE0GAgB5zmv3PEhU8g@mail.gmail.com>
2025-08-04 12:11 ` [PATCH] ovl: use I_MUTEX_PARENT when locking parent in ovl_create_temp() NeilBrown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).