Re: The question of Q_XQUOTARM ioctl

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 20, 2021 at 03:56:10AM +0000, xuyang2018.jy@xxxxxxxxxxx wrote:
> Hi Darrick
> 
> Sorry for bothering you again.

No problem.  Sorry I lost this email for 2+ months. :(

> After Christoph Hellwig kernel patch("xfs: remove support for disabling
> quota accounting on a mounted file system"), we can't disable quota
> account feature on a mounted file system.
> 
> It causes Q_XQUOTARM ioctl doesn't work well because this ioctl needs
> quota accouting feature is off and it also needs super block has quota
> feature[1].
> 
> For quotactl man-pages about Q_XQUOTARM ioctl, it said "Free the disk
> space taken by disk quotas". I guess it free u/g/p inode.

Yes, that's what it's supposed to do.

> If we do normal mount with uquota feature and umount, then we should
> have free the inode(also changes in disk).
> 
> I don't know the right intention for Q_XQUOTARM now. Can you give me
> some advise? Or, we should remove Q_XQUOTARM ioctl and
> xfs_qm_scall_trunc_qfile code.

I think xfs_qm_scall_trunc_qfiles probably should be doing:

	if (xfs_has_quota(mp) || flags == 0 ||
	    (flags & ~XFS_QMOPT_QUOTALL)) {
		xfs_debug(...);
		return -EINVAL;
	}

Note the inversion in the has_quota test.  That would make it so that
you can truncate the quota files if quota is not on.

> If I understand wrong, please tell me.
> 
> ps: Christoph Hellwig kernel patch causes ltp quotactl07 fail, I found
> his patch by this case.
> 
> [1]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/xfs/xfs_qm_syscalls.c#n108

Why doesn't xfs/220 fail on the remove command?

Oh, because we patched it to filter that out, even though that's the
wrong thing to do.  That test really ought to remount with noquota and
then run xfs_quota -c remove $SCRATCH_DEV

--D

> Best Regards
> Yang Xu



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux