aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs')
-rw-r--r--fs/btrfs/export.c6
-rw-r--r--fs/btrfs/file.c2
-rw-r--r--fs/btrfs/inode.c36
-rw-r--r--fs/btrfs/ioctl.c22
-rw-r--r--fs/btrfs/super.c8
-rw-r--r--fs/btrfs/tree-log.c14
-rw-r--r--fs/btrfs/xattr.c16
7 files changed, 52 insertions, 52 deletions
diff --git a/fs/btrfs/export.c b/fs/btrfs/export.c
index 37d164540c3a..8d052209f473 100644
--- a/fs/btrfs/export.c
+++ b/fs/btrfs/export.c
@@ -152,7 +152,7 @@ static struct dentry *btrfs_fh_to_dentry(struct super_block *sb, struct fid *fh,
152 152
153static struct dentry *btrfs_get_parent(struct dentry *child) 153static struct dentry *btrfs_get_parent(struct dentry *child)
154{ 154{
155 struct inode *dir = child->d_inode; 155 struct inode *dir = d_inode(child);
156 struct btrfs_root *root = BTRFS_I(dir)->root; 156 struct btrfs_root *root = BTRFS_I(dir)->root;
157 struct btrfs_path *path; 157 struct btrfs_path *path;
158 struct extent_buffer *leaf; 158 struct extent_buffer *leaf;
@@ -220,8 +220,8 @@ fail:
220static int btrfs_get_name(struct dentry *parent, char *name, 220static int btrfs_get_name(struct dentry *parent, char *name,
221 struct dentry *child) 221 struct dentry *child)
222{ 222{
223 struct inode *inode = child->d_inode; 223 struct inode *inode = d_inode(child);
224 struct inode *dir = parent->d_inode; 224 struct inode *dir = d_inode(parent);
225 struct btrfs_path *path; 225 struct btrfs_path *path;
226 struct btrfs_root *root = BTRFS_I(dir)->root; 226 struct btrfs_root *root = BTRFS_I(dir)->root;
227 struct btrfs_inode_ref *iref; 227 struct btrfs_inode_ref *iref;
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 467620a3b1f9..b072e17479aa 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -1862,7 +1862,7 @@ static int start_ordered_ops(struct inode *inode, loff_t start, loff_t end)
1862int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync) 1862int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
1863{ 1863{
1864 struct dentry *dentry = file->f_path.dentry; 1864 struct dentry *dentry = file->f_path.dentry;
1865 struct inode *inode = dentry->d_inode; 1865 struct inode *inode = d_inode(dentry);
1866 struct btrfs_root *root = BTRFS_I(inode)->root; 1866 struct btrfs_root *root = BTRFS_I(inode)->root;
1867 struct btrfs_trans_handle *trans; 1867 struct btrfs_trans_handle *trans;
1868 struct btrfs_log_ctx ctx; 1868 struct btrfs_log_ctx ctx;
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 56f00a25c003..ada4d24ed11b 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -4020,16 +4020,16 @@ static int btrfs_unlink(struct inode *dir, struct dentry *dentry)
4020{ 4020{
4021 struct btrfs_root *root = BTRFS_I(dir)->root; 4021 struct btrfs_root *root = BTRFS_I(dir)->root;
4022 struct btrfs_trans_handle *trans; 4022 struct btrfs_trans_handle *trans;
4023 struct inode *inode = dentry->d_inode; 4023 struct inode *inode = d_inode(dentry);
4024 int ret; 4024 int ret;
4025 4025
4026 trans = __unlink_start_trans(dir); 4026 trans = __unlink_start_trans(dir);
4027 if (IS_ERR(trans)) 4027 if (IS_ERR(trans))
4028 return PTR_ERR(trans); 4028 return PTR_ERR(trans);
4029 4029
4030 btrfs_record_unlink_dir(trans, dir, dentry->d_inode, 0); 4030 btrfs_record_unlink_dir(trans, dir, d_inode(dentry), 0);
4031 4031
4032 ret = btrfs_unlink_inode(trans, root, dir, dentry->d_inode, 4032 ret = btrfs_unlink_inode(trans, root, dir, d_inode(dentry),
4033 dentry->d_name.name, dentry->d_name.len); 4033 dentry->d_name.name, dentry->d_name.len);
4034 if (ret) 4034 if (ret)
4035 goto out; 4035 goto out;
@@ -4128,7 +4128,7 @@ out:
4128 4128
4129static int btrfs_rmdir(struct inode *dir, struct dentry *dentry) 4129static int btrfs_rmdir(struct inode *dir, struct dentry *dentry)
4130{ 4130{
4131 struct inode *inode = dentry->d_inode; 4131 struct inode *inode = d_inode(dentry);
4132 int err = 0; 4132 int err = 0;
4133 struct btrfs_root *root = BTRFS_I(dir)->root; 4133 struct btrfs_root *root = BTRFS_I(dir)->root;
4134 struct btrfs_trans_handle *trans; 4134 struct btrfs_trans_handle *trans;
@@ -4155,7 +4155,7 @@ static int btrfs_rmdir(struct inode *dir, struct dentry *dentry)
4155 goto out; 4155 goto out;
4156 4156
4157 /* now the directory is empty */ 4157 /* now the directory is empty */
4158 err = btrfs_unlink_inode(trans, root, dir, dentry->d_inode, 4158 err = btrfs_unlink_inode(trans, root, dir, d_inode(dentry),
4159 dentry->d_name.name, dentry->d_name.len); 4159 dentry->d_name.name, dentry->d_name.len);
4160 if (!err) 4160 if (!err)
4161 btrfs_i_size_write(inode, 0); 4161 btrfs_i_size_write(inode, 0);
@@ -4915,7 +4915,7 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr)
4915 4915
4916static int btrfs_setattr(struct dentry *dentry, struct iattr *attr) 4916static int btrfs_setattr(struct dentry *dentry, struct iattr *attr)
4917{ 4917{
4918 struct inode *inode = dentry->d_inode; 4918 struct inode *inode = d_inode(dentry);
4919 struct btrfs_root *root = BTRFS_I(inode)->root; 4919 struct btrfs_root *root = BTRFS_I(inode)->root;
4920 int err; 4920 int err;
4921 4921
@@ -5547,10 +5547,10 @@ struct inode *btrfs_lookup_dentry(struct inode *dir, struct dentry *dentry)
5547static int btrfs_dentry_delete(const struct dentry *dentry) 5547static int btrfs_dentry_delete(const struct dentry *dentry)
5548{ 5548{
5549 struct btrfs_root *root; 5549 struct btrfs_root *root;
5550 struct inode *inode = dentry->d_inode; 5550 struct inode *inode = d_inode(dentry);
5551 5551
5552 if (!inode && !IS_ROOT(dentry)) 5552 if (!inode && !IS_ROOT(dentry))
5553 inode = dentry->d_parent->d_inode; 5553 inode = d_inode(dentry->d_parent);
5554 5554
5555 if (inode) { 5555 if (inode) {
5556 root = BTRFS_I(inode)->root; 5556 root = BTRFS_I(inode)->root;
@@ -6357,7 +6357,7 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
6357{ 6357{
6358 struct btrfs_trans_handle *trans; 6358 struct btrfs_trans_handle *trans;
6359 struct btrfs_root *root = BTRFS_I(dir)->root; 6359 struct btrfs_root *root = BTRFS_I(dir)->root;
6360 struct inode *inode = old_dentry->d_inode; 6360 struct inode *inode = d_inode(old_dentry);
6361 u64 index; 6361 u64 index;
6362 int err; 6362 int err;
6363 int drop_inode = 0; 6363 int drop_inode = 0;
@@ -8260,7 +8260,7 @@ static ssize_t btrfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
8260 if (check_direct_IO(BTRFS_I(inode)->root, iocb, iter, offset)) 8260 if (check_direct_IO(BTRFS_I(inode)->root, iocb, iter, offset))
8261 return 0; 8261 return 0;
8262 8262
8263 atomic_inc(&inode->i_dio_count); 8263 inode_dio_begin(inode);
8264 smp_mb__after_atomic(); 8264 smp_mb__after_atomic();
8265 8265
8266 /* 8266 /*
@@ -8300,7 +8300,7 @@ static ssize_t btrfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
8300 current->journal_info = &outstanding_extents; 8300 current->journal_info = &outstanding_extents;
8301 } else if (test_bit(BTRFS_INODE_READDIO_NEED_LOCK, 8301 } else if (test_bit(BTRFS_INODE_READDIO_NEED_LOCK,
8302 &BTRFS_I(inode)->runtime_flags)) { 8302 &BTRFS_I(inode)->runtime_flags)) {
8303 inode_dio_done(inode); 8303 inode_dio_end(inode);
8304 flags = DIO_LOCKING | DIO_SKIP_HOLES; 8304 flags = DIO_LOCKING | DIO_SKIP_HOLES;
8305 wakeup = false; 8305 wakeup = false;
8306 } 8306 }
@@ -8319,7 +8319,7 @@ static ssize_t btrfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
8319 } 8319 }
8320out: 8320out:
8321 if (wakeup) 8321 if (wakeup)
8322 inode_dio_done(inode); 8322 inode_dio_end(inode);
8323 if (relock) 8323 if (relock)
8324 mutex_lock(&inode->i_mutex); 8324 mutex_lock(&inode->i_mutex);
8325 8325
@@ -9006,7 +9006,7 @@ static int btrfs_getattr(struct vfsmount *mnt,
9006 struct dentry *dentry, struct kstat *stat) 9006 struct dentry *dentry, struct kstat *stat)
9007{ 9007{
9008 u64 delalloc_bytes; 9008 u64 delalloc_bytes;
9009 struct inode *inode = dentry->d_inode; 9009 struct inode *inode = d_inode(dentry);
9010 u32 blocksize = inode->i_sb->s_blocksize; 9010 u32 blocksize = inode->i_sb->s_blocksize;
9011 9011
9012 generic_fillattr(inode, stat); 9012 generic_fillattr(inode, stat);
@@ -9027,8 +9027,8 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry,
9027 struct btrfs_trans_handle *trans; 9027 struct btrfs_trans_handle *trans;
9028 struct btrfs_root *root = BTRFS_I(old_dir)->root; 9028 struct btrfs_root *root = BTRFS_I(old_dir)->root;
9029 struct btrfs_root *dest = BTRFS_I(new_dir)->root; 9029 struct btrfs_root *dest = BTRFS_I(new_dir)->root;
9030 struct inode *new_inode = new_dentry->d_inode; 9030 struct inode *new_inode = d_inode(new_dentry);
9031 struct inode *old_inode = old_dentry->d_inode; 9031 struct inode *old_inode = d_inode(old_dentry);
9032 struct timespec ctime = CURRENT_TIME; 9032 struct timespec ctime = CURRENT_TIME;
9033 u64 index = 0; 9033 u64 index = 0;
9034 u64 root_objectid; 9034 u64 root_objectid;
@@ -9140,7 +9140,7 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry,
9140 old_dentry->d_name.len); 9140 old_dentry->d_name.len);
9141 } else { 9141 } else {
9142 ret = __btrfs_unlink_inode(trans, root, old_dir, 9142 ret = __btrfs_unlink_inode(trans, root, old_dir,
9143 old_dentry->d_inode, 9143 d_inode(old_dentry),
9144 old_dentry->d_name.name, 9144 old_dentry->d_name.name,
9145 old_dentry->d_name.len); 9145 old_dentry->d_name.len);
9146 if (!ret) 9146 if (!ret)
@@ -9164,12 +9164,12 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry,
9164 BUG_ON(new_inode->i_nlink == 0); 9164 BUG_ON(new_inode->i_nlink == 0);
9165 } else { 9165 } else {
9166 ret = btrfs_unlink_inode(trans, dest, new_dir, 9166 ret = btrfs_unlink_inode(trans, dest, new_dir,
9167 new_dentry->d_inode, 9167 d_inode(new_dentry),
9168 new_dentry->d_name.name, 9168 new_dentry->d_name.name,
9169 new_dentry->d_name.len); 9169 new_dentry->d_name.len);
9170 } 9170 }
9171 if (!ret && new_inode->i_nlink == 0) 9171 if (!ret && new_inode->i_nlink == 0)
9172 ret = btrfs_orphan_add(trans, new_dentry->d_inode); 9172 ret = btrfs_orphan_add(trans, d_inode(new_dentry));
9173 if (ret) { 9173 if (ret) {
9174 btrfs_abort_transaction(trans, root, ret); 9174 btrfs_abort_transaction(trans, root, ret);
9175 goto out_fail; 9175 goto out_fail;
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index ca5d968f4c37..b05653f182c2 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -724,7 +724,7 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir,
724 if (ret) 724 if (ret)
725 goto fail; 725 goto fail;
726 726
727 inode = btrfs_lookup_dentry(dentry->d_parent->d_inode, dentry); 727 inode = btrfs_lookup_dentry(d_inode(dentry->d_parent), dentry);
728 if (IS_ERR(inode)) { 728 if (IS_ERR(inode)) {
729 ret = PTR_ERR(inode); 729 ret = PTR_ERR(inode);
730 goto fail; 730 goto fail;
@@ -768,10 +768,10 @@ static int btrfs_may_delete(struct inode *dir, struct dentry *victim, int isdir)
768{ 768{
769 int error; 769 int error;
770 770
771 if (!victim->d_inode) 771 if (d_really_is_negative(victim))
772 return -ENOENT; 772 return -ENOENT;
773 773
774 BUG_ON(victim->d_parent->d_inode != dir); 774 BUG_ON(d_inode(victim->d_parent) != dir);
775 audit_inode_child(dir, victim, AUDIT_TYPE_CHILD_DELETE); 775 audit_inode_child(dir, victim, AUDIT_TYPE_CHILD_DELETE);
776 776
777 error = inode_permission(dir, MAY_WRITE | MAY_EXEC); 777 error = inode_permission(dir, MAY_WRITE | MAY_EXEC);
@@ -779,8 +779,8 @@ static int btrfs_may_delete(struct inode *dir, struct dentry *victim, int isdir)
779 return error; 779 return error;
780 if (IS_APPEND(dir)) 780 if (IS_APPEND(dir))
781 return -EPERM; 781 return -EPERM;
782 if (check_sticky(dir, victim->d_inode) || IS_APPEND(victim->d_inode) || 782 if (check_sticky(dir, d_inode(victim)) || IS_APPEND(d_inode(victim)) ||
783 IS_IMMUTABLE(victim->d_inode) || IS_SWAPFILE(victim->d_inode)) 783 IS_IMMUTABLE(d_inode(victim)) || IS_SWAPFILE(d_inode(victim)))
784 return -EPERM; 784 return -EPERM;
785 if (isdir) { 785 if (isdir) {
786 if (!d_is_dir(victim)) 786 if (!d_is_dir(victim))
@@ -799,7 +799,7 @@ static int btrfs_may_delete(struct inode *dir, struct dentry *victim, int isdir)
799/* copy of may_create in fs/namei.c() */ 799/* copy of may_create in fs/namei.c() */
800static inline int btrfs_may_create(struct inode *dir, struct dentry *child) 800static inline int btrfs_may_create(struct inode *dir, struct dentry *child)
801{ 801{
802 if (child->d_inode) 802 if (d_really_is_positive(child))
803 return -EEXIST; 803 return -EEXIST;
804 if (IS_DEADDIR(dir)) 804 if (IS_DEADDIR(dir))
805 return -ENOENT; 805 return -ENOENT;
@@ -817,7 +817,7 @@ static noinline int btrfs_mksubvol(struct path *parent,
817 u64 *async_transid, bool readonly, 817 u64 *async_transid, bool readonly,
818 struct btrfs_qgroup_inherit *inherit) 818 struct btrfs_qgroup_inherit *inherit)
819{ 819{
820 struct inode *dir = parent->dentry->d_inode; 820 struct inode *dir = d_inode(parent->dentry);
821 struct dentry *dentry; 821 struct dentry *dentry;
822 int error; 822 int error;
823 823
@@ -831,7 +831,7 @@ static noinline int btrfs_mksubvol(struct path *parent,
831 goto out_unlock; 831 goto out_unlock;
832 832
833 error = -EEXIST; 833 error = -EEXIST;
834 if (dentry->d_inode) 834 if (d_really_is_positive(dentry))
835 goto out_dput; 835 goto out_dput;
836 836
837 error = btrfs_may_create(dir, dentry); 837 error = btrfs_may_create(dir, dentry);
@@ -2301,7 +2301,7 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file,
2301{ 2301{
2302 struct dentry *parent = file->f_path.dentry; 2302 struct dentry *parent = file->f_path.dentry;
2303 struct dentry *dentry; 2303 struct dentry *dentry;
2304 struct inode *dir = parent->d_inode; 2304 struct inode *dir = d_inode(parent);
2305 struct inode *inode; 2305 struct inode *inode;
2306 struct btrfs_root *root = BTRFS_I(dir)->root; 2306 struct btrfs_root *root = BTRFS_I(dir)->root;
2307 struct btrfs_root *dest = NULL; 2307 struct btrfs_root *dest = NULL;
@@ -2340,12 +2340,12 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file,
2340 goto out_unlock_dir; 2340 goto out_unlock_dir;
2341 } 2341 }
2342 2342
2343 if (!dentry->d_inode) { 2343 if (d_really_is_negative(dentry)) {
2344 err = -ENOENT; 2344 err = -ENOENT;
2345 goto out_dput; 2345 goto out_dput;
2346 } 2346 }
2347 2347
2348 inode = dentry->d_inode; 2348 inode = d_inode(dentry);
2349 dest = BTRFS_I(inode)->root; 2349 dest = BTRFS_I(inode)->root;
2350 if (!capable(CAP_SYS_ADMIN)) { 2350 if (!capable(CAP_SYS_ADMIN)) {
2351 /* 2351 /*
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index f2c9f9db3b19..9e66f5e724db 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -925,7 +925,7 @@ setup_root:
925 * a reference to the dentry. We will have already gotten a reference 925 * a reference to the dentry. We will have already gotten a reference
926 * to the inode in btrfs_fill_super so we're good to go. 926 * to the inode in btrfs_fill_super so we're good to go.
927 */ 927 */
928 if (!new && sb->s_root->d_inode == inode) { 928 if (!new && d_inode(sb->s_root) == inode) {
929 iput(inode); 929 iput(inode);
930 return dget(sb->s_root); 930 return dget(sb->s_root);
931 } 931 }
@@ -1230,7 +1230,7 @@ static struct dentry *mount_subvol(const char *subvol_name, int flags,
1230 1230
1231 root = mount_subtree(mnt, subvol_name); 1231 root = mount_subtree(mnt, subvol_name);
1232 1232
1233 if (!IS_ERR(root) && !is_subvolume_inode(root->d_inode)) { 1233 if (!IS_ERR(root) && !is_subvolume_inode(d_inode(root))) {
1234 struct super_block *s = root->d_sb; 1234 struct super_block *s = root->d_sb;
1235 dput(root); 1235 dput(root);
1236 root = ERR_PTR(-EINVAL); 1236 root = ERR_PTR(-EINVAL);
@@ -1895,8 +1895,8 @@ static int btrfs_statfs(struct dentry *dentry, struct kstatfs *buf)
1895 buf->f_fsid.val[0] = be32_to_cpu(fsid[0]) ^ be32_to_cpu(fsid[2]); 1895 buf->f_fsid.val[0] = be32_to_cpu(fsid[0]) ^ be32_to_cpu(fsid[2]);
1896 buf->f_fsid.val[1] = be32_to_cpu(fsid[1]) ^ be32_to_cpu(fsid[3]); 1896 buf->f_fsid.val[1] = be32_to_cpu(fsid[1]) ^ be32_to_cpu(fsid[3]);
1897 /* Mask in the root object ID too, to disambiguate subvols */ 1897 /* Mask in the root object ID too, to disambiguate subvols */
1898 buf->f_fsid.val[0] ^= BTRFS_I(dentry->d_inode)->root->objectid >> 32; 1898 buf->f_fsid.val[0] ^= BTRFS_I(d_inode(dentry))->root->objectid >> 32;
1899 buf->f_fsid.val[1] ^= BTRFS_I(dentry->d_inode)->root->objectid; 1899 buf->f_fsid.val[1] ^= BTRFS_I(d_inode(dentry))->root->objectid;
1900 1900
1901 return 0; 1901 return 0;
1902} 1902}
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
diff --git a/fs/btrfs/xattr.c b/fs/btrfs/xattr.c
index 45ea704be030..6f518c90e1c1 100644
--- a/fs/btrfs/xattr.c
+++ b/fs/btrfs/xattr.c
@@ -261,7 +261,7 @@ out:
261ssize_t btrfs_listxattr(struct dentry *dentry, char *buffer, size_t size) 261ssize_t btrfs_listxattr(struct dentry *dentry, char *buffer, size_t size)
262{ 262{
263 struct btrfs_key key, found_key; 263 struct btrfs_key key, found_key;
264 struct inode *inode = dentry->d_inode; 264 struct inode *inode = d_inode(dentry);
265 struct btrfs_root *root = BTRFS_I(inode)->root; 265 struct btrfs_root *root = BTRFS_I(inode)->root;
266 struct btrfs_path *path; 266 struct btrfs_path *path;
267 struct extent_buffer *leaf; 267 struct extent_buffer *leaf;
@@ -411,13 +411,13 @@ ssize_t btrfs_getxattr(struct dentry *dentry, const char *name,
411 ret = btrfs_is_valid_xattr(name); 411 ret = btrfs_is_valid_xattr(name);
412 if (ret) 412 if (ret)
413 return ret; 413 return ret;
414 return __btrfs_getxattr(dentry->d_inode, name, buffer, size); 414 return __btrfs_getxattr(d_inode(dentry), name, buffer, size);
415} 415}
416 416
417int btrfs_setxattr(struct dentry *dentry, const char *name, const void *value, 417int btrfs_setxattr(struct dentry *dentry, const char *name, const void *value,
418 size_t size, int flags) 418 size_t size, int flags)
419{ 419{
420 struct btrfs_root *root = BTRFS_I(dentry->d_inode)->root; 420 struct btrfs_root *root = BTRFS_I(d_inode(dentry))->root;
421 int ret; 421 int ret;
422 422
423 /* 423 /*
@@ -440,19 +440,19 @@ int btrfs_setxattr(struct dentry *dentry, const char *name, const void *value,
440 return ret; 440 return ret;
441 441
442 if (!strncmp(name, XATTR_BTRFS_PREFIX, XATTR_BTRFS_PREFIX_LEN)) 442 if (!strncmp(name, XATTR_BTRFS_PREFIX, XATTR_BTRFS_PREFIX_LEN))
443 return btrfs_set_prop(dentry->d_inode, name, 443 return btrfs_set_prop(d_inode(dentry), name,
444 value, size, flags); 444 value, size, flags);
445 445
446 if (size == 0) 446 if (size == 0)
447 value = ""; /* empty EA, do not remove */ 447 value = ""; /* empty EA, do not remove */
448 448
449 return __btrfs_setxattr(NULL, dentry->d_inode, name, value, size, 449 return __btrfs_setxattr(NULL, d_inode(dentry), name, value, size,
450 flags); 450 flags);
451} 451}
452 452
453int btrfs_removexattr(struct dentry *dentry, const char *name) 453int btrfs_removexattr(struct dentry *dentry, const char *name)
454{ 454{
455 struct btrfs_root *root = BTRFS_I(dentry->d_inode)->root; 455 struct btrfs_root *root = BTRFS_I(d_inode(dentry))->root;
456 int ret; 456 int ret;
457 457
458 /* 458 /*
@@ -475,10 +475,10 @@ int btrfs_removexattr(struct dentry *dentry, const char *name)
475 return ret; 475 return ret;
476 476
477 if (!strncmp(name, XATTR_BTRFS_PREFIX, XATTR_BTRFS_PREFIX_LEN)) 477 if (!strncmp(name, XATTR_BTRFS_PREFIX, XATTR_BTRFS_PREFIX_LEN))
478 return btrfs_set_prop(dentry->d_inode, name, 478 return btrfs_set_prop(d_inode(dentry), name,
479 NULL, 0, XATTR_REPLACE); 479 NULL, 0, XATTR_REPLACE);
480 480
481 return __btrfs_setxattr(NULL, dentry->d_inode, name, NULL, 0, 481 return __btrfs_setxattr(NULL, d_inode(dentry), name, NULL, 0,
482 XATTR_REPLACE); 482 XATTR_REPLACE);
483} 483}
484 484