2015-08-03 06:19:17

by Shraddha Barke

[permalink] [raw]
Subject:

>From b67c6c20455b04b77447ab4561e44f1a75dd978d Mon Sep 17 00:00:00 2001
From: Shraddha Barke <[email protected]>
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

Signed-off-by: Shraddha Barke <[email protected]>
---
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


2015-08-03 06:41:26

by Oleg Drokin

[permalink] [raw]
Subject: Re: about ENOSYS

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 <[email protected]>
> 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 <[email protected]>
> ---
> 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
>

2015-08-03 07:13:15

by Sudip Mukherjee

[permalink] [raw]
Subject: Re: your mail

On Mon, Aug 03, 2015 at 11:48:59AM +0530, Shraddha Barke wrote:
> From b67c6c20455b04b77447ab4561e44f1a75dd978d Mon Sep 17 00:00:00 2001
> From: Shraddha Barke <[email protected]>
> Date: Mon, 3 Aug 2015 11:34:19 +0530
> Subject: [PATCH] Staging : lustre : Use -EINVAL instead of -ENOSYS

You do not need these in the commit message.

regards
sudip

2015-08-03 07:25:10

by Dan Carpenter

[permalink] [raw]
Subject: Re: your mail

Returning EINVAL here is the wrong thing. Just leave the code as is.

regards,
dan carpenter

2015-08-03 16:21:59

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: about ENOSYS

On Mon, Aug 03, 2015 at 06:41:22AM +0000, Drokin, Oleg wrote:
> 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 <[email protected]>
> > 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?

For now I'd just leave it as-is.