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(a)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