Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs fixes from Al Viro: "Assorted fixes all over the place" * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: aio: fix io_destroy(2) vs. lookup_ioctx() race ext2: fix a block leak nfsd: vfs_mkdir() might succeed leaving dentry negative unhashed cachefiles: vfs_mkdir() might succeed leaving dentry negative unhashed unfuck sysfs_mount() kernfs: deal with kernfs_fill_super() failures cramfs: Fix IS_ENABLED typo befs_lookup(): use d_splice_alias() affs_lookup: switch to d_splice_alias() affs_lookup(): close a race with affs_remove_link() fix breakage caused by d_find_alias() semantics change fs: don't scan the inode cache before SB_BORN is set do d_instantiate/unlock_new_inode combinations safely iov_iter: fix memory leak in pipe_get_pages_alloc() iov_iter: fix return type of __pipe_get_pages()
This commit is contained in:
@@ -1568,8 +1568,15 @@ static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dent
|
||||
/* Called from d_instantiate or d_splice_alias. */
|
||||
dentry = dget(opt_dentry);
|
||||
} else {
|
||||
/* Called from selinux_complete_init, try to find a dentry. */
|
||||
/*
|
||||
* Called from selinux_complete_init, try to find a dentry.
|
||||
* Some filesystems really want a connected one, so try
|
||||
* that first. We could split SECURITY_FS_USE_XATTR in
|
||||
* two, depending upon that...
|
||||
*/
|
||||
dentry = d_find_alias(inode);
|
||||
if (!dentry)
|
||||
dentry = d_find_any_alias(inode);
|
||||
}
|
||||
if (!dentry) {
|
||||
/*
|
||||
@@ -1674,14 +1681,19 @@ static int inode_doinit_with_dentry(struct inode *inode, struct dentry *opt_dent
|
||||
if ((sbsec->flags & SE_SBGENFS) && !S_ISLNK(inode->i_mode)) {
|
||||
/* We must have a dentry to determine the label on
|
||||
* procfs inodes */
|
||||
if (opt_dentry)
|
||||
if (opt_dentry) {
|
||||
/* Called from d_instantiate or
|
||||
* d_splice_alias. */
|
||||
dentry = dget(opt_dentry);
|
||||
else
|
||||
} else {
|
||||
/* Called from selinux_complete_init, try to
|
||||
* find a dentry. */
|
||||
* find a dentry. Some filesystems really want
|
||||
* a connected one, so try that first.
|
||||
*/
|
||||
dentry = d_find_alias(inode);
|
||||
if (!dentry)
|
||||
dentry = d_find_any_alias(inode);
|
||||
}
|
||||
/*
|
||||
* This can be hit on boot when a file is accessed
|
||||
* before the policy is loaded. When we load policy we
|
||||
|
Reference in New Issue
Block a user