diff options
| author | J. Bruce Fields <bfields@citi.umich.edu> | 2008-11-20 15:36:17 -0500 |
|---|---|---|
| committer | J. Bruce Fields <bfields@citi.umich.edu> | 2008-11-24 11:12:48 -0500 |
| commit | 2c5e76158fcea6e3b9536a74efa7b5e2e846d374 (patch) | |
| tree | dca1fcd75e3091b9ffe14b5461714fed1542dbba | |
| parent | b726e923ea4d216027e466aa602d914e4b4a63af (diff) | |
nfsd: clean up grace period on early exit
If nfsd was shut down before the grace period ended, we could end up
with a freed object still on grace_list. Thanks to Jeff Moyer for
reporting the resulting list corruption warnings.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Tested-by: Jeff Moyer <jmoyer@redhat.com>
| -rw-r--r-- | fs/lockd/svc.c | 1 | ||||
| -rw-r--r-- | fs/nfsd/nfs4state.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c index c631a83931ce..56b076736b56 100644 --- a/fs/lockd/svc.c +++ b/fs/lockd/svc.c | |||
| @@ -181,6 +181,7 @@ lockd(void *vrqstp) | |||
| 181 | } | 181 | } |
| 182 | flush_signals(current); | 182 | flush_signals(current); |
| 183 | cancel_delayed_work_sync(&grace_period_end); | 183 | cancel_delayed_work_sync(&grace_period_end); |
| 184 | locks_end_grace(&lockd_manager); | ||
| 184 | if (nlmsvc_ops) | 185 | if (nlmsvc_ops) |
| 185 | nlmsvc_invalidate_all(); | 186 | nlmsvc_invalidate_all(); |
| 186 | nlm_shutdown_hosts(); | 187 | nlm_shutdown_hosts(); |
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index b0bebc552a11..1a052ac2bde9 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
| @@ -3261,6 +3261,7 @@ nfs4_state_shutdown(void) | |||
| 3261 | { | 3261 | { |
| 3262 | cancel_rearming_delayed_workqueue(laundry_wq, &laundromat_work); | 3262 | cancel_rearming_delayed_workqueue(laundry_wq, &laundromat_work); |
| 3263 | destroy_workqueue(laundry_wq); | 3263 | destroy_workqueue(laundry_wq); |
| 3264 | locks_end_grace(&nfsd4_manager); | ||
| 3264 | nfs4_lock_state(); | 3265 | nfs4_lock_state(); |
| 3265 | nfs4_release_reclaim(); | 3266 | nfs4_release_reclaim(); |
| 3266 | __nfs4_state_shutdown(); | 3267 | __nfs4_state_shutdown(); |
