forked from mirrors/linux
		
	nfsd4: zero-length WRITE should succeed
Zero-length writes are legal; from 5661 section 18.32.3: "If the count
is zero, the WRITE will succeed and return a count of zero subject to
permissions checking".
This check is unnecessary and is causing zero-length reads to return
EINVAL.
Cc: stable@vger.kernel.org
Fixes: 3fd9557aec "NFSD: Refactor the generic write vector fill helper"
Cc: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
			
			
This commit is contained in:
		
							parent
							
								
									2e6e902d18
								
							
						
					
					
						commit
						fdec6114ee
					
				
					 1 changed files with 0 additions and 2 deletions
				
			
		| 
						 | 
					@ -1016,8 +1016,6 @@ nfsd4_write(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	nvecs = svc_fill_write_vector(rqstp, write->wr_pagelist,
 | 
						nvecs = svc_fill_write_vector(rqstp, write->wr_pagelist,
 | 
				
			||||||
				      &write->wr_head, write->wr_buflen);
 | 
									      &write->wr_head, write->wr_buflen);
 | 
				
			||||||
	if (!nvecs)
 | 
					 | 
				
			||||||
		return nfserr_io;
 | 
					 | 
				
			||||||
	WARN_ON_ONCE(nvecs > ARRAY_SIZE(rqstp->rq_vec));
 | 
						WARN_ON_ONCE(nvecs > ARRAY_SIZE(rqstp->rq_vec));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	status = nfsd_vfs_write(rqstp, &cstate->current_fh, filp,
 | 
						status = nfsd_vfs_write(rqstp, &cstate->current_fh, filp,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue