On Tue, Jun 20, 2023 at 02:09:36PM +0200, Philippe Midol-Monnet wrote:
> Hello
>
> We are using libguestfs with nested partitions: One partition
> encrypted with LUKS include a GPT and several partition.
> In order to make the nested partition available to the system after
> the cryptsetup-open, partprobe need to be run.
> I guess it is true for all kind of nested partitions (encrypted or not).
>
> This patch add a partprobe call in the API.
>
> Regards
>
> Philippe
>
>
>
> --
>
>
> *This email and any attachment contains EasyMile’s confidential
> information, and must not be modified or circulated without
> EasyMile’s prior written consent. It is intended exclusively for
> their recipient.s. If you received this message by mistake, please
> notify us promptly and immediately delete this email and any of its
> attachments.*
(You might want to change this warning, as it may prevent us from
including this code upstream ...)
> diff --git a/daemon/Makefile.am b/daemon/Makefile.am
> index bb2e58d01..8c34f3634 100644
> --- a/daemon/Makefile.am
> +++ b/daemon/Makefile.am
> @@ -164,6 +164,7 @@ guestfsd_SOURCES = \
> optgroups.c \
> optgroups.h \
> parted.c \
> + partprobe.c \
> pingdaemon.c \
> proto.c \
> readdir.c \
> diff --git a/docs/C_SOURCE_FILES b/docs/C_SOURCE_FILES
> index 7a20e5594..0e845dcec 100644
> --- a/docs/C_SOURCE_FILES
> +++ b/docs/C_SOURCE_FILES
> @@ -125,6 +125,7 @@ daemon/ntfsclone.c
> daemon/optgroups.c
> daemon/optgroups.h
> daemon/parted.c
> +daemon/partprobe.c
> daemon/pingdaemon.c
> daemon/proto.c
> daemon/readdir.c
> diff --git a/generator/actions_core.ml b/generator/actions_core.ml
> index addbe4ec1..f63065426 100644
> --- a/generator/actions_core.ml
> +++ b/generator/actions_core.ml
> @@ -5110,6 +5110,16 @@ partition table), C<gpt> (a GPT/EFI-style partition
> table). Other
> values are possible, although unusual. See C<guestfs_part_init>
> for a full list." };
>
> + { defaults with
> + name = "partprobe"; added = (1, 0, 54);
This should be the next version, ie. (1, 51, 4)
> + style = RErr, [String (Device, "device")], [];
> + tests = [];
> + shortdesc = "run partprobe";
> + longdesc = "\
> +This command runs the C<partprobe> on a device in order to inform
> +the OS of partition table change
> +usage for C<path>.It is neede in case of nested partition."};
> +
> { defaults with
> name = "fill"; added = (1, 0, 79);
> style = RErr, [Int "c"; Int "len"; String (Pathname, "path")], [];
> diff --git a/generator/proc_nr.ml b/generator/proc_nr.ml
> index f71a849c9..342ba6e82 100644
> --- a/generator/proc_nr.ml
> +++ b/generator/proc_nr.ml
> @@ -516,6 +516,7 @@ let proc_nr = [
> 511, "internal_readdir";
> 512, "clevis_luks_unlock";
> 513, "inspect_get_build_id";
> +514, "partprobe";
> ]
>
> (* End of list. If adding a new entry, add it at the end of the list
> diff --git a/lib/MAX_PROC_NR b/lib/MAX_PROC_NR
> index 31cf34b8d..a08796291 100644
> --- a/lib/MAX_PROC_NR
> +++ b/lib/MAX_PROC_NR
> @@ -1 +1 @@
> -513
> +514
The patch is fine as far as it goes, but you'll need to include the
new partprobe.c file :-)
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
nbdkit - Flexible, fast NBD server with plugins
https://gitlab.com/nbdkit/nbdkit
_______________________________________________
Libguestfs mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/libguestfs