Commit 0ca0c9d7 authored by J. Bruce Fields's avatar J. Bruce Fields
Browse files

nfsd: fh_drop_write in nfsd_unlink



fh_want_write() can now be called twice, but I'm also fixing up the
callers not to do that.

Other cases include setattr and create.

Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent 0b8f6262
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1786,12 +1786,12 @@ nfsd_unlink(struct svc_rqst *rqstp, struct svc_fh *fhp, int type,
	rdentry = lookup_one_len(fname, dentry, flen);
	host_err = PTR_ERR(rdentry);
	if (IS_ERR(rdentry))
		goto out_nfserr;
		goto out_drop_write;

	if (d_really_is_negative(rdentry)) {
		dput(rdentry);
		err = nfserr_noent;
		goto out;
		host_err = -ENOENT;
		goto out_drop_write;
	}

	if (!type)
@@ -1805,6 +1805,8 @@ nfsd_unlink(struct svc_rqst *rqstp, struct svc_fh *fhp, int type,
		host_err = commit_metadata(fhp);
	dput(rdentry);

out_drop_write:
	fh_drop_write(fhp);
out_nfserr:
	err = nfserrno(host_err);
out: