On Fri 12-02-21 09:38:35, Sascha Hauer wrote:
On Thu, Feb 11, 2021 at 03:38:13PM +0000, Christoph Hellwig wrote:
quoted
quoted
+ 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 [off-list ref]
SUSE Labs, CR