[parted-devel] [PATCH v2] libparted: Fail early when detecting nilfs2
Oldřich Jedlička
oldium.pro at gmail.com
Mon Oct 7 15:31:52 BST 2024
so 6. 4. 2024 v 19:21 odesílatel Oldřich Jedlička <oldium.pro at gmail.com> napsal:
>
> When the disk is encrypted with TCG Opal HW encryption (supported by
> cryptsetup 2.7.0+), the partition initially contains locked area, which
> shows reading errors in kernel logs and may lead to configuring the disk
> to work with lower reading speed. When the disk area is unlocked with
> password, the reading succeeds. The beginning of the protected partition is
> not locked and contains LUKS header, this is always readable.
>
> To work around the errors when reading from the locked area, try first
> detecting nilfs2 at the beginning (may be an unprotected LUKS header area)
> and only check the second superblock that is at the end of the area (and
> possibly locked) if the first one is valid (meaning the partition is not
> LUKS-protected).
>
> This is a change in behavior, but is consistent with the nilfs2 code, which
> considers both superblocks mandatory, see [1].
>
> [1] https://github.com/nilfs-dev/nilfs-utils/blob/master/lib/sb.c#L135-L158
>
> Signed-off-by: Oldřich Jedlička <oldium.pro at gmail.com>
Hi,
just pinging here as a kind reminder. Could this be merged, please?
Thanks.
Regards,
Oldrich.
> ---
> libparted/fs/nilfs2/nilfs2.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/libparted/fs/nilfs2/nilfs2.c b/libparted/fs/nilfs2/nilfs2.c
> index 6204542..40f8567 100644
> --- a/libparted/fs/nilfs2/nilfs2.c
> +++ b/libparted/fs/nilfs2/nilfs2.c
> @@ -118,11 +118,12 @@ nilfs2_probe (PedGeometry* geom)
>
> if (ped_geometry_read(geom, buf, 0, sectors))
> sb = (struct nilfs2_super_block*)(buf + 1024);
> + if (!sb || !is_valid_nilfs_sb(sb))
> + return NULL;
> +
> if (ped_geometry_read(geom, buff2, sb2off, sectors2))
> sb2 = (struct nilfs2_super_block*)buff2;
> -
> - if ((!sb || !is_valid_nilfs_sb(sb)) &&
> - (!sb2 || !is_valid_nilfs_sb(sb2)))
> + if (!sb2 || !is_valid_nilfs_sb(sb2))
> return NULL;
>
> /* reserve 4k bytes for secondary superblock */
> --
> 2.39.2
>
More information about the parted-devel
mailing list