xfs
[Top] [All Lists]

Re: [PATCH] xfs: fix Q_XQUOTARM ioctl

To: Eric Sandeen <sandeen@xxxxxxxxxx>
Subject: Re: [PATCH] xfs: fix Q_XQUOTARM ioctl
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Mon, 21 Apr 2014 23:43:16 -0700
Cc: xfs-oss <xfs@xxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <535580A1.20806@xxxxxxxxxx>
References: <535580A1.20806@xxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
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.

<Prev in Thread] Current Thread [Next in Thread>