From 18451abdf5b3618750af11da6579db547b266b8d Mon Sep 17 00:00:00 2001 From: Wanlong Gao Date: Mon, 14 May 2012 18:38:25 +0800 Subject: New API: add new api btrfs-set-seeding to enable or disable seeding. Add the new API btrfs-set-seeding to support the seeding-device feature for btrfs. Signed-off-by: Wanlong Gao --- daemon/btrfs.c | 19 +++++++++++++++++++ generator/generator_actions.ml | 10 ++++++++++ src/MAX_PROC_NR | 2 +- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/daemon/btrfs.c b/daemon/btrfs.c index b0218bc8..ab3babc8 100644 --- a/daemon/btrfs.c +++ b/daemon/btrfs.c @@ -600,3 +600,22 @@ do_btrfs_device_delete (char *const *devices, const char *fs) return 0; } + +int +do_btrfs_set_seeding (const char *device, int svalue) +{ + char *err; + int r; + + const char *s_value = svalue ? "1" : "0"; + + r = commandr (NULL, &err, "btrfstune", "-S", s_value, device, NULL); + if (r == -1) { + reply_with_error ("%s: %s", device, err); + free (err); + return -1; + } + + free (err); + return r; +} diff --git a/generator/generator_actions.ml b/generator/generator_actions.ml index 6948dab3..fc2df423 100644 --- a/generator/generator_actions.ml +++ b/generator/generator_actions.ml @@ -7222,6 +7222,16 @@ mounted at C. If C is an empty list, this does nothing."); Remove the C from the btrfs filesystem mounted at C. If C is an empty list, this does nothing."); + ("btrfs_set_seeding", (RErr, [Device "device"; Bool "seeding"], []), 331, [Optional "btrfs"], + [InitPartition, IfAvailable "btrfs", TestRun ( + [["mkfs_btrfs"; "/dev/sda1"; ""; ""; "NOARG"; ""; "NOARG"; "NOARG"; ""; ""]; + ["btrfs_set_seeding"; "/dev/sda1"; "true"]; + ["btrfs_set_seeding"; "/dev/sda1"; "false"]])], + "enable or disable the seeding feature of device", + "\ +Enable or disable the seeding feature of a device that contains +a btrfs filesystem."); + ] let all_functions = non_daemon_functions @ daemon_functions diff --git a/src/MAX_PROC_NR b/src/MAX_PROC_NR index db2cef56..ec6cab01 100644 --- a/src/MAX_PROC_NR +++ b/src/MAX_PROC_NR @@ -1 +1 @@ -330 +331 -- cgit