xfs: reserve quota inode transaction space only when needed

We share an inode between gquota and pquota with the older
superblock that doesn't have separate pquotino, and for the
need_alloc == false case we don't need to call xfs_dir_ialloc()
function, so add the check if reserved free disk blocks is
needed.

Signed-off-by: Kaixu Xia <kaixuxia@tencent.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
Kaixu Xia 2020-04-22 21:54:28 -07:00 committed by Darrick J. Wong
parent d51bafe0d2
commit fb353ff19d

View File

@ -780,7 +780,8 @@ xfs_qm_qino_alloc(
}
error = xfs_trans_alloc(mp, &M_RES(mp)->tr_create,
XFS_QM_QINOCREATE_SPACE_RES(mp), 0, 0, &tp);
need_alloc ? XFS_QM_QINOCREATE_SPACE_RES(mp) : 0,
0, 0, &tp);
if (error)
return error;