Al Viro <v...@zeniv.linux.org.uk> wrote:
>On Thu, Aug 06, 2020 at 12:59:16PM +0100, Al Viro wrote:
>> On Thu, Aug 06, 2020 at 07:53:16PM +0800, linmiaohe wrote:
>> > From: Miaohe Lin <linmia...@huawei.com>
>> > 
>> > We should fput() file iff FDPUT_FPUT is set. So we should set 
>> > fput_needed accordingly.
>> > 
>> > Fixes: 00e188ef6a7e ("sockfd_lookup_light(): switch to fdget^W^Waway 
>> > from fget_light")
>> 
>> Explain, please.  We are getting it from fdget(); what else can we get in 
>> flags there?
>
>FWIW, struct fd ->flags may have two bits set: FDPUT_FPUT and FDPUT_POS_UNLOCK.
>The latter is set only by __fdget_pos() and its callers, and that only for 
>regular files and directories.
>
>Nevermind that sockfd_lookup_light() does *not* use ..._pos() family of 
>primitives, even if it started to use e.g. fdget_pos() it *still* would not 
>end up with anything other than FDPUT_FPUT to deal with on that path - it 
>checks that what it got is a socket.  Anything else is dropped right there, 
>without leaving fput() to caller.
>
>So could you explain what exactly the bug is - if you are seeing some breakage 
>and this patch fixes it, something odd is definitely going on and it would be 
>nice to figure out what that something is.

I'am sorry, but I did not find something odd. I do this because this would make 
code more clear and consistent. It's pure a clean up patch.
Maybe Fixes tag makes this looks like a bugfix.

Thanks for your reply and detailed explaination. :)

And sorry for my rookie mistake, I wasn't meant to make these as a patch set...

Reply via email to