mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-20 12:54:36 +08:00
xfs: increase rename inode reservation
xfs_rename can update up to 5 inodes: src_dp, target_dp, src_ip, target_ip and wip. So we need to increase the inode reservation to match. Signed-off-by: Allison Henderson <allison.henderson@oracle.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
parent
d08af40340
commit
e07ee6fe21
@ -422,7 +422,7 @@ xfs_calc_itruncate_reservation_minlogsize(
|
||||
|
||||
/*
|
||||
* In renaming a files we can modify:
|
||||
* the four inodes involved: 4 * inode size
|
||||
* the five inodes involved: 5 * inode size
|
||||
* the two directory btrees: 2 * (max depth + v2) * dir block size
|
||||
* the two directory bmap btrees: 2 * max depth * block size
|
||||
* And the bmap_finish transaction can free dir and bmap blocks (two sets
|
||||
@ -437,7 +437,7 @@ xfs_calc_rename_reservation(
|
||||
struct xfs_mount *mp)
|
||||
{
|
||||
return XFS_DQUOT_LOGRES(mp) +
|
||||
max((xfs_calc_inode_res(mp, 4) +
|
||||
max((xfs_calc_inode_res(mp, 5) +
|
||||
xfs_calc_buf_res(2 * XFS_DIROP_LOG_COUNT(mp),
|
||||
XFS_FSB_TO_B(mp, 1))),
|
||||
(xfs_calc_buf_res(7, mp->m_sb.sb_sectsize) +
|
||||
|
@ -2818,7 +2818,7 @@ retry:
|
||||
* Lock all the participating inodes. Depending upon whether
|
||||
* the target_name exists in the target directory, and
|
||||
* whether the target directory is the same as the source
|
||||
* directory, we can lock from 2 to 4 inodes.
|
||||
* directory, we can lock from 2 to 5 inodes.
|
||||
*/
|
||||
xfs_lock_inodes(inodes, num_inodes, XFS_ILOCK_EXCL);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user