xfs: set prealloc flag in xfs_alloc_file_space()
commit 0b02c8c0d7
upsream.
Now that we only call xfs_update_prealloc_flags() from
xfs_file_fallocate() in the case where we need to set the
preallocation flag, do this in xfs_alloc_file_space() where we
already have the inode joined into a transaction and get
rid of the call to xfs_update_prealloc_flags() from the fallocate
code.
This also means that we now correctly avoid setting the
XFS_DIFLAG_PREALLOC flag when xfs_is_always_cow_inode() is true, as
these inodes will never have preallocated extents.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Tested-by: Leah Rumancik <leah.rumancik@gmail.com>
Acked-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
a881c1ef16
Коммит
79821ab328
|
@ -851,9 +851,6 @@ xfs_alloc_file_space(
|
|||
rblocks = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate and setup the transaction.
|
||||
*/
|
||||
error = xfs_trans_alloc_inode(ip, &M_RES(mp)->tr_write,
|
||||
dblocks, rblocks, false, &tp);
|
||||
if (error)
|
||||
|
@ -870,9 +867,9 @@ xfs_alloc_file_space(
|
|||
if (error)
|
||||
goto error;
|
||||
|
||||
/*
|
||||
* Complete the transaction
|
||||
*/
|
||||
ip->i_diflags |= XFS_DIFLAG_PREALLOC;
|
||||
xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
|
||||
|
||||
error = xfs_trans_commit(tp);
|
||||
xfs_iunlock(ip, XFS_ILOCK_EXCL);
|
||||
if (error)
|
||||
|
|
|
@ -909,7 +909,6 @@ xfs_file_fallocate(
|
|||
struct inode *inode = file_inode(file);
|
||||
struct xfs_inode *ip = XFS_I(inode);
|
||||
long error;
|
||||
enum xfs_prealloc_flags flags = 0;
|
||||
uint iolock = XFS_IOLOCK_EXCL | XFS_MMAPLOCK_EXCL;
|
||||
loff_t new_size = 0;
|
||||
bool do_file_insert = false;
|
||||
|
@ -1007,8 +1006,6 @@ xfs_file_fallocate(
|
|||
}
|
||||
do_file_insert = true;
|
||||
} else {
|
||||
flags |= XFS_PREALLOC_SET;
|
||||
|
||||
if (!(mode & FALLOC_FL_KEEP_SIZE) &&
|
||||
offset + len > i_size_read(inode)) {
|
||||
new_size = offset + len;
|
||||
|
@ -1059,11 +1056,6 @@ xfs_file_fallocate(
|
|||
if (error)
|
||||
goto out_unlock;
|
||||
}
|
||||
|
||||
error = xfs_update_prealloc_flags(ip, XFS_PREALLOC_SET);
|
||||
if (error)
|
||||
goto out_unlock;
|
||||
|
||||
}
|
||||
|
||||
/* Change file size if needed */
|
||||
|
|
Загрузка…
Ссылка в новой задаче