diff options
author | J. Bruce Fields <bfields@redhat.com> | 2013-03-19 12:05:39 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2013-04-03 11:48:40 -0400 |
commit | 66b2b9b2b0e8a9034806293a436628400a44a71d (patch) | |
tree | a1a142425240c28f7b942dc665afe77752c82ae1 /fs/nfsd/state.h | |
parent | 221a68766973d7a3afe40a05abd8258b5de016a0 (diff) |
nfsd4: don't destroy in-use session
This changes session destruction to be similar to client destruction in
that attempts to destroy a session while in use (which should be rare
corner cases) result in DELAY. This simplifies things somewhat and
helps meet a coming 4.2 requirement.
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/state.h')
-rw-r--r-- | fs/nfsd/state.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h index 07f8a822a6ce..f6ae4db3efdb 100644 --- a/fs/nfsd/state.h +++ b/fs/nfsd/state.h | |||
@@ -194,9 +194,11 @@ struct nfsd4_conn { | |||
194 | }; | 194 | }; |
195 | 195 | ||
196 | struct nfsd4_session { | 196 | struct nfsd4_session { |
197 | struct kref se_ref; | 197 | atomic_t se_ref; |
198 | struct list_head se_hash; /* hash by sessionid */ | 198 | struct list_head se_hash; /* hash by sessionid */ |
199 | struct list_head se_perclnt; | 199 | struct list_head se_perclnt; |
200 | /* See SESSION4_PERSIST, etc. for standard flags; this is internal-only: */ | ||
201 | #define NFS4_SESSION_DEAD 0x010 | ||
200 | u32 se_flags; | 202 | u32 se_flags; |
201 | struct nfs4_client *se_client; | 203 | struct nfs4_client *se_client; |
202 | struct nfs4_sessionid se_sessionid; | 204 | struct nfs4_sessionid se_sessionid; |