• Jeff Layton's avatar
    NFS: flush signals before taking down callback thread · 1227a74e
    Jeff Layton authored
    Now that the reference counting on the callback thread is working as
    expected, it uncovers another problem.  Peter Staubach noticed while
    testing that patch on an older kernel that he would occasionally see
    this printk in rpc_register fire:
    
        "RPC: failed to contact portmap (errno -512).
    
    The NFSv4 callback thread is signaled by nfs_callback_down(), but never
    flushes that signal. All of the shutdown processing is done with that
    signal pending. This makes it fail the call to unregister the port with
    the portmapper.
    
    In actuality, this rpc_register call isn't necessary at all since the
    port isn't actually registered with the portmapper anymore. Regardless,
    there doesn't seem to be any reason to leave the signal pending while
    the thread is being shut down and flushing it should generally silence
    that printk.
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    1227a74e
callback.c 5.1 KB