diff options
Diffstat (limited to 'fs/lockd/svcsubs.c')
-rw-r--r-- | fs/lockd/svcsubs.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/fs/lockd/svcsubs.c b/fs/lockd/svcsubs.c index 514f5f20701e..c5f9113cdc70 100644 --- a/fs/lockd/svcsubs.c +++ b/fs/lockd/svcsubs.c | |||
@@ -324,7 +324,16 @@ nlmsvc_same_host(struct nlm_host *host, struct nlm_host *other) | |||
324 | static int | 324 | static int |
325 | nlmsvc_is_client(struct nlm_host *host, struct nlm_host *dummy) | 325 | nlmsvc_is_client(struct nlm_host *host, struct nlm_host *dummy) |
326 | { | 326 | { |
327 | return host->h_server; | 327 | if (host->h_server) { |
328 | /* we are destroying locks even though the client | ||
329 | * hasn't asked us too, so don't unmonitor the | ||
330 | * client | ||
331 | */ | ||
332 | if (host->h_nsmhandle) | ||
333 | host->h_nsmhandle->sm_sticky = 1; | ||
334 | return 1; | ||
335 | } else | ||
336 | return 0; | ||
328 | } | 337 | } |
329 | 338 | ||
330 | /* | 339 | /* |