Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull fourth vfs update from Al Viro: "d_inode() annotations from David Howells (sat in for-next since before the beginning of merge window) + four assorted fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: RCU pathwalk breakage when running into a symlink overmounting something fix I_DIO_WAKEUP definition direct-io: only inc/dec inode->i_dio_count for file systems fs/9p: fix readdir() VFS: assorted d_backing_inode() annotations VFS: fs/inode.c helpers: d_inode() annotations VFS: fs/cachefiles: d_backing_inode() annotations VFS: fs library helpers: d_inode() annotations VFS: assorted weird filesystems: d_inode() annotations VFS: normal filesystems (and lustre): d_inode() annotations VFS: security/: d_inode() annotations VFS: security/: d_backing_inode() annotations VFS: net/: d_inode() annotations VFS: net/unix: d_backing_inode() annotations VFS: kernel/: d_inode() annotations VFS: audit: d_backing_inode() annotations VFS: Fix up some ->d_inode accesses in the chelsio driver VFS: Cachefiles should perform fs modifications on the top layer only VFS: AF_UNIX sockets should call mknod on the top layer only
This commit is contained in:
@@ -4474,9 +4474,9 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans,
|
||||
goto out;
|
||||
|
||||
if (!S_ISDIR(inode->i_mode)) {
|
||||
if (!parent || !parent->d_inode || sb != parent->d_inode->i_sb)
|
||||
if (!parent || d_really_is_negative(parent) || sb != d_inode(parent)->i_sb)
|
||||
goto out;
|
||||
inode = parent->d_inode;
|
||||
inode = d_inode(parent);
|
||||
}
|
||||
|
||||
while (1) {
|
||||
@@ -4502,7 +4502,7 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans,
|
||||
break;
|
||||
}
|
||||
|
||||
if (!parent || !parent->d_inode || sb != parent->d_inode->i_sb)
|
||||
if (!parent || d_really_is_negative(parent) || sb != d_inode(parent)->i_sb)
|
||||
break;
|
||||
|
||||
if (IS_ROOT(parent))
|
||||
@@ -4511,7 +4511,7 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans,
|
||||
parent = dget_parent(parent);
|
||||
dput(old_parent);
|
||||
old_parent = parent;
|
||||
inode = parent->d_inode;
|
||||
inode = d_inode(parent);
|
||||
|
||||
}
|
||||
dput(old_parent);
|
||||
@@ -4777,10 +4777,10 @@ static int btrfs_log_inode_parent(struct btrfs_trans_handle *trans,
|
||||
log_dentries = true;
|
||||
|
||||
while (1) {
|
||||
if (!parent || !parent->d_inode || sb != parent->d_inode->i_sb)
|
||||
if (!parent || d_really_is_negative(parent) || sb != d_inode(parent)->i_sb)
|
||||
break;
|
||||
|
||||
inode = parent->d_inode;
|
||||
inode = d_inode(parent);
|
||||
if (root != BTRFS_I(inode)->root)
|
||||
break;
|
||||
|
||||
@@ -4845,7 +4845,7 @@ int btrfs_log_dentry_safe(struct btrfs_trans_handle *trans,
|
||||
struct dentry *parent = dget_parent(dentry);
|
||||
int ret;
|
||||
|
||||
ret = btrfs_log_inode_parent(trans, root, dentry->d_inode, parent,
|
||||
ret = btrfs_log_inode_parent(trans, root, d_inode(dentry), parent,
|
||||
start, end, 0, ctx);
|
||||
dput(parent);
|
||||
|
||||
|
Reference in New Issue
Block a user