[LU-14143] SEEK_HOLE returns -ENXIO if file ends at components boundary Created: 19/Nov/20 Updated: 13/Dec/20 Resolved: 13/Dec/20 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | Lustre 2.14.0 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Mikhail Pershin | Assignee: | Mikhail Pershin |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Severity: | 3 | ||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||
| Description |
|
Correct return value should be the end of file. LOV skips hole offset is it is equal to component end, because component 'end' value is actually the next component 'start' and belongs to it, so LOV expects the next component to continue and report an offset. This doesn't work if next component is not initialized, i.e. file ends exactly at the component boundary, so the next component is not involved in IO even. To solve that issue, LOV should remember reported hole offsets if they are at the component end and report the maximum one if neither component returned valid offset |
| Comments |
| Comment by Gerrit Updater [ 19/Nov/20 ] |
|
Mike Pershin (mpershin@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/40713 |
| Comment by Gerrit Updater [ 13/Dec/20 ] |
|
Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/40713/ |
| Comment by Peter Jones [ 13/Dec/20 ] |
|
Landed for 2.14 |