On Fri, Oct 21, 2022 at 03:29:22PM -0700, allison.henderson@xxxxxxxxxx wrote: > From: Allison Henderson <allison.henderson@xxxxxxxxxx> > > xfs_rename can lock 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@xxxxxxxxxx> Looks good, I'll add this to the 6.1 fixes. Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > --- > fs/xfs/libxfs/xfs_trans_resv.c | 4 ++-- > fs/xfs/xfs_inode.c | 2 +- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c > index 2c4ad6e4bb14..5b2f27cbdb80 100644 > --- a/fs/xfs/libxfs/xfs_trans_resv.c > +++ b/fs/xfs/libxfs/xfs_trans_resv.c > @@ -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) + > diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c > index 71d60885000e..ea7aeab839c2 100644 > --- a/fs/xfs/xfs_inode.c > +++ b/fs/xfs/xfs_inode.c > @@ -2848,7 +2848,7 @@ xfs_rename( > * 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); > > -- > 2.25.1 >