Commit a96e5b90 authored by OGAWA Hirofumi's avatar OGAWA Hirofumi Committed by J. Bruce Fields

nfsd4: Fix filp leak

23fcf2ec (nfsd4: fix oops on lock failure)

The above patch breaks free path for stp->st_file. If stp was inserted
into sop->so_stateids, we have to free stp->st_file refcount. Because
stp->st_file refcount itself is taken whether or not any refcounts are
taken on the stp->st_file->fi_fds[].
Signed-off-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: stable@kernel.org
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent 4ee63624
...@@ -403,8 +403,8 @@ static void free_generic_stateid(struct nfs4_stateid *stp) ...@@ -403,8 +403,8 @@ static void free_generic_stateid(struct nfs4_stateid *stp)
if (stp->st_access_bmap) { if (stp->st_access_bmap) {
oflag = nfs4_access_bmap_to_omode(stp); oflag = nfs4_access_bmap_to_omode(stp);
nfs4_file_put_access(stp->st_file, oflag); nfs4_file_put_access(stp->st_file, oflag);
put_nfs4_file(stp->st_file);
} }
put_nfs4_file(stp->st_file);
kmem_cache_free(stateid_slab, stp); kmem_cache_free(stateid_slab, stp);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment