Now rtable_*source() are polished, so we could push this diff to tree.

ok?

On Mon, Apr 17, 2023 at 02:36:57AM +0300, Vitaliy Makkoveev wrote:
> It seems rt_setsource() needs some attention, but sysctl_source() could
> be called with shared netlock just now.
> 
> Index: sys/net/rtsock.c
> ===================================================================
> RCS file: /cvs/src/sys/net/rtsock.c,v
> retrieving revision 1.359
> diff -u -p -r1.359 rtsock.c
> --- sys/net/rtsock.c  22 Jan 2023 12:05:44 -0000      1.359
> +++ sys/net/rtsock.c  16 Apr 2023 23:14:11 -0000
> @@ -2201,7 +2201,7 @@ sysctl_rtable(int *name, u_int namelen, 
>               tableid = w.w_arg;
>               if (!rtable_exists(tableid))
>                       return (ENOENT);
> -             NET_LOCK();
> +             NET_LOCK_SHARED();
>               for (i = 1; i <= AF_MAX; i++) {
>                       if (af != 0 && af != i)
>                               continue;
> @@ -2212,7 +2212,7 @@ sysctl_rtable(int *name, u_int namelen, 
>                       if (error)
>                               break;
>               }
> -             NET_UNLOCK();
> +             NET_UNLOCK_SHARED();
>               break;
>       }
>       free(w.w_tmem, M_RTABLE, w.w_tmemsize);
> 

Reply via email to