ovl: use I_MUTEX_PARENT when locking parent in ovl_create_temp()
commit 5f1c8965 upstream. 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> Tested-by:
<syzbot+7836a68852a10ec3d790@syzkaller.appspotmail.com> Fixes: c63e56a4 ("ovl: do not open/llseek lower file with upper sb_writers held") Fixes: d2c99558 ("ovl: Call ovl_create_temp() without lock held.") Signed-off-by:
NeilBrown <neil@brown.name> Signed-off-by:
Amir Goldstein <amir73il@gmail.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Loading
Please sign in to comment