The "+" thing seems a little odd. Why not use "||" instead? The sum of the two returns isn't really the important thing, is it? It is that either call to svc_close_list() returns non-zero.
Thanx... ps -----Original Message----- From: linux-nfs-ow...@vger.kernel.org [mailto:linux-nfs-ow...@vger.kernel.org] On Behalf Of J. Bruce Fields Sent: Tuesday, February 12, 2013 3:46 PM To: Stanislav Kinsbursky Cc: a...@linux-foundation.org; linux-...@vger.kernel.org; trond.mykleb...@netapp.com; linux-kernel@vger.kernel.org; de...@openvz.org Subject: Re: [PATCH 0/2] NFSD: fix races in service per-net resources allocation On Tue, Feb 12, 2013 at 01:52:32PM +0400, Stanislav Kinsbursky wrote: > 12.02.2013 00:58, J. Bruce Fields пишет: > <snip> > > void svc_close_net(struct svc_serv *serv, struct net *net) > > { > >- svc_close_list(serv, &serv->sv_tempsocks, net); > >- svc_close_list(serv, &serv->sv_permsocks, net); > >- > >- svc_clear_pools(serv, net); > >- /* > >- * At this point the sp_sockets lists will stay empty, since > >- * svc_xprt_enqueue will not add new entries without taking the > >- * sp_lock and checking XPT_BUSY. > >- */ > >- svc_clear_list(serv, &serv->sv_tempsocks, net); > >- svc_clear_list(serv, &serv->sv_permsocks, net); > >+ int closed; > >+ int delay = 0; > >+ > >+again: > >+ closed = svc_close_list(serv, &serv->sv_permsocks, net); > >+ closed += svc_close_list(serv, &serv->sv_tempsocks, net); > >+ if (closed) { > >+ svc_clean_up_xprts(serv, net); > >+ msleep(delay++); > >+ goto again; > >+ } > > Frankly, this hunk above makes me feel sick... :( But I have no better > idea right now... > Maybe make this hunk a bit less weird (this is from my POW only, of course), > like this: > > > + while (svc_close_list(serv, &serv->sv_permsocks, net) + > > + svc_close_list(serv, &serv->sv_tempsocks, net)) { > > + svc_clean_up_xprts(serv, net); > > + msleep(delay++); > > + } > > ? OK, that's a little more compact at least. --b. > > Anyway, thanks! > > Acked-by: Stanislav Kinsbursky <skinsbur...@parallels.com> > > -- > Best regards, > Stanislav Kinsbursky -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html