linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] FS: Fixing return type of unsigned_offsets
@ 2017-05-11  4:27 Pushkar Jambhlekar
  2017-05-11  4:39 ` Joe Perches
  0 siblings, 1 reply; 7+ messages in thread
From: Pushkar Jambhlekar @ 2017-05-11  4:27 UTC (permalink / raw)
  To: Al Viro; +Cc: linux-fsdevel, linux-kernel, Pushkar Jambhlekar

Fixing Sparse warning. It should return bool, instead it returns
int. 

Signed-off-by: Pushkar Jambhlekar <pushkar.iit@gmail.com>
---
 fs/read_write.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/read_write.c b/fs/read_write.c
index 47c1d44..d672830 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -33,9 +33,9 @@ const struct file_operations generic_ro_fops = {
 
 EXPORT_SYMBOL(generic_ro_fops);
 
-static inline int unsigned_offsets(struct file *file)
+static inline bool unsigned_offsets(struct file *file)
 {
-	return file->f_mode & FMODE_UNSIGNED_OFFSET;
+	return !!(file->f_mode & FMODE_UNSIGNED_OFFSET);
 }
 
 /**
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] FS: Fixing return type of unsigned_offsets
  2017-05-11  4:27 [PATCH] FS: Fixing return type of unsigned_offsets Pushkar Jambhlekar
@ 2017-05-11  4:39 ` Joe Perches
  2017-05-11  4:43   ` Pushkar Jambhlekar
  0 siblings, 1 reply; 7+ messages in thread
From: Joe Perches @ 2017-05-11  4:39 UTC (permalink / raw)
  To: Pushkar Jambhlekar, Al Viro; +Cc: linux-fsdevel, linux-kernel

On Thu, 2017-05-11 at 09:57 +0530, Pushkar Jambhlekar wrote:
> Fixing Sparse warning. It should return bool, instead it returns
> int.
[]
> diff --git a/fs/read_write.c b/fs/read_write.c
[]
> @@ -33,9 +33,9 @@ const struct file_operations generic_ro_fops = {
>  
>  EXPORT_SYMBOL(generic_ro_fops);
>  
> -static inline int unsigned_offsets(struct file *file)
> +static inline bool unsigned_offsets(struct file *file)
>  {
> -	return file->f_mode & FMODE_UNSIGNED_OFFSET;
> +	return !!(file->f_mode & FMODE_UNSIGNED_OFFSET);

trivia: the !! isn't necessary as by definition
all non-zero assigns to bool are converted to 1.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] FS: Fixing return type of unsigned_offsets
  2017-05-11  4:39 ` Joe Perches
@ 2017-05-11  4:43   ` Pushkar Jambhlekar
  2017-05-11  4:55     ` Joe Perches
  0 siblings, 1 reply; 7+ messages in thread
From: Pushkar Jambhlekar @ 2017-05-11  4:43 UTC (permalink / raw)
  To: Joe Perches; +Cc: Al Viro, linux-fsdevel, linux-kernel

Should I change my implementation, i.e. remove '!!'?

On Thu, May 11, 2017 at 10:09 AM, Joe Perches <joe@perches.com> wrote:
> On Thu, 2017-05-11 at 09:57 +0530, Pushkar Jambhlekar wrote:
>> Fixing Sparse warning. It should return bool, instead it returns
>> int.
> []
>> diff --git a/fs/read_write.c b/fs/read_write.c
> []
>> @@ -33,9 +33,9 @@ const struct file_operations generic_ro_fops = {
>>
>>  EXPORT_SYMBOL(generic_ro_fops);
>>
>> -static inline int unsigned_offsets(struct file *file)
>> +static inline bool unsigned_offsets(struct file *file)
>>  {
>> -     return file->f_mode & FMODE_UNSIGNED_OFFSET;
>> +     return !!(file->f_mode & FMODE_UNSIGNED_OFFSET);
>
> trivia: the !! isn't necessary as by definition
> all non-zero assigns to bool are converted to 1.
>



-- 
Jambhlekar Pushkar Arun

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] FS: Fixing return type of unsigned_offsets
  2017-05-11  4:43   ` Pushkar Jambhlekar
@ 2017-05-11  4:55     ` Joe Perches
  2017-05-11  5:04       ` Pushkar Jambhlekar
  0 siblings, 1 reply; 7+ messages in thread
From: Joe Perches @ 2017-05-11  4:55 UTC (permalink / raw)
  To: Pushkar Jambhlekar; +Cc: Al Viro, linux-fsdevel, linux-kernel

On Thu, 2017-05-11 at 10:13 +0530, Pushkar Jambhlekar wrote:
> Should I change my implementation, i.e. remove '!!'?

That'd be up to Al.

At least one implementation using similar bit comparisons
in fs/*.c does not use !!

fs/locks.c:static bool lease_breaking(struct file_lock *fl)
fs/locks.c-{
fs/locks.c-     return fl->fl_flags & (FL_UNLOCK_PENDING | FL_DOWNGRADE_PENDING)
fs/locks.c-}

I didn't look very hard.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] FS: Fixing return type of unsigned_offsets
  2017-05-11  4:55     ` Joe Perches
@ 2017-05-11  5:04       ` Pushkar Jambhlekar
  2017-05-11  6:07         ` Al Viro
  0 siblings, 1 reply; 7+ messages in thread
From: Pushkar Jambhlekar @ 2017-05-11  5:04 UTC (permalink / raw)
  To: Joe Perches; +Cc: Al Viro, linux-fsdevel, linux-kernel

If I remove '!!', sparse flags warning:

fs/read_write.c:38:29: warning: incorrect type in return expression
(different base types)
fs/read_write.c:38:29:    expected bool
fs/read_write.c:38:29:    got restricted fmode_t

It means explicit conversion is needed.

On Thu, May 11, 2017 at 10:25 AM, Joe Perches <joe@perches.com> wrote:
> On Thu, 2017-05-11 at 10:13 +0530, Pushkar Jambhlekar wrote:
>> Should I change my implementation, i.e. remove '!!'?
>
> That'd be up to Al.
>
> At least one implementation using similar bit comparisons
> in fs/*.c does not use !!
>
> fs/locks.c:static bool lease_breaking(struct file_lock *fl)
> fs/locks.c-{
> fs/locks.c-     return fl->fl_flags & (FL_UNLOCK_PENDING | FL_DOWNGRADE_PENDING)
> fs/locks.c-}
>
> I didn't look very hard.



-- 
Jambhlekar Pushkar Arun

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] FS: Fixing return type of unsigned_offsets
  2017-05-11  5:04       ` Pushkar Jambhlekar
@ 2017-05-11  6:07         ` Al Viro
  2017-05-11 20:09           ` Luc Van Oostenryck
  0 siblings, 1 reply; 7+ messages in thread
From: Al Viro @ 2017-05-11  6:07 UTC (permalink / raw)
  To: Pushkar Jambhlekar; +Cc: Joe Perches, linux-fsdevel, linux-kernel

On Thu, May 11, 2017 at 10:34:02AM +0530, Pushkar Jambhlekar wrote:
> If I remove '!!', sparse flags warning:
> 
> fs/read_write.c:38:29: warning: incorrect type in return expression
> (different base types)
> fs/read_write.c:38:29:    expected bool
> fs/read_write.c:38:29:    got restricted fmode_t
> 
> It means explicit conversion is needed.

FVO"needed" equal to "needed to make sparse STFU"?  If anything, that's
sparse being wrong - evaluate.c:check_assignment_type() should do
		if (t == &ctype_bool) {
			if (is_fouled_type(s))
				warning((*rp)->pos, "%s degrades to integer",
					show_typename(s->ctype.base_type));
			goto Cast;
                }
right after
                } else if (!(sclass & TYPE_RESTRICT))
                        goto Cast;

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] FS: Fixing return type of unsigned_offsets
  2017-05-11  6:07         ` Al Viro
@ 2017-05-11 20:09           ` Luc Van Oostenryck
  0 siblings, 0 replies; 7+ messages in thread
From: Luc Van Oostenryck @ 2017-05-11 20:09 UTC (permalink / raw)
  To: Al Viro
  Cc: Pushkar Jambhlekar, Joe Perches, linux-fsdevel, linux-kernel,
	Linux-Sparse

On Thu, May 11, 2017 at 8:07 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> FVO"needed" equal to "needed to make sparse STFU"?  If anything, that's
> sparse being wrong - evaluate.c:check_assignment_type() should do
>                 if (t == &ctype_bool) {
>                         if (is_fouled_type(s))
>                                 warning((*rp)->pos, "%s degrades to integer",
>                                         show_typename(s->ctype.base_type));
>                         goto Cast;
>                 }
> right after
>                 } else if (!(sclass & TYPE_RESTRICT))
>                         goto Cast;

What about an explicit cast of restricted types to bool?
I think we would want the equivalent of this patch for those too.

-- Luc

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-05-11 20:09 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-11  4:27 [PATCH] FS: Fixing return type of unsigned_offsets Pushkar Jambhlekar
2017-05-11  4:39 ` Joe Perches
2017-05-11  4:43   ` Pushkar Jambhlekar
2017-05-11  4:55     ` Joe Perches
2017-05-11  5:04       ` Pushkar Jambhlekar
2017-05-11  6:07         ` Al Viro
2017-05-11 20:09           ` Luc Van Oostenryck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).