Re: about ENOSYS

From: Drokin, Oleg
Date: Mon Aug 03 2015 - 02:41:28 EST


subject have been missing, so I filled in something.

On Aug 3, 2015, at 2:18 AM, Shraddha Barke wrote:

> From b67c6c20455b04b77447ab4561e44f1a75dd978d Mon Sep 17 00:00:00 2001
> From: Shraddha Barke <shraddha.6596@xxxxxxxxx>
> Date: Mon, 3 Aug 2015 11:34:19 +0530
> Subject: [PATCH] Staging : lustre : Use -EINVAL instead of -ENOSYS
>
> ENOSYS means that a nonexistent system call was called. This should
> not be used for invalid operations on otherwise valid syscalls.
>
> Use -EINVAL instead of -ENOSYS. This fixes checkpatch warning message:
>
> WARNING: ENOSYS means 'invalid syscall nr' and nothing else

Is this really true, though?
I know you are working off what the tool reports.
But in reality people have been using ENOSYS to indicate
"this thing that you want is not really available"
Reading the define file we can see:
/usr/include/asm-generic/errno.h:#define ENOSYS 38 /* Function not implemented */

$ grep -r 'ENOSYS;' fs/ | wc -l
75

So it's extensively used in the fs tree by existing code.

Hmm…. Searching some more I arrived at commit e15f431f
that changes the in-kernel comment and claims the "system call only stuff".

So Greg, do you want Lustre to get rid of use of ENOSYS (all 16 users we have),
or is it ok to leave them in?

>
> Signed-off-by: Shraddha Barke <shraddha.6596@xxxxxxxxx>
> ---
> drivers/staging/lustre/lustre/llite/file.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c
> index 2c467bf..93619a8 100644
> --- a/drivers/staging/lustre/lustre/llite/file.c
> +++ b/drivers/staging/lustre/lustre/llite/file.c
> @@ -2786,7 +2786,7 @@ ll_file_flock(struct file *file, int cmd, struct file_lock *file_lock)
> static int
> ll_file_noflock(struct file *file, int cmd, struct file_lock *file_lock)
> {
> - return -ENOSYS;
> + return -EINVAL;
> }
>
> /**
> --
> 2.1.0
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/