X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=fs%2Fnfs%2Fnfs4state.c;fp=fs%2Fnfs%2Fnfs4state.c;h=0bc160fbabec3c05f8971a44b2fb2d0bbfa1cebc;hb=ed1cc05aa1f7fe8197d300e914afc28ab9818f89;hp=e079987af4a3e41a5589e84f6f19853b5b5bc402;hpb=5623ecfcbec165f040a23248d39680f0cc5c0854;p=linux-2.6-microblaze.git diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index e079987af4a3..0bc160fbabec 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c @@ -2703,6 +2703,13 @@ static void nfs4_state_manager(struct nfs_client *clp) nfs4_end_drain_session(clp); nfs4_clear_state_manager_bit(clp); + if (test_bit(NFS4CLNT_RUN_MANAGER, &clp->cl_state) && + !test_and_set_bit(NFS4CLNT_MANAGER_RUNNING, + &clp->cl_state)) { + memflags = memalloc_nofs_save(); + continue; + } + if (!test_and_set_bit(NFS4CLNT_RECALL_RUNNING, &clp->cl_state)) { if (test_and_clear_bit(NFS4CLNT_DELEGRETURN, &clp->cl_state)) { nfs_client_return_marked_delegations(clp);