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