NFSv4: Fix a regression in the NFSv4 state manager
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 15 Dec 2009 22:36:57 +0000 (17:36 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 15 Dec 2009 22:36:57 +0000 (17:36 -0500)
commit380454126f1357db9270f9d1ca05dfe1a6e4ad47
treeb7a7afdb59c0421f371c7242c170982153a76835
parent72211dbe727f7c1451aa5adfcbd1197b090eb276
NFSv4: Fix a regression in the NFSv4 state manager

Commit 5601a00d671fe89f9b087513244abcd08ad67e7d (nfs: run state manager
in privileged mode) introduces a regression in the NFSv4 code when
compiled with CONFIG_NFS_V4_1. The calls to nfs4_end_drain_session()
from the main loop in nfs4_state_manager() Oops due to the lack of an
NFSv4.1 session when running NFSv4.0.

The fix is to move those two calls back into nfs41_init_clientid() and
nfs4_reset_session().

The calls to nfs4_end_drain_session() that remain inside
nfs4_state_manager() are safe, since the NFSv4.0 code will never set the
NFS4CLNT_SESSION_DRAINING bit.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4state.c