diff options
| -rw-r--r-- | fs/nfsd/nfs4state.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 1e2a89aaf895..96c7578cbe1e 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
| @@ -1199,8 +1199,7 @@ move_to_close_lru(struct nfs4_stateowner *sop) | |||
| 1199 | { | 1199 | { |
| 1200 | dprintk("NFSD: move_to_close_lru nfs4_stateowner %p\n", sop); | 1200 | dprintk("NFSD: move_to_close_lru nfs4_stateowner %p\n", sop); |
| 1201 | 1201 | ||
| 1202 | unhash_stateowner(sop); | 1202 | list_move_tail(&sop->so_close_lru, &close_lru); |
| 1203 | list_add_tail(&sop->so_close_lru, &close_lru); | ||
| 1204 | sop->so_time = get_seconds(); | 1203 | sop->so_time = get_seconds(); |
| 1205 | } | 1204 | } |
| 1206 | 1205 | ||
| @@ -1929,8 +1928,7 @@ nfs4_laundromat(void) | |||
| 1929 | } | 1928 | } |
| 1930 | dprintk("NFSD: purging unused open stateowner (so_id %d)\n", | 1929 | dprintk("NFSD: purging unused open stateowner (so_id %d)\n", |
| 1931 | sop->so_id); | 1930 | sop->so_id); |
| 1932 | list_del(&sop->so_close_lru); | 1931 | release_stateowner(sop); |
| 1933 | nfs4_put_stateowner(sop); | ||
| 1934 | } | 1932 | } |
| 1935 | if (clientid_val < NFSD_LAUNDROMAT_MINTIMEOUT) | 1933 | if (clientid_val < NFSD_LAUNDROMAT_MINTIMEOUT) |
| 1936 | clientid_val = NFSD_LAUNDROMAT_MINTIMEOUT; | 1934 | clientid_val = NFSD_LAUNDROMAT_MINTIMEOUT; |
| @@ -3218,15 +3216,8 @@ __nfs4_state_shutdown(void) | |||
| 3218 | int i; | 3216 | int i; |
| 3219 | struct nfs4_client *clp = NULL; | 3217 | struct nfs4_client *clp = NULL; |
| 3220 | struct nfs4_delegation *dp = NULL; | 3218 | struct nfs4_delegation *dp = NULL; |
| 3221 | struct nfs4_stateowner *sop = NULL; | ||
| 3222 | struct list_head *pos, *next, reaplist; | 3219 | struct list_head *pos, *next, reaplist; |
| 3223 | 3220 | ||
| 3224 | list_for_each_safe(pos, next, &close_lru) { | ||
| 3225 | sop = list_entry(pos, struct nfs4_stateowner, so_close_lru); | ||
| 3226 | list_del(&sop->so_close_lru); | ||
| 3227 | nfs4_put_stateowner(sop); | ||
| 3228 | } | ||
| 3229 | |||
| 3230 | for (i = 0; i < CLIENT_HASH_SIZE; i++) { | 3221 | for (i = 0; i < CLIENT_HASH_SIZE; i++) { |
| 3231 | while (!list_empty(&conf_id_hashtbl[i])) { | 3222 | while (!list_empty(&conf_id_hashtbl[i])) { |
| 3232 | clp = list_entry(conf_id_hashtbl[i].next, struct nfs4_client, cl_idhash); | 3223 | clp = list_entry(conf_id_hashtbl[i].next, struct nfs4_client, cl_idhash); |
