Commit 8c3ad9cb authored by Christoph Hellwig's avatar Christoph Hellwig Committed by J. Bruce Fields

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: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent c91aed98
...@@ -56,14 +56,6 @@ nfsd4_block_proc_layoutget(struct inode *inode, const struct svc_fh *fhp, ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment