nfsd: print status when nfsd4_open fails to open file it just created
It's possible for nfsd to fail opening a file that it has just created. When that happens, we throw a WARN but it doesn't include any info about the error code. Print the status code to give us a bit more info. Our QA group hit some of these warnings under some very heavy stress testing. My suspicion is that they hit the file-max limit, but it's hard to know for sure. Go ahead and add a -ENFILE mapping to nfserr_serverfault to make the error more distinct (and correct). Signed-off-by: Jeff Layton <jlayton@primarydata.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
518776800c
commit
b3fbfe0e7a
|
@ -460,7 +460,9 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
|||
* set, (2) sets open->op_stateid, (3) sets open->op_delegation.
|
||||
*/
|
||||
status = nfsd4_process_open2(rqstp, resfh, open);
|
||||
WARN_ON(status && open->op_created);
|
||||
WARN(status && open->op_created,
|
||||
"nfsd4_process_open2 failed to open newly-created file! status=%u\n",
|
||||
be32_to_cpu(status));
|
||||
out:
|
||||
if (resfh && resfh != &cstate->current_fh) {
|
||||
fh_dup2(&cstate->current_fh, resfh);
|
||||
|
|
|
@ -745,6 +745,7 @@ nfserrno (int errno)
|
|||
{ nfserr_notsupp, -EOPNOTSUPP },
|
||||
{ nfserr_toosmall, -ETOOSMALL },
|
||||
{ nfserr_serverfault, -ESERVERFAULT },
|
||||
{ nfserr_serverfault, -ENFILE },
|
||||
};
|
||||
int i;
|
||||
|
||||
|
|
Loading…
Reference in New Issue