diff options
| author | Benjamin Coddington <ben.coddington@hammerspace.com> | 2026-09-15 08:22:09 -0400 |
|---|---|---|
| committer | Anna Schumaker <anna.schumaker@hammerspace.com> | 2026-10-05 09:46:43 -0400 |
| commit | 7f2d221b01f356b6bb3bb6efef998f8b28339824 (patch) | |
| tree | ce1288a3b3b4b9c5be2b741e2591b87fb64f3e70 /include/linux | |
| parent | a84c62c4f03706b2c2f01dcc5fe614a4233ee75d (diff) | |
NFSv4/filelayout: Anchor page coalescing on pattern_offset
filelayout_pg_test() bounds page coalescing to a single stripe unit
using an offset relative to pls_range.offset, but the data server is
selected by nfs4_fl_calc_j_index() using an offset relative to
pattern_offset. When a segment's pattern_offset and range offset are
not congruent modulo the stripe unit, the coalescing window is shifted
off the DS-selection grid, so a coalesced I/O can straddle a stripe
boundary and send the bytes past it to the wrong data server.
Anchor coalescing on pattern_offset to match nfs4_fl_calc_j_index().
Stripe-congruent segments, including the common whole-file pattern_offset
0 case, are unchanged.
Fixes: c6194271f94b ("pnfs: filelayout: support non page aligned layouts")
Cc: stable@vger.kernel.org
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Benjamin Coddington <bcodding@hammerspace.com>
Signed-off-by: Anna Schumaker <anna.schumaker@hammerspace.com>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions
