Message ID | 152093815494.8636.6607369744413088370.stgit@localhost.localdomain (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 03/13/2018 06:49 AM, Kirill Tkhai wrote: > These pernet_operations initialize and destroy sunrpc_net_id > refered per-net items. Only used global list is cache_list, > and accesses already serialized. > > sunrpc_destroy_cache_detail() check for list_empty() without > cache_list_lock, but when it's called from unregister_pernet_subsys(), > there can't be callers in parallel, so we won't miss list_empty() > in this case. > > Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> It might make sense to take these and the other NFS patches through the net tree, since the pernet_operations don't yet have the async field in my tree (and I therefore can't compile once these are applied). Acked-by: Anna Schumaker <Anna.Schumaker@netapp.com> > --- > net/sunrpc/auth_gss/auth_gss.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c > index 9463af4b32e8..44f939cb6bc8 100644 > --- a/net/sunrpc/auth_gss/auth_gss.c > +++ b/net/sunrpc/auth_gss/auth_gss.c > @@ -2063,6 +2063,7 @@ static __net_exit void rpcsec_gss_exit_net(struct net *net) > static struct pernet_operations rpcsec_gss_net_ops = { > .init = rpcsec_gss_init_net, > .exit = rpcsec_gss_exit_net, > + .async = true, > }; > > /* > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 03/13/2018 06:49 AM, Kirill Tkhai wrote: > These pernet_operations initialize and destroy sunrpc_net_id > refered per-net items. Only used global list is cache_list, > and accesses already serialized. > > sunrpc_destroy_cache_detail() check for list_empty() without > cache_list_lock, but when it's called from unregister_pernet_subsys(), > there can't be callers in parallel, so we won't miss list_empty() > in this case. > > Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> It might make sense to take these and the other NFS patches through the net tree, since the pernet_operations don't yet have the async field in my tree (and I therefore can't compile once these are applied). Acked-by: Anna Schumaker <Anna.Schumaker@netapp.com> > --- > net/sunrpc/auth_gss/auth_gss.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c > index 9463af4b32e8..44f939cb6bc8 100644 > --- a/net/sunrpc/auth_gss/auth_gss.c > +++ b/net/sunrpc/auth_gss/auth_gss.c > @@ -2063,6 +2063,7 @@ static __net_exit void rpcsec_gss_exit_net(struct net *net) > static struct pernet_operations rpcsec_gss_net_ops = { > .init = rpcsec_gss_init_net, > .exit = rpcsec_gss_exit_net, > + .async = true, > }; > > /* > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 23.03.2018 21:53, Anna Schumaker wrote: > > > On 03/13/2018 06:49 AM, Kirill Tkhai wrote: >> These pernet_operations initialize and destroy sunrpc_net_id >> refered per-net items. Only used global list is cache_list, >> and accesses already serialized. >> >> sunrpc_destroy_cache_detail() check for list_empty() without >> cache_list_lock, but when it's called from unregister_pernet_subsys(), >> there can't be callers in parallel, so we won't miss list_empty() >> in this case. >> >> Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> > > It might make sense to take these and the other NFS patches through the net tree, since the pernet_operations don't yet have the async field in my tree (and I therefore can't compile once these are applied). > > Acked-by: Anna Schumaker <Anna.Schumaker@netapp.com> Thanks a lot, Anna! Kirill >> --- >> net/sunrpc/auth_gss/auth_gss.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c >> index 9463af4b32e8..44f939cb6bc8 100644 >> --- a/net/sunrpc/auth_gss/auth_gss.c >> +++ b/net/sunrpc/auth_gss/auth_gss.c >> @@ -2063,6 +2063,7 @@ static __net_exit void rpcsec_gss_exit_net(struct net *net) >> static struct pernet_operations rpcsec_gss_net_ops = { >> .init = rpcsec_gss_init_net, >> .exit = rpcsec_gss_exit_net, >> + .async = true, >> }; >> >> /* >> -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Mar 23, 2018 at 02:53:34PM -0400, Anna Schumaker wrote: > > > On 03/13/2018 06:49 AM, Kirill Tkhai wrote: > > These pernet_operations initialize and destroy sunrpc_net_id refered > > per-net items. Only used global list is cache_list, and accesses > > already serialized. > > > > sunrpc_destroy_cache_detail() check for list_empty() without > > cache_list_lock, but when it's called from > > unregister_pernet_subsys(), there can't be callers in parallel, so > > we won't miss list_empty() in this case. > > > > Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> > > It might make sense to take these and the other NFS patches through > the net tree, since the pernet_operations don't yet have the async > field in my tree (and I therefore can't compile once these are > applied). Ditto for the nfsd patch, so, for what it's worth: Acked-by: J. Bruce Fields <bfields@redhat.com> for that patch.--b. --b. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 26.03.2018 21:36, J. Bruce Fields wrote: > On Fri, Mar 23, 2018 at 02:53:34PM -0400, Anna Schumaker wrote: >> >> >> On 03/13/2018 06:49 AM, Kirill Tkhai wrote: >>> These pernet_operations initialize and destroy sunrpc_net_id refered >>> per-net items. Only used global list is cache_list, and accesses >>> already serialized. >>> >>> sunrpc_destroy_cache_detail() check for list_empty() without >>> cache_list_lock, but when it's called from >>> unregister_pernet_subsys(), there can't be callers in parallel, so >>> we won't miss list_empty() in this case. >>> >>> Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> >> >> It might make sense to take these and the other NFS patches through >> the net tree, since the pernet_operations don't yet have the async >> field in my tree (and I therefore can't compile once these are >> applied). > > Ditto for the nfsd patch, so, for what it's worth: > > Acked-by: J. Bruce Fields <bfields@redhat.com> > > for that patch.--b. Thanks, Bruce. Kirill -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c index 9463af4b32e8..44f939cb6bc8 100644 --- a/net/sunrpc/auth_gss/auth_gss.c +++ b/net/sunrpc/auth_gss/auth_gss.c @@ -2063,6 +2063,7 @@ static __net_exit void rpcsec_gss_exit_net(struct net *net) static struct pernet_operations rpcsec_gss_net_ops = { .init = rpcsec_gss_init_net, .exit = rpcsec_gss_exit_net, + .async = true, }; /*
These pernet_operations initialize and destroy sunrpc_net_id refered per-net items. Only used global list is cache_list, and accesses already serialized. sunrpc_destroy_cache_detail() check for list_empty() without cache_list_lock, but when it's called from unregister_pernet_subsys(), there can't be callers in parallel, so we won't miss list_empty() in this case. Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> --- net/sunrpc/auth_gss/auth_gss.c | 1 + 1 file changed, 1 insertion(+) -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html