NLM: Fix reclaim races
Currently it is possible for a task to remove its locks at the same time as the NLM recovery thread is trying to recover them. This quickly leads to an Oops. Protect the locks using an rw semaphore while they are being recovered. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
@@ -117,6 +117,7 @@ nlm_lookup_host(int server, struct sockaddr_in *sin,
|
||||
host->h_expires = jiffies + NLM_HOST_EXPIRE;
|
||||
atomic_set(&host->h_count, 1);
|
||||
init_waitqueue_head(&host->h_gracewait);
|
||||
init_rwsem(&host->h_rwsem);
|
||||
host->h_state = 0; /* pseudo NSM state */
|
||||
host->h_nsmstate = 0; /* real NSM state */
|
||||
host->h_server = server;
|
||||
|
Reference in New Issue
Block a user