xfs: don't bother looking at the refcount tree for reads
[cascardo/linux.git] / fs / xfs / xfs_ioctl.c
index c65d9ea..c245bed 100644 (file)
@@ -720,7 +720,7 @@ xfs_ioc_space(
                iattr.ia_valid = ATTR_SIZE;
                iattr.ia_size = bf->l_start;
 
-               error = xfs_setattr_size(ip, &iattr);
+               error = xfs_vn_setattr_size(file_dentry(filp), &iattr);
                break;
        default:
                ASSERT(0);
@@ -1034,8 +1034,12 @@ xfs_ioctl_setattr_xflags(
                        return -EINVAL;
        }
 
-       /* Don't allow us to set realtime mode for a reflinked file. */
+       /* Clear reflink if we are actually able to set the rt flag. */
        if ((fa->fsx_xflags & FS_XFLAG_REALTIME) && xfs_is_reflink_inode(ip))
+               ip->i_d.di_flags2 &= ~XFS_DIFLAG2_REFLINK;
+
+       /* Don't allow us to set DAX mode for a reflinked file for now. */
+       if ((fa->fsx_xflags & FS_XFLAG_DAX) && xfs_is_reflink_inode(ip))
                return -EINVAL;
 
        /*