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

Wanlong Gao gaowanlong at cn.fujitsu.com
Tue Feb 7 02:36:43 UTC 2012


On 02/06/2012 04:26 PM, Richard W.M. Jones wrote:

> 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'?


I've no idea with this, calling 'wipefs' is good, but 'zero-fs' can
be consistent with the "guestfs_zero*" api. So, up to you.

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


sure, done in v2.

Thanks
-Wanlong Gao

> 
> Rich.
> 





More information about the Libguestfs mailing list