提交 dac3b105 编写于 作者: T Trond Myklebust

NFSv4.2: Handle hole lengths that exceed the READ_PLUS read buffer

If a hole extends beyond the READ_PLUS read buffer, then we want to fill
just the remaining buffer with zeros. Also ignore eof...
Signed-off-by: NTrond Myklebust <trond.myklebust@hammerspace.com>
上级 82f98c8b
......@@ -1080,6 +1080,12 @@ static int decode_read_plus_hole(struct xdr_stream *xdr,
}
length -= args->offset + res->count - offset;
}
if (length + res->count > args->count) {
*eof = 0;
if (unlikely(res->count >= args->count))
return 1;
length = args->count - res->count;
}
recvd = xdr_expand_hole(xdr, res->count, length);
res->count += recvd;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册