Rasmus Villemoes 4f6c460917 kern/fs: Honour file->read_hook() in grub_fs_blocklist_read()
Unlike files accessed via a normal file system, the file->read_hook() is
not honoured when using blocklist notation.

This means that when trying to use a dedicated, 1 KiB, raw partition
for the environment block and hence does something like

  save_env --file=(hd0,gpt9)0+2 X Y Z

this fails with "sparse file not allowed", which is rather unexpected,
as I've explicitly said exactly which blocks should be used. Adding
a little debugging reveals that grub_file_size(file) is 1024 as expected,
but total_length is 0, simply because the callback was never invoked, so
blocklists is an empty list.

Fix that by honouring the ->read_hook() set by the caller, also when
a "file" is specified with blocklist notation.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
2024-11-28 20:23:15 +01:00
..
2024-10-11 14:35:54 +02:00
2022-03-14 15:46:55 +01:00
2022-03-14 15:46:55 +01:00
2020-07-29 16:55:47 +02:00
2023-05-25 16:48:00 +02:00
2022-03-14 15:46:55 +01:00
2024-10-31 16:07:03 +01:00
2012-02-26 22:49:24 +01:00
2023-11-08 05:04:24 +01:00
2022-03-14 15:46:55 +01:00
2010-05-06 11:34:04 +05:30