diff options
Diffstat (limited to 'fs/nfsd')
-rw-r--r-- | fs/nfsd/nfs4state.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 43e66fc1b90d..028ae55e5f7a 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1037,6 +1037,7 @@ static void free_ol_stateid_reaplist(struct list_head *reaplist) { struct nfs4_ol_stateid *stp; + struct nfs4_file *fp; might_sleep(); @@ -1044,7 +1045,10 @@ free_ol_stateid_reaplist(struct list_head *reaplist) stp = list_first_entry(reaplist, struct nfs4_ol_stateid, st_locks); list_del(&stp->st_locks); + fp = stp->st_stid.sc_file; stp->st_stid.sc_free(&stp->st_stid); + if (fp) + put_nfs4_file(fp); } } |