mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 13:14:07 +08:00
xfs: don't allow SWAPEXT if we'd screw up quota accounting
Since the old SWAPEXT ioctl doesn't know how to adjust quota ids, bail out of the ids don't match and quotas are enabled. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
78bba5c812
commit
765d3c393c
@ -1211,6 +1211,13 @@ xfs_swap_extents_check_format(
|
||||
struct xfs_inode *tip) /* tmp inode */
|
||||
{
|
||||
|
||||
/* User/group/project quota ids must match if quotas are enforced. */
|
||||
if (XFS_IS_QUOTA_ON(ip->i_mount) &&
|
||||
(!uid_eq(VFS_I(ip)->i_uid, VFS_I(tip)->i_uid) ||
|
||||
!gid_eq(VFS_I(ip)->i_gid, VFS_I(tip)->i_gid) ||
|
||||
ip->i_d.di_projid != tip->i_d.di_projid))
|
||||
return -EINVAL;
|
||||
|
||||
/* Should never get a local format */
|
||||
if (ip->i_d.di_format == XFS_DINODE_FMT_LOCAL ||
|
||||
tip->i_d.di_format == XFS_DINODE_FMT_LOCAL)
|
||||
|
Loading…
Reference in New Issue
Block a user