| From 983d8e60f50806f90534cc5373d0ce867e5aaf79 Mon Sep 17 00:00:00 2001 |
| From: "Darrick J. Wong" <djwong@kernel.org> |
| Date: Wed, 22 Dec 2021 14:19:18 -0800 |
| Subject: [PATCH] xfs: map unwritten blocks in XFS_IOC_{ALLOC,FREE}SP just like |
| fallocate |
| |
| The old ALLOCSP/FREESP ioctls in XFS can be used to preallocate space at |
| the end of files, just like fallocate and RESVSP. Make the behavior |
| consistent with the other ioctls. |
| |
| Reported-by: Kirill Tkhai <ktkhai@virtuozzo.com> |
| Signed-off-by: Darrick J. Wong <djwong@kernel.org> |
| Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> |
| Reviewed-by: Dave Chinner <dchinner@redhat.com> |
| Reviewed-by: Eric Sandeen <sandeen@redhat.com> |
| --- |
| fs/xfs/xfs_ioctl.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c |
| index 174cd8950cb672..bc85e045845d13 100644 |
| --- a/fs/xfs/xfs_ioctl.c |
| +++ b/fs/xfs/xfs_ioctl.c |
| @@ -687,7 +687,8 @@ xfs_ioc_space( |
| |
| if (bf->l_start > XFS_ISIZE(ip)) { |
| error = xfs_alloc_file_space(ip, XFS_ISIZE(ip), |
| - bf->l_start - XFS_ISIZE(ip), 0); |
| + bf->l_start - XFS_ISIZE(ip), |
| + XFS_BMAPI_PREALLOC); |
| if (error) |
| goto out_unlock; |
| } |