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
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to