Message ID | 1d1a25d8-a34b-5175-bb6a-9549041c11f4@virtuozzo.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Oct 30, 2017 at 04:47:58PM +0300, Vasily Averin wrote: > nlm_complain_hosts() walk through nlm_server_hosts hlist that should be > protected by nlm_host_mutex. I haven't looked at the NLM locking in ages. Do we know who else might actually be accessing this list concurrently? --b. > > Signed-off-by: Vasily Averin <vvs@virtuozzo.com> > --- > fs/lockd/host.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/fs/lockd/host.c b/fs/lockd/host.c > index d716c99..089c1d7 100644 > --- a/fs/lockd/host.c > +++ b/fs/lockd/host.c > @@ -617,9 +617,8 @@ nlm_shutdown_hosts_net(struct net *net) > > /* Then, perform a garbage collection pass */ > nlm_gc_hosts(net); > - mutex_unlock(&nlm_host_mutex); > - > nlm_complain_hosts(net); > + mutex_unlock(&nlm_host_mutex); > } > > /* > -- > 2.7.4 -- 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 2017-10-30 17:49, J. Bruce Fields wrote: > On Mon, Oct 30, 2017 at 04:47:58PM +0300, Vasily Averin wrote: >> nlm_complain_hosts() walk through nlm_server_hosts hlist that should be >> protected by nlm_host_mutex. > > I haven't looked at the NLM locking in ages. Do we know who else might > actually be accessing this list concurrently? Thank you for the question, I'll investigate it. >> Signed-off-by: Vasily Averin <vvs@virtuozzo.com> >> --- >> fs/lockd/host.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/fs/lockd/host.c b/fs/lockd/host.c >> index d716c99..089c1d7 100644 >> --- a/fs/lockd/host.c >> +++ b/fs/lockd/host.c >> @@ -617,9 +617,8 @@ nlm_shutdown_hosts_net(struct net *net) >> >> /* Then, perform a garbage collection pass */ >> nlm_gc_hosts(net); >> - mutex_unlock(&nlm_host_mutex); >> - >> nlm_complain_hosts(net); >> + mutex_unlock(&nlm_host_mutex); >> } >> >> /* >> -- >> 2.7.4 > -- 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 Mon, 2017-10-30 at 10:49 -0400, J. Bruce Fields wrote: > On Mon, Oct 30, 2017 at 04:47:58PM +0300, Vasily Averin wrote: > > nlm_complain_hosts() walk through nlm_server_hosts hlist that should be > > protected by nlm_host_mutex. > > I haven't looked at the NLM locking in ages. Do we know who else might > actually be accessing this list concurrently? > > --b. > Since this is a per-net-ns shutdown, I suppose you could have concurrent rpc.nfsd's shutting down different namespaces. Holding the mutex for longer looks like a reasonable fix. That said...I don't think lockd was ever properly namespace-ified. YMMV here. > > > > Signed-off-by: Vasily Averin <vvs@virtuozzo.com> > > --- > > fs/lockd/host.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/fs/lockd/host.c b/fs/lockd/host.c > > index d716c99..089c1d7 100644 > > --- a/fs/lockd/host.c > > +++ b/fs/lockd/host.c > > @@ -617,9 +617,8 @@ nlm_shutdown_hosts_net(struct net *net) > > > > /* Then, perform a garbage collection pass */ > > nlm_gc_hosts(net); > > - mutex_unlock(&nlm_host_mutex); > > - > > nlm_complain_hosts(net); > > + mutex_unlock(&nlm_host_mutex); > > } > > > > /* > > -- > > 2.7.4 > > -- > 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 You can add: Reviewed-by: Jeff Layton <jlayton@redhat.com> -- 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/fs/lockd/host.c b/fs/lockd/host.c index d716c99..089c1d7 100644 --- a/fs/lockd/host.c +++ b/fs/lockd/host.c @@ -617,9 +617,8 @@ nlm_shutdown_hosts_net(struct net *net) /* Then, perform a garbage collection pass */ nlm_gc_hosts(net); - mutex_unlock(&nlm_host_mutex); - nlm_complain_hosts(net); + mutex_unlock(&nlm_host_mutex); } /*
nlm_complain_hosts() walk through nlm_server_hosts hlist that should be protected by nlm_host_mutex. Signed-off-by: Vasily Averin <vvs@virtuozzo.com> --- fs/lockd/host.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)