On Thu, Apr 20, 2023 at 03:11:15PM +0300, Vitaliy Makkoveev wrote:
> Now rtable_*source() are polished, so we could push this diff to tree.
>
> ok?
OK bluhm@
> 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);
> >