.symlink        = btrfs_symlink,
        .setattr        = btrfs_setattr,
        .mknod          = btrfs_mknod,
-       .setxattr       = btrfs_setxattr,
+       .setxattr       = generic_setxattr,
        .getxattr       = generic_getxattr,
        .listxattr      = btrfs_listxattr,
-       .removexattr    = btrfs_removexattr,
+       .removexattr    = generic_removexattr,
        .permission     = btrfs_permission,
        .get_acl        = btrfs_get_acl,
        .set_acl        = btrfs_set_acl,
 static const struct inode_operations btrfs_file_inode_operations = {
        .getattr        = btrfs_getattr,
        .setattr        = btrfs_setattr,
-       .setxattr       = btrfs_setxattr,
+       .setxattr       = generic_setxattr,
        .getxattr       = generic_getxattr,
        .listxattr      = btrfs_listxattr,
-       .removexattr    = btrfs_removexattr,
+       .removexattr    = generic_removexattr,
        .permission     = btrfs_permission,
        .fiemap         = btrfs_fiemap,
        .get_acl        = btrfs_get_acl,
        .getattr        = btrfs_getattr,
        .setattr        = btrfs_setattr,
        .permission     = btrfs_permission,
-       .setxattr       = btrfs_setxattr,
+       .setxattr       = generic_setxattr,
        .getxattr       = generic_getxattr,
        .listxattr      = btrfs_listxattr,
-       .removexattr    = btrfs_removexattr,
+       .removexattr    = generic_removexattr,
        .get_acl        = btrfs_get_acl,
        .set_acl        = btrfs_set_acl,
        .update_time    = btrfs_update_time,
        .getattr        = btrfs_getattr,
        .setattr        = btrfs_setattr,
        .permission     = btrfs_permission,
-       .setxattr       = btrfs_setxattr,
+       .setxattr       = generic_setxattr,
        .getxattr       = generic_getxattr,
        .listxattr      = btrfs_listxattr,
-       .removexattr    = btrfs_removexattr,
+       .removexattr    = generic_removexattr,
        .update_time    = btrfs_update_time,
 };
 
 
        struct btrfs_root *root = BTRFS_I(inode)->root;
        int ret;
 
+       if (btrfs_root_readonly(root))
+               return -EROFS;
+
        if (trans)
                return do_setxattr(trans, inode, name, value, size, flags);
 
        NULL,
 };
 
-int btrfs_setxattr(struct dentry *dentry, const char *name, const void *value,
-                  size_t size, int flags)
-{
-       struct btrfs_root *root = BTRFS_I(d_inode(dentry))->root;
-
-       if (btrfs_root_readonly(root))
-               return -EROFS;
-       return generic_setxattr(dentry, name, value, size, flags);
-}
-
-int btrfs_removexattr(struct dentry *dentry, const char *name)
-{
-       struct btrfs_root *root = BTRFS_I(d_inode(dentry))->root;
-
-       if (btrfs_root_readonly(root))
-               return -EROFS;
-       return generic_removexattr(dentry, name);
-}
-
 static int btrfs_initxattrs(struct inode *inode,
                            const struct xattr *xattr_array, void *fs_info)
 {
 
 extern int __btrfs_setxattr(struct btrfs_trans_handle *trans,
                            struct inode *inode, const char *name,
                            const void *value, size_t size, int flags);
-extern int btrfs_setxattr(struct dentry *dentry, const char *name,
-               const void *value, size_t size, int flags);
-extern int btrfs_removexattr(struct dentry *dentry, const char *name);
 
 extern int btrfs_xattr_security_init(struct btrfs_trans_handle *trans,
                                     struct inode *inode, struct inode *dir,