[Libguestfs] [PATCH 1/3] NEW API: add a new api zero_fs

Richard W.M. Jones rjones at redhat.com
Mon Feb 6 08:26:13 UTC 2012


On Mon, Feb 06, 2012 at 04:17:05PM +0800, Wanlong Gao wrote:
> Add the new api zero_fs to erase the filesystem signatures
> on a device but now erase any data.
> 
> Signed-off-by: Wanlong Gao <gaowanlong at cn.fujitsu.com>
> ---
>  daemon/zero.c                  |   17 +++++++++++++++++
>  generator/generator_actions.ml |   14 ++++++++++++++
>  src/MAX_PROC_NR                |    2 +-
>  3 files changed, 32 insertions(+), 1 deletions(-)
> 
> diff --git a/daemon/zero.c b/daemon/zero.c
> index 398f844..348869f 100644
> --- a/daemon/zero.c
> +++ b/daemon/zero.c
> @@ -73,6 +73,23 @@ do_zero (const char *device)
>  }
>  
>  int
> +do_zero_fs (const char *device)
> +{
> +  int r;
> +  char *err = NULL;
> +
> +  const char *wipefs[] = {"wipefs", "-a", device, NULL};
> +  r = commandv (NULL, &err, wipefs);
> +  if (r == -1) {
> +    reply_with_error ("%s", err);
> +    free (err);
> +    return -1;
> +  }
> +  free (err);
> +  return 0;
> +}
> +
> +int
>  do_zero_device (const char *device)
>  {
>    int64_t ssize = do_blockdev_getsize64 (device);
> diff --git a/generator/generator_actions.ml b/generator/generator_actions.ml
> index 3a7be79..d27ef43 100644
> --- a/generator/generator_actions.ml
> +++ b/generator/generator_actions.ml
> @@ -6651,6 +6651,20 @@ This option may not be specified at the same time as the C<correct> option.
>  
>  =back");
>  
> +  ("zero_fs", (RErr, [Device "device"], []), 305, [Progress],
> +   [InitBasicFSonLVM, Always, TestRun (
> +      [["zero_fs"; "/dev/VG/LV"]])],
> +   "wipe a filesystem signature from a device",
> +   "\
> +This command can  erase filesystem or raid signatures (magic strings) from
> +the specified C<device> to make the filesystem invisible for libblkid.
> +This does not erase the filesystem itself nor any other data from the C<device>.
> +Compare with C<guestfs_zero> which just zeroes the first few blocks of a
> +device, contained the partitions on the device, but this C<guestfs_zero_fs>
> +can't erase the partitions of a device.
> +
> +=back");
> +
>  ]
>  
>  let all_functions = non_daemon_functions @ daemon_functions
> diff --git a/src/MAX_PROC_NR b/src/MAX_PROC_NR
> index 873b744..67d04b9 100644
> --- a/src/MAX_PROC_NR
> +++ b/src/MAX_PROC_NR
> @@ -1 +1 @@
> -304
> +305

Ah, wipefs, I think this is a good idea, and it's been on the
TODO list for a long time.

What do people think about calling the API 'wipefs' instead of
'zero-fs'?

Can you update the patch to remove the reference to wipefs in the TODO
file?

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org




More information about the Libguestfs mailing list