Vidya.Thumukunta@ibm.com has uploaded this change for review.

View Change

Fix RD5a pynfs nfs4.0 failure by handling very large READ offsets

pynfs4.0 test RD5a (testVeryLargeOffset) expected NFS4_OK with 0 bytes
and eof=TRUE when a READ is issued beyond the max file offset, but
Ganesha was returning NFS4ERR_FBIG.

As Per RFC 7530:
- If offset ≥ file size, server must return NFS4_OK with zero-length data
and eof=TRUE.
- NFS4ERR_FBIG is not a valid error for READ.

This patch updates nfs4_op_read() to:
- Return NFS4_OK with 0 bytes and eof=TRUE if offset ≥ MaxOffsetRead.
- Clamp size when (offset + size) would exceed MaxOffsetRead.
- Stop using NFS4ERR_FBIG for READ requests.

Change-Id: Ia91fd00214e8f02c2d4d3366c4c521d9fedb1f85
Signed-off-by: VidyaThumukunta <Vidya.Thumukunta@ibm.com>
---
M src/Protocols/NFS/nfs4_op_read.c
1 file changed, 19 insertions(+), 6 deletions(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/94/1223094/1

To view, visit change 1223094. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: Ia91fd00214e8f02c2d4d3366c4c521d9fedb1f85
Gerrit-Change-Number: 1223094
Gerrit-PatchSet: 1
Gerrit-Owner: Vidya.Thumukunta@ibm.com