diff options
author | J. Bruce Fields <bfields@redhat.com> | 2012-11-16 17:45:12 +0100 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2012-11-28 16:13:48 +0100 |
commit | dba88ba55a06ff8bef467f2ca3f7904aeab8762a (patch) | |
tree | a101186fc45aa920260e2b083dbd2201faa81c10 /fs/nfsd/nfs4recover.c | |
parent | nfsd4: return badname, not inval, on "." or "..", or "/" (diff) | |
download | linux-dba88ba55a06ff8bef467f2ca3f7904aeab8762a.tar.xz linux-dba88ba55a06ff8bef467f2ca3f7904aeab8762a.zip |
nfsd4: remove state lock from nfsd4_load_reboot_recovery_data
That function is only called under nfsd_mutex: we know that because the
only caller is nfsd_svc, via
nfsd_svc
nfsd_startup
nfs4_state_start
nfsd4_client_tracking_init
client_tracking_ops->init == nfsd4_load_reboot_recovery_data
The shared state accessed here includes:
- user_recovery_dirname: used here, modified only by
nfs4_reset_recoverydir, which can be verified to only be
called under nfsd_mutex.
- filesystem state, protected by i_mutex (handwaving slightly
here)
- rec_file, reclaim_str_hashtbl, reclaim_str_hashtbl_size: other
than here, used only from code called from nfsd or laundromat
threads, both of which should be started only after this runs
(see nfsd_svc) and stopped before this could run again (see
nfsd_shutdown, called from nfsd_last_thread).
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4recover.c')
-rw-r--r-- | fs/nfsd/nfs4recover.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c index b657b622bf5d..651d5134e74c 100644 --- a/fs/nfsd/nfs4recover.c +++ b/fs/nfsd/nfs4recover.c @@ -509,11 +509,9 @@ nfsd4_load_reboot_recovery_data(struct net *net) { int status; - nfs4_lock_state(); status = nfsd4_init_recdir(); if (!status) status = nfsd4_recdir_load(net); - nfs4_unlock_state(); if (status) printk(KERN_ERR "NFSD: Failure reading reboot recovery data\n"); return status; |