Re: [PATCH net-next] net: sock: add the case if sk is NULL

From: yajun . deng
Date: Mon Aug 09 2021 - 02:13:17 EST


August 6, 2021 9:11 PM, "Jakub Kicinski" <kuba@xxxxxxxxxx> wrote:

> On Fri, 6 Aug 2021 14:38:15 +0800 Yajun Deng wrote:
>
>> Add the case if sk is NULL in sock_{put, hold},
>> The caller is free to use it.
>>
>> Signed-off-by: Yajun Deng <yajun.deng@xxxxxxxxx>
>
> The obvious complaint about this patch (and your previous netdev patch)
> is that you're spraying branches everywhere in the code. Sure, it may

Sorry for that, I'll be more normative in later submission.
> be okay for free(), given how expensive of an operation that is but
> is having refcounting functions accept NULL really the best practice?
>
> Can you give us examples in the kernel where that's the case?

0 include/net/neighbour.h neigh_clone()
1 include/linux/cgroup.h get_cgroup_ns() and put_cgroup_ns() (This is very similar to my submission)
2 include/linux/ipc_namespace.h get_ipc_ns()
3 include/linux/posix_acl.h posix_acl_dup()
4 include/linux/pid.h get_pid()
5 include/linux/user_namespace.h get_user_ns()