nfsd/blocklayout: accept any minlength
Recent Linux clients have started to send GETLAYOUT requests with minlength less than blocksize. Servers aren't really allowed to impose this kind of restriction on layouts; see RFC 5661 section 18.43.3 for details. This has been observed to cause indefinite hangs on fsx runs on some clients. Cc: stable@vger.kernel.org Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
committed by
J. Bruce Fields
parent
c91aed9896
commit
8c3ad9cb73
@@ -56,14 +56,6 @@ nfsd4_block_proc_layoutget(struct inode *inode, const struct svc_fh *fhp,
|
|||||||
u32 device_generation = 0;
|
u32 device_generation = 0;
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
/*
|
|
||||||
* We do not attempt to support I/O smaller than the fs block size,
|
|
||||||
* or not aligned to it.
|
|
||||||
*/
|
|
||||||
if (args->lg_minlength < block_size) {
|
|
||||||
dprintk("pnfsd: I/O too small\n");
|
|
||||||
goto out_layoutunavailable;
|
|
||||||
}
|
|
||||||
if (seg->offset & (block_size - 1)) {
|
if (seg->offset & (block_size - 1)) {
|
||||||
dprintk("pnfsd: I/O misaligned\n");
|
dprintk("pnfsd: I/O misaligned\n");
|
||||||
goto out_layoutunavailable;
|
goto out_layoutunavailable;
|
||||||
|
|||||||
Reference in New Issue
Block a user