diff options
| author | Namjae Jeon <linkinjeon@kernel.org> | 2026-07-26 10:00:00 +0900 |
|---|---|---|
| committer | Namjae Jeon <linkinjeon@kernel.org> | 2026-08-17 15:00:53 +0900 |
| commit | 25e414db703334954747cb1b3eedf914b093ff8c (patch) | |
| tree | 40b6c1b641283daa0b2ab235ed0e419af217bbf3 /tools/perf/scripts/python/task-analyzer.py | |
| parent | 3f220a0a62e6b9b391c9d1f0e6580b05173cc7f7 (diff) | |
ksmbd: report holes in allocated range queries
FSCTL_QUERY_ALLOCATED_RANGES treated every range in a file without the
sparse attribute as allocated. Files can have holes after an ordinary write
beyond EOF, so CIFS FIEMAP reported extents for those holes.
SEEK_DATA and SEEK_HOLE are insufficient because unwritten extents
look like holes. Use zero writes for FSCTL_SET_ZERO_DATA on dense files.
Sparse files still use hole punching, and allocated-range queries can use
SEEK_DATA and SEEK_HOLE for both file types.
When clearing the sparse attribute, materialize holes with zero writes
before updating the attribute. This keeps the file fully allocated without
relying on unwritten extents that SEEK_DATA would still report as holes.
Return STATUS_BUFFER_OVERFLOW when another allocated range does not fit in
the SMB response so the client continues the query.
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions
