Loading fs/nfsd/nfs4state.c +2 −1 Original line number Diff line number Diff line Loading @@ -258,6 +258,7 @@ static void nfs4_put_deleg_lease(struct nfs4_file *fp) if (atomic_dec_and_test(&fp->fi_delegees)) { vfs_setlease(fp->fi_deleg_file, F_UNLCK, &fp->fi_lease); fp->fi_lease = NULL; fput(fp->fi_deleg_file); fp->fi_deleg_file = NULL; } } Loading Loading @@ -402,8 +403,8 @@ static void free_generic_stateid(struct nfs4_stateid *stp) if (stp->st_access_bmap) { oflag = nfs4_access_bmap_to_omode(stp); 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); } Loading fs/nfsd/vfs.c +8 −1 Original line number Diff line number Diff line Loading @@ -1363,7 +1363,7 @@ nfsd_create_v3(struct svc_rqst *rqstp, struct svc_fh *fhp, goto out; if (!(iap->ia_valid & ATTR_MODE)) iap->ia_mode = 0; err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_CREATE); err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_EXEC); if (err) goto out; Loading @@ -1385,6 +1385,13 @@ nfsd_create_v3(struct svc_rqst *rqstp, struct svc_fh *fhp, if (IS_ERR(dchild)) goto out_nfserr; /* If file doesn't exist, check for permissions to create one */ if (!dchild->d_inode) { err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_CREATE); if (err) goto out; } err = fh_compose(resfhp, fhp->fh_export, dchild, fhp); if (err) goto out; Loading Loading
fs/nfsd/nfs4state.c +2 −1 Original line number Diff line number Diff line Loading @@ -258,6 +258,7 @@ static void nfs4_put_deleg_lease(struct nfs4_file *fp) if (atomic_dec_and_test(&fp->fi_delegees)) { vfs_setlease(fp->fi_deleg_file, F_UNLCK, &fp->fi_lease); fp->fi_lease = NULL; fput(fp->fi_deleg_file); fp->fi_deleg_file = NULL; } } Loading Loading @@ -402,8 +403,8 @@ static void free_generic_stateid(struct nfs4_stateid *stp) if (stp->st_access_bmap) { oflag = nfs4_access_bmap_to_omode(stp); 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); } Loading
fs/nfsd/vfs.c +8 −1 Original line number Diff line number Diff line Loading @@ -1363,7 +1363,7 @@ nfsd_create_v3(struct svc_rqst *rqstp, struct svc_fh *fhp, goto out; if (!(iap->ia_valid & ATTR_MODE)) iap->ia_mode = 0; err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_CREATE); err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_EXEC); if (err) goto out; Loading @@ -1385,6 +1385,13 @@ nfsd_create_v3(struct svc_rqst *rqstp, struct svc_fh *fhp, if (IS_ERR(dchild)) goto out_nfserr; /* If file doesn't exist, check for permissions to create one */ if (!dchild->d_inode) { err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_CREATE); if (err) goto out; } err = fh_compose(resfhp, fhp->fh_export, dchild, fhp); if (err) goto out; Loading