Message ID | 1307110290-30672-1-git-send-email-steved@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hey- On Jun 3, 2011, at 10:11 AM, Steve Dickson wrote: > When RPC services are created with svc_create() an > svc_unregister() is done to remove any stale registrations. > > This unregister is not needed with the v4 callback > service and will cause the mount to hang if rpcbind > is not running. This should no longer be the case. The kernel uses connected transports to contact rpcbind these days, and should be able to tell immediately that there is no rpcbind running. If there is still a hang, something else is wrong. > This patch makes the nfs4 callback service a hide service > by setting the vs_hidden flag in the nfs4_callback_version4 > structure One reason to continue to do this is to have some assurance that no-one else takes the same RPC program number. Not a big deal. > Signed-off-by: Steve Dickson <steved@redhat.com> > --- > fs/nfs/callback_xdr.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c > index c6c86a7..7c8b800 100644 > --- a/fs/nfs/callback_xdr.c > +++ b/fs/nfs/callback_xdr.c > @@ -996,4 +996,5 @@ struct svc_version nfs4_callback_version4 = { > .vs_proc = nfs4_callback_procedures1, > .vs_xdrsize = NFS4_CALLBACK_XDRSIZE, > .vs_dispatch = NULL, > + .vs_hidden = 1, > };
On 06/03/2011 10:41 AM, Chuck Lever wrote: > Hey- > > On Jun 3, 2011, at 10:11 AM, Steve Dickson wrote: > >> When RPC services are created with svc_create() an >> svc_unregister() is done to remove any stale registrations. >> >> This unregister is not needed with the v4 callback >> service and will cause the mount to hang if rpcbind >> is not running. > > This should no longer be the case. The kernel uses connected transports to contact rpcbind these days, and should be able to tell immediately that there is no rpcbind running. If there is still a hang, something else is wrong. Ok... The hang was just an theory... I didn't test it out... but I do know for a fact that when a v4 mount is done, a PMAP_UNSET is set to rpcbind which obviously is not needed. > >> This patch makes the nfs4 callback service a hide service >> by setting the vs_hidden flag in the nfs4_callback_version4 >> structure > > One reason to continue to do this is to have some assurance that no-one else takes the same RPC program number. Not a big deal. Personally I think its a waste of cycles especially when a large number of mounts are happening at once... Its completely overkill IMHO... steved. > >> Signed-off-by: Steve Dickson <steved@redhat.com> >> --- >> fs/nfs/callback_xdr.c | 1 + >> 1 files changed, 1 insertions(+), 0 deletions(-) >> >> diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c >> index c6c86a7..7c8b800 100644 >> --- a/fs/nfs/callback_xdr.c >> +++ b/fs/nfs/callback_xdr.c >> @@ -996,4 +996,5 @@ struct svc_version nfs4_callback_version4 = { >> .vs_proc = nfs4_callback_procedures1, >> .vs_xdrsize = NFS4_CALLBACK_XDRSIZE, >> .vs_dispatch = NULL, >> + .vs_hidden = 1, >> }; > -- 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 Jun 3, 2011, at 11:13 AM, Steve Dickson wrote: > On 06/03/2011 10:41 AM, Chuck Lever wrote: >> Hey- >> >> On Jun 3, 2011, at 10:11 AM, Steve Dickson wrote: >> >>> This patch makes the nfs4 callback service a hide service >>> by setting the vs_hidden flag in the nfs4_callback_version4 >>> structure >> >> One reason to continue to do this is to have some assurance that no-one else takes the same RPC program number. Not a big deal. > Personally I think its a waste of cycles especially when a large > number of mounts are happening at once... Its completely overkill IMHO... Agreed, and I'm not objecting to this specific change. The above was just a generic observation. My overall concern, though, was that we might still be hanging at mount or umount time if rpcbind was absent.
diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c index c6c86a7..7c8b800 100644 --- a/fs/nfs/callback_xdr.c +++ b/fs/nfs/callback_xdr.c @@ -996,4 +996,5 @@ struct svc_version nfs4_callback_version4 = { .vs_proc = nfs4_callback_procedures1, .vs_xdrsize = NFS4_CALLBACK_XDRSIZE, .vs_dispatch = NULL, + .vs_hidden = 1, };
When RPC services are created with svc_create() an svc_unregister() is done to remove any stale registrations. This unregister is not needed with the v4 callback service and will cause the mount to hang if rpcbind is not running. This patch makes the nfs4 callback service a hide service by setting the vs_hidden flag in the nfs4_callback_version4 structure Signed-off-by: Steve Dickson <steved@redhat.com> --- fs/nfs/callback_xdr.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)