On 4/22/14, 1:43 AM, Christoph Hellwig wrote: > On Mon, Apr 21, 2014 at 03:33:37PM -0500, Eric Sandeen wrote: >> The Q_XQUOTARM quotactl was not working properly, because >> we weren't passing around proper flags. The xfs_fs_set_xstate() >> ioctl handler used the same flags for Q_XQUOTAON/OFF as >> well as for Q_XQUOTARM, but Q_XQUOTAON/OFF look for >> XFS_UQUOTA_ACCT, XFS_UQUOTA_ENFD, XFS_GQUOTA_ACCT etc, >> i.e. quota type + state, while Q_XQUOTARM looks only for >> the type of quota, i.e. XFS_DQ_USER, XFS_DQ_GROUP etc. >> >> Unfortunately these flag spaces overlap a bit, so we >> got semi-random results for Q_XQUOTARM; i.e. the value >> for XFS_DQ_USER == XFS_UQUOTA_ACCT, etc. yeargh. >> >> Split out the flag conversion from userspace to kernelspace, >> depending on the quotactl that is being executed; add 2 new >> helpers to do this, so that we send the right flags to the >> lower-level functions. >> >> This has been broken more or less forever, AFAICT. > > So if this isn't very urgent I'd rather replace ->set_xstate with one > operation per ioctl, so that we don't multiple different kinds of flags > over the same operation. > eh, that's probably better, I'll take a look. Thanks, -Eric _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs