[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 12/17] fs: Allow number of blocks in block list to be optional, w
From: |
development |
Subject: |
[PATCH 12/17] fs: Allow number of blocks in block list to be optional, where length will be defaulted to the length of the device. |
Date: |
Wed, 29 Jul 2020 16:50:17 -0500 |
From: Glenn Washburn <development@efficientek.com>
This is primarily useful to do something like "loopback newdev (dev)8+" to
create a device that skips the first 4K, which may contain a non-standard
RAID1 header that grub does not recognize. This would allow that initial
data to be accessed and potentially mounted by grub up to the rest of the
disk. There is currently not a good way with in grub to programmatically get
the number of sectors on a disk to select the appropriate number of sectors.
Signed-off-by: Glenn Washburn <development@efficientek.com>
---
grub-core/kern/fs.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/grub-core/kern/fs.c b/grub-core/kern/fs.c
index 14c17df74..273115b5a 100644
--- a/grub-core/kern/fs.c
+++ b/grub-core/kern/fs.c
@@ -173,7 +173,11 @@ grub_fs_blocklist_open (grub_file_t file, const char *name)
}
p++;
- blocks[i].length = grub_strtoul (p, &p, 0);
+ if (*p == '\0' || *p == ',')
+ blocks[i].length = total_native_sectors - blocks[i].offset;
+ else
+ blocks[i].length = grub_strtoul (p, &p, 0);
+
if (grub_errno != GRUB_ERR_NONE
|| blocks[i].length == 0
|| (*p && *p != ',' && ! grub_isspace (*p)))
--
2.25.1
- [PATCH 06/17] luks2: grub_cryptodisk_t->total_length is the max number of device native sectors., (continued)
- [PATCH 06/17] luks2: grub_cryptodisk_t->total_length is the max number of device native sectors., development, 2020/07/29
- [PATCH 05/17] luks: Add support for LUKS2 in (proc)/luks_script, development, 2020/07/29
- [PATCH 07/17] cryptodisk, luks: Allow special processing for comparing UUIDs., development, 2020/07/29
- [PATCH 08/17] cryptodisk: Unregister cryptomount command when removing module., development, 2020/07/29
- [PATCH 12/17] fs: Allow number of blocks in block list to be optional, where length will be defaulted to the length of the device.,
development <=
- [PATCH 11/17] cryptodisk: Rename total_length field in grub_cryptodisk_t to total_sectors., development, 2020/07/29
- [PATCH 09/17] fs: When checking if a block list goes past the end of the disk, make sure the total size of the disk is in grub native sector sizes, otherwise there will be blocks at the end of the disk unaccessible by block lists., development, 2020/07/29
- [PATCH 10/17] cryptodisk: Properly handle non-512 byte sized sectors., development, 2020/07/29
- [PATCH 14/17] cryptodisk: Add header line to procfs entry and crypto and source device names., development, 2020/07/29
- [PATCH 13/17] loopback: Add procfs entry 'loopbacks' to output configured loopback devices., development, 2020/07/29
- [PATCH 16/17] luks2: Ensure that bit fields of grub_luks2_digest_t in luks2_parse_digest are initialized before returning., development, 2020/07/29
- [PATCH 15/17] cryptodisk: Add a couple comments noting the usage of a couple fields in grub_cryptodisk_t as is done for grub_disk_t., development, 2020/07/29