Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'ovl-fixes-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs

Pull overlayfs fixes from Amir Goldstein:
"Fixes for two fallouts from Neil's directory locking changes"

* tag 'ovl-fixes-6.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs:
ovl: fix possible double unlink
ovl: use I_MUTEX_PARENT when locking parent in ovl_create_temp()

+3 -2
+1 -1
fs/overlayfs/dir.c
··· 225 225 struct ovl_cattr *attr) 226 226 { 227 227 struct dentry *ret; 228 - inode_lock(workdir->d_inode); 228 + inode_lock_nested(workdir->d_inode, I_MUTEX_PARENT); 229 229 ret = ovl_create_real(ofs, workdir, 230 230 ovl_lookup_temp(ofs, workdir), attr); 231 231 inode_unlock(workdir->d_inode);
+2 -1
fs/overlayfs/util.c
··· 1552 1552 int ovl_parent_lock(struct dentry *parent, struct dentry *child) 1553 1553 { 1554 1554 inode_lock_nested(parent->d_inode, I_MUTEX_PARENT); 1555 - if (!child || child->d_parent == parent) 1555 + if (!child || 1556 + (!d_unhashed(child) && child->d_parent == parent)) 1556 1557 return 0; 1557 1558 1558 1559 inode_unlock(parent->d_inode);