diff options
author | Christoph Hellwig <hch@lst.de> | 2019-10-25 08:26:27 +0300 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2019-10-29 02:08:17 +0300 |
commit | 7a42c70ea0dd56b3ed747c1fcf9b96cc26c77774 (patch) | |
tree | 86675e5d71686515feea9ff1912222f733620875 /fs/xfs/xfs_ioctl.c | |
parent | 837a6e7f5cdb5e411c6187729e12962c2705160d (diff) | |
download | linux-7a42c70ea0dd56b3ed747c1fcf9b96cc26c77774.tar.xz |
xfs: disable xfs_ioc_space for always COW inodes
If we always have to write out of place preallocating blocks is
pointless. We already check for this in the normal falloc path, but
the check was missig in the legacy ALLOCSP path.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'fs/xfs/xfs_ioctl.c')
-rw-r--r-- | fs/xfs/xfs_ioctl.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c index e897d5363d01..287f83eb791f 100644 --- a/fs/xfs/xfs_ioctl.c +++ b/fs/xfs/xfs_ioctl.c @@ -33,6 +33,7 @@ #include "xfs_sb.h" #include "xfs_ag.h" #include "xfs_health.h" +#include "xfs_reflink.h" #include <linux/mount.h> #include <linux/namei.h> @@ -606,6 +607,9 @@ xfs_ioc_space( if (!S_ISREG(inode->i_mode)) return -EINVAL; + if (xfs_is_always_cow_inode(ip)) + return -EOPNOTSUPP; + if (filp->f_flags & O_DSYNC) flags |= XFS_PREALLOC_SYNC; if (filp->f_mode & FMODE_NOCMTIME) |