Commit d7d8e316 authored by Chuck Lever's avatar Chuck Lever
Browse files

NFSD: nfsd_unlink() clobbers non-zero status returned from fh_fill_pre_attrs()



If fh_fill_pre_attrs() returns a non-zero status, the error flow
takes it through out_unlock, which then overwrites the returned
status code with

	err = nfserrno(host_err);

Fixes: a332018a ("nfsd: handle failure to collect pre/post-op attrs more sanely")
Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent 904201c7
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -2010,11 +2010,9 @@ nfsd_unlink(struct svc_rqst *rqstp, struct svc_fh *fhp, int type,
		 * error status.
		 */
		err = nfserr_file_open;
	} else {
		err = nfserrno(host_err);
	}
out:
	return err;
	return err != nfs_ok ? err : nfserrno(host_err);
out_unlock:
	inode_unlock(dirp);
	goto out_drop_write;