Re: [PATCH 1/2] quota: Add mountpath based quota support

From: Jan Kara
Date: Fri Feb 12 2021 - 05:13:17 EST


On Fri 12-02-21 09:38:35, Sascha Hauer wrote:
> On Thu, Feb 11, 2021 at 03:38:13PM +0000, Christoph Hellwig wrote:
> > > + if (!mountpoint)
> > > + return -ENODEV;
> > > +
> > > + ret = user_path_at(AT_FDCWD, mountpoint,
> > > + LOOKUP_FOLLOW | LOOKUP_AUTOMOUNT, &mountpath);
> >
> > user_path_at handles an empty path, although you'll get EFAULT instead.
> > Do we care about the -ENODEV here?
>
> The quotactl manpage documents EFAULT as error code for invalid addr or
> special argument, so we really should return -EFAULT here.
>
> Existing quotactl gets this wrong as well:
>
> if (!special) {
> if (cmds == Q_SYNC)
> return quota_sync_all(type);
> return -ENODEV;
> }
>
> Should we fix this or is there userspace code that is confused by a changed
> return value?

I'd leave the original quotactl(2) as is. There's no strong reason to risk
breaking some userspace. For the new syscall, I agree we can just
standardize the return value, there ENODEV makes even less sense since
there's no device in that call.

Honza

--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR