nfsd4: remove state lock from nfsd4_load_reboot_recovery_data
authorJ. Bruce Fields <bfields@redhat.com>
Fri, 16 Nov 2012 16:45:12 +0000 (11:45 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Wed, 28 Nov 2012 15:13:48 +0000 (10:13 -0500)
commitdba88ba55a06ff8bef467f2ca3f7904aeab8762a
treea101186fc45aa920260e2b083dbd2201faa81c10
parenta36b1725b342c8131a86a0238789d8e7bcb490dd
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>
fs/nfsd/nfs4recover.c