• hexiaole's avatar
    xfs: fix inode reservation space for removing transaction · 031d166f
    hexiaole authored
    In 'fs/xfs/libxfs/xfs_trans_resv.c', the comment for transaction of removing a
    directory entry writes:
    
    /* fs/xfs/libxfs/xfs_trans_resv.c begin */
    /*
     * For removing a directory entry we can modify:
     *    the parent directory inode: inode size
     *    the removed inode: inode size
    ...
    xfs_calc_remove_reservation(
            struct xfs_mount        *mp)
    {
            return XFS_DQUOT_LOGRES(mp) +
                    xfs_calc_iunlink_add_reservation(mp) +
                    max((xfs_calc_inode_res(mp, 1) +
    ...
    /* fs/xfs/libxfs/xfs_trans_resv.c end */
    
    There has 2 inode size of space to be reserverd, but the actual code
    for inode reservation space writes.
    
    There only count for 1 inode size to be reserved in
    'xfs_calc_inode_res(mp, 1)', rather than 2.
    Signed-off-by: default avatarhexiaole <hexiaole@kylinos.cn>
    Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
    [djwong: remove redundant code citations]
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    031d166f
xfs_trans_resv.c 33 KB