diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-26 18:48:49 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-26 20:22:07 -0400 |
commit | 9ec3a646fe09970f801ab15e0f1694060b9f19af (patch) | |
tree | 697058ca7e1671eda180a3ccc62445686fbc1a31 /fs/btrfs/tree-log.c | |
parent | c8b3fd0ce313443731e8fd6d5a541085eb465f99 (diff) | |
parent | 3cab989afd8d8d1bc3d99fef0e7ed87c31e7b647 (diff) |
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
Diffstat (limited to 'fs/btrfs/tree-log.c')
-rw-r--r-- | fs/btrfs/tree-log.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index a089b5944efc..d04968374e9d 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c | |||
@@ -4474,9 +4474,9 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans, | |||
4474 | goto out; | 4474 | goto out; |
4475 | 4475 | ||
4476 | if (!S_ISDIR(inode->i_mode)) { | 4476 | if (!S_ISDIR(inode->i_mode)) { |
4477 | if (!parent || !parent->d_inode || sb != parent->d_inode->i_sb) | 4477 | if (!parent || d_really_is_negative(parent) || sb != d_inode(parent)->i_sb) |
4478 | goto out; | 4478 | goto out; |
4479 | inode = parent->d_inode; | 4479 | inode = d_inode(parent); |
4480 | } | 4480 | } |
4481 | 4481 | ||
4482 | while (1) { | 4482 | while (1) { |
@@ -4502,7 +4502,7 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans, | |||
4502 | break; | 4502 | break; |
4503 | } | 4503 | } |
4504 | 4504 | ||
4505 | if (!parent || !parent->d_inode || sb != parent->d_inode->i_sb) | 4505 | if (!parent || d_really_is_negative(parent) || sb != d_inode(parent)->i_sb) |
4506 | break; | 4506 | break; |
4507 | 4507 | ||
4508 | if (IS_ROOT(parent)) | 4508 | if (IS_ROOT(parent)) |
@@ -4511,7 +4511,7 @@ static noinline int check_parent_dirs_for_sync(struct btrfs_trans_handle *trans, | |||
4511 | parent = dget_parent(parent); | 4511 | parent = dget_parent(parent); |
4512 | dput(old_parent); | 4512 | dput(old_parent); |
4513 | old_parent = parent; | 4513 | old_parent = parent; |
4514 | inode = parent->d_inode; | 4514 | inode = d_inode(parent); |
4515 | 4515 | ||
4516 | } | 4516 | } |
4517 | dput(old_parent); | 4517 | dput(old_parent); |
@@ -4777,10 +4777,10 @@ static int btrfs_log_inode_parent(struct btrfs_trans_handle *trans, | |||
4777 | log_dentries = true; | 4777 | log_dentries = true; |
4778 | 4778 | ||
4779 | while (1) { | 4779 | while (1) { |
4780 | if (!parent || !parent->d_inode || sb != parent->d_inode->i_sb) | 4780 | if (!parent || d_really_is_negative(parent) || sb != d_inode(parent)->i_sb) |
4781 | break; | 4781 | break; |
4782 | 4782 | ||
4783 | inode = parent->d_inode; | 4783 | inode = d_inode(parent); |
4784 | if (root != BTRFS_I(inode)->root) | 4784 | if (root != BTRFS_I(inode)->root) |
4785 | break; | 4785 | break; |
4786 | 4786 | ||
@@ -4845,7 +4845,7 @@ int btrfs_log_dentry_safe(struct btrfs_trans_handle *trans, | |||
4845 | struct dentry *parent = dget_parent(dentry); | 4845 | struct dentry *parent = dget_parent(dentry); |
4846 | int ret; | 4846 | int ret; |
4847 | 4847 | ||
4848 | ret = btrfs_log_inode_parent(trans, root, dentry->d_inode, parent, | 4848 | ret = btrfs_log_inode_parent(trans, root, d_inode(dentry), parent, |
4849 | start, end, 0, ctx); | 4849 | start, end, 0, ctx); |
4850 | dput(parent); | 4850 | dput(parent); |
4851 | 4851 | ||