Merge branch 'for-2.6.39' of git://linux-nfs.org/~bfields/linux
* 'for-2.6.39' of git://linux-nfs.org/~bfields/linux: nfsd4: fix oops on lock failure nfsd: fix auth_domain reference leak on nlm operations
This commit is contained in:
@@ -38,7 +38,6 @@ nlm_fopen(struct svc_rqst *rqstp, struct nfs_fh *f, struct file **filp)
|
|||||||
exp_readlock();
|
exp_readlock();
|
||||||
nfserr = nfsd_open(rqstp, &fh, S_IFREG, NFSD_MAY_LOCK, filp);
|
nfserr = nfsd_open(rqstp, &fh, S_IFREG, NFSD_MAY_LOCK, filp);
|
||||||
fh_put(&fh);
|
fh_put(&fh);
|
||||||
rqstp->rq_client = NULL;
|
|
||||||
exp_readunlock();
|
exp_readunlock();
|
||||||
/* We return nlm error codes as nlm doesn't know
|
/* We return nlm error codes as nlm doesn't know
|
||||||
* about nfsd, but nfsd does know about nlm..
|
* about nfsd, but nfsd does know about nlm..
|
||||||
|
@@ -397,10 +397,13 @@ static void unhash_generic_stateid(struct nfs4_stateid *stp)
|
|||||||
|
|
||||||
static void free_generic_stateid(struct nfs4_stateid *stp)
|
static void free_generic_stateid(struct nfs4_stateid *stp)
|
||||||
{
|
{
|
||||||
int oflag = nfs4_access_bmap_to_omode(stp);
|
int oflag;
|
||||||
|
|
||||||
|
if (stp->st_access_bmap) {
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user