NFSd: Fix filehandle leak in exp_pseudoroot() and nfsd4_path()
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 2 Sep 2009 20:48:32 +0000 (16:48 -0400)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Thu, 3 Sep 2009 20:57:57 +0000 (16:57 -0400)
commit2671a4bf3516757ca028c139a7902a50f2bd994a
tree9b60719bdd52cdae10f4b64525c13f072e1ac7b0
parentbc6c53d5a1383d5d9632adf33bd03458cfc0869d
NFSd: Fix filehandle leak in exp_pseudoroot() and nfsd4_path()

nfsd4_path() allocates a temporary filehandle and then fails to free it
before the function exits, leaking reference counts to the dentry and
export that it refers to.

Also, nfsd4_lookupp() puts the result of exp_pseudoroot() in a temporary
filehandle which it releases on success of exp_pseudoroot() but not on
failure; fix exp_pseudoroot to ensure that on failure it releases the
filehandle before returning.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
fs/nfsd/export.c
fs/nfsd/nfs4xdr.c