Pino Toscano
2015-Jan-05 12:01 UTC
Re: [Libguestfs] [PATCH 5/5] New API: btrfs_filesystem_set_label
In data venerdì 26 dicembre 2014 16:17:49, Hu Tao ha scritto:> Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> > --- > daemon/btrfs.c | 33 +++++++++++++++++++++++++++++++++ > generator/actions.ml | 16 ++++++++++++++++ > src/MAX_PROC_NR | 2 +- > 3 files changed, 50 insertions(+), 1 deletion(-) > > diff --git a/daemon/btrfs.c b/daemon/btrfs.c > index 32b1b05..f9e35be 100644 > --- a/daemon/btrfs.c > +++ b/daemon/btrfs.c > @@ -1463,3 +1463,36 @@ do_btrfs_filesystem_defragment (const char *path) > > return 0; > } > + > +int > +do_btrfs_filesystem_set_label (const char *path, const char *label) > +{ > + const size_t MAX_ARGS = 64; > + const char *argv[MAX_ARGS]; > + size_t i = 0; > + CLEANUP_FREE char *path_buf = NULL; > + CLEANUP_FREE char *err = NULL; > + CLEANUP_FREE char *out = NULL; > + int r; > + > + path_buf = sysroot_path (path); > + if (path_buf == NULL) { > + reply_with_perror ("malloc"); > + return -1; > + } > + > + ADD_ARG (argv, i, str_btrfs); > + ADD_ARG (argv, i, "filesystem"); > + ADD_ARG (argv, i, "label"); > + ADD_ARG (argv, i, path_buf); > + ADD_ARG (argv, i, label); > + ADD_ARG (argv, i, NULL); > + > + r = commandv (&out, &err, argv); > + if (r == -1) { > + reply_with_error ("%s: %s", path, err); > + return -1; > + } > + > + return 0; > +}Isn't this alredy covered by set_label?> diff --git a/generator/actions.ml b/generator/actions.ml > index 4b24f8a..7e1f3ed 100644 > --- a/generator/actions.ml > +++ b/generator/actions.ml > @@ -12316,6 +12316,22 @@ Get a btrfs filesystem's label." }; > longdesc = "\ > Defragment a file or directory." }; > > + { defaults with > + name = "btrfs_filesystem_set_label"; > + style = RErr, [Pathname "path"; String "label"], []; > + proc_nr = Some 439; > + optional = Some "btrfs"; camel_name = "BTRFSFilesystemSetLabel"; > + tests = [ > + InitPartition, Always, TestResultString ( > + [["mkfs_btrfs"; "/dev/sda1"; ""; ""; "NOARG"; ""; "NOARG"; "NOARG"; ""; ""]; > + ["mount"; "/dev/sda1"; "/"]; > + ["btrfs_filesystem_set_label"; "/"; "newlabel"]; > + ["btrfs_filesystem_get_label"; "/"]], "newlabel"), []; > + ];This test bit would be good to be added to the tests of set_label, just with s/Always/IfAvailable "btrfs"/ so it is run only when btrfs is available. Thanks, -- Pino Toscano
Hu Tao
2015-Jan-06 01:31 UTC
Re: [Libguestfs] [PATCH 5/5] New API: btrfs_filesystem_set_label
On Mon, Jan 05, 2015 at 01:01:52PM +0100, Pino Toscano wrote:> In data venerdì 26 dicembre 2014 16:17:49, Hu Tao ha scritto: > > Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> > > --- > > daemon/btrfs.c | 33 +++++++++++++++++++++++++++++++++ > > generator/actions.ml | 16 ++++++++++++++++ > > src/MAX_PROC_NR | 2 +- > > 3 files changed, 50 insertions(+), 1 deletion(-) > > > > diff --git a/daemon/btrfs.c b/daemon/btrfs.c > > index 32b1b05..f9e35be 100644 > > --- a/daemon/btrfs.c > > +++ b/daemon/btrfs.c > > @@ -1463,3 +1463,36 @@ do_btrfs_filesystem_defragment (const char *path) > > > > return 0; > > } > > + > > +int > > +do_btrfs_filesystem_set_label (const char *path, const char *label) > > +{ > > + const size_t MAX_ARGS = 64; > > + const char *argv[MAX_ARGS]; > > + size_t i = 0; > > + CLEANUP_FREE char *path_buf = NULL; > > + CLEANUP_FREE char *err = NULL; > > + CLEANUP_FREE char *out = NULL; > > + int r; > > + > > + path_buf = sysroot_path (path); > > + if (path_buf == NULL) { > > + reply_with_perror ("malloc"); > > + return -1; > > + } > > + > > + ADD_ARG (argv, i, str_btrfs); > > + ADD_ARG (argv, i, "filesystem"); > > + ADD_ARG (argv, i, "label"); > > + ADD_ARG (argv, i, path_buf); > > + ADD_ARG (argv, i, label); > > + ADD_ARG (argv, i, NULL); > > + > > + r = commandv (&out, &err, argv); > > + if (r == -1) { > > + reply_with_error ("%s: %s", path, err); > > + return -1; > > + } > > + > > + return 0; > > +} > > Isn't this alredy covered by set_label?Yes. This patch ban be dropped. Regards, Hu> > > diff --git a/generator/actions.ml b/generator/actions.ml > > index 4b24f8a..7e1f3ed 100644 > > --- a/generator/actions.ml > > +++ b/generator/actions.ml > > @@ -12316,6 +12316,22 @@ Get a btrfs filesystem's label." }; > > longdesc = "\ > > Defragment a file or directory." }; > > > > + { defaults with > > + name = "btrfs_filesystem_set_label"; > > + style = RErr, [Pathname "path"; String "label"], []; > > + proc_nr = Some 439; > > + optional = Some "btrfs"; camel_name = "BTRFSFilesystemSetLabel"; > > + tests = [ > > + InitPartition, Always, TestResultString ( > > + [["mkfs_btrfs"; "/dev/sda1"; ""; ""; "NOARG"; ""; "NOARG"; "NOARG"; ""; ""]; > > + ["mount"; "/dev/sda1"; "/"]; > > + ["btrfs_filesystem_set_label"; "/"; "newlabel"]; > > + ["btrfs_filesystem_get_label"; "/"]], "newlabel"), []; > > + ]; > > This test bit would be good to be added to the tests of set_label, > just with s/Always/IfAvailable "btrfs"/ so it is run only when btrfs > is available. > > Thanks, > -- > Pino Toscano > > _______________________________________________ > Libguestfs mailing list > Libguestfs@redhat.com > https://www.redhat.com/mailman/listinfo/libguestfs
Hu Tao
2015-Jan-16 01:21 UTC
Re: [Libguestfs] [PATCH 5/5] New API: btrfs_filesystem_set_label
On Mon, Jan 05, 2015 at 01:01:52PM +0100, Pino Toscano wrote:> In data venerdì 26 dicembre 2014 16:17:49, Hu Tao ha scritto: > > Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> > > --- > > daemon/btrfs.c | 33 +++++++++++++++++++++++++++++++++ > > generator/actions.ml | 16 ++++++++++++++++ > > src/MAX_PROC_NR | 2 +- > > 3 files changed, 50 insertions(+), 1 deletion(-) > > > > diff --git a/daemon/btrfs.c b/daemon/btrfs.c > > index 32b1b05..f9e35be 100644 > > --- a/daemon/btrfs.c > > +++ b/daemon/btrfs.c > > @@ -1463,3 +1463,36 @@ do_btrfs_filesystem_defragment (const char *path) > > > > return 0; > > } > > + > > +int > > +do_btrfs_filesystem_set_label (const char *path, const char *label) > > +{ > > + const size_t MAX_ARGS = 64; > > + const char *argv[MAX_ARGS]; > > + size_t i = 0; > > + CLEANUP_FREE char *path_buf = NULL; > > + CLEANUP_FREE char *err = NULL; > > + CLEANUP_FREE char *out = NULL; > > + int r; > > + > > + path_buf = sysroot_path (path); > > + if (path_buf == NULL) { > > + reply_with_perror ("malloc"); > > + return -1; > > + } > > + > > + ADD_ARG (argv, i, str_btrfs); > > + ADD_ARG (argv, i, "filesystem"); > > + ADD_ARG (argv, i, "label"); > > + ADD_ARG (argv, i, path_buf); > > + ADD_ARG (argv, i, label); > > + ADD_ARG (argv, i, NULL); > > + > > + r = commandv (&out, &err, argv); > > + if (r == -1) { > > + reply_with_error ("%s: %s", path, err); > > + return -1; > > + } > > + > > + return 0; > > +} > > Isn't this alredy covered by set_label? > > > diff --git a/generator/actions.ml b/generator/actions.ml > > index 4b24f8a..7e1f3ed 100644 > > --- a/generator/actions.ml > > +++ b/generator/actions.ml > > @@ -12316,6 +12316,22 @@ Get a btrfs filesystem's label." }; > > longdesc = "\ > > Defragment a file or directory." }; > > > > + { defaults with > > + name = "btrfs_filesystem_set_label"; > > + style = RErr, [Pathname "path"; String "label"], []; > > + proc_nr = Some 439; > > + optional = Some "btrfs"; camel_name = "BTRFSFilesystemSetLabel"; > > + tests = [ > > + InitPartition, Always, TestResultString ( > > + [["mkfs_btrfs"; "/dev/sda1"; ""; ""; "NOARG"; ""; "NOARG"; "NOARG"; ""; ""]; > > + ["mount"; "/dev/sda1"; "/"]; > > + ["btrfs_filesystem_set_label"; "/"; "newlabel"]; > > + ["btrfs_filesystem_get_label"; "/"]], "newlabel"), []; > > + ]; > > This test bit would be good to be added to the tests of set_label, > just with s/Always/IfAvailable "btrfs"/ so it is run only when btrfs > is available.I found that all btrfs APIs are in optgroup "btrfs", so it is OK to "Always" test them. Regards, Hu
Pino Toscano
2015-Jan-16 09:50 UTC
Re: [Libguestfs] [PATCH 5/5] New API: btrfs_filesystem_set_label
On Friday 16 January 2015 09:21:49 Hu Tao wrote:> On Mon, Jan 05, 2015 at 01:01:52PM +0100, Pino Toscano wrote: > > In data venerdì 26 dicembre 2014 16:17:49, Hu Tao ha scritto: > > > Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> > > > --- > > > daemon/btrfs.c | 33 +++++++++++++++++++++++++++++++++ > > > generator/actions.ml | 16 ++++++++++++++++ > > > src/MAX_PROC_NR | 2 +- > > > 3 files changed, 50 insertions(+), 1 deletion(-) > > > > > > diff --git a/daemon/btrfs.c b/daemon/btrfs.c > > > index 32b1b05..f9e35be 100644 > > > --- a/daemon/btrfs.c > > > +++ b/daemon/btrfs.c > > > @@ -1463,3 +1463,36 @@ do_btrfs_filesystem_defragment (const char *path) > > > > > > return 0; > > > } > > > + > > > +int > > > +do_btrfs_filesystem_set_label (const char *path, const char *label) > > > +{ > > > + const size_t MAX_ARGS = 64; > > > + const char *argv[MAX_ARGS]; > > > + size_t i = 0; > > > + CLEANUP_FREE char *path_buf = NULL; > > > + CLEANUP_FREE char *err = NULL; > > > + CLEANUP_FREE char *out = NULL; > > > + int r; > > > + > > > + path_buf = sysroot_path (path); > > > + if (path_buf == NULL) { > > > + reply_with_perror ("malloc"); > > > + return -1; > > > + } > > > + > > > + ADD_ARG (argv, i, str_btrfs); > > > + ADD_ARG (argv, i, "filesystem"); > > > + ADD_ARG (argv, i, "label"); > > > + ADD_ARG (argv, i, path_buf); > > > + ADD_ARG (argv, i, label); > > > + ADD_ARG (argv, i, NULL); > > > + > > > + r = commandv (&out, &err, argv); > > > + if (r == -1) { > > > + reply_with_error ("%s: %s", path, err); > > > + return -1; > > > + } > > > + > > > + return 0; > > > +} > > > > Isn't this alredy covered by set_label? > > > > > diff --git a/generator/actions.ml b/generator/actions.ml > > > index 4b24f8a..7e1f3ed 100644 > > > --- a/generator/actions.ml > > > +++ b/generator/actions.ml > > > @@ -12316,6 +12316,22 @@ Get a btrfs filesystem's label." }; > > > longdesc = "\ > > > Defragment a file or directory." }; > > > > > > + { defaults with > > > + name = "btrfs_filesystem_set_label"; > > > + style = RErr, [Pathname "path"; String "label"], []; > > > + proc_nr = Some 439; > > > + optional = Some "btrfs"; camel_name = "BTRFSFilesystemSetLabel"; > > > + tests = [ > > > + InitPartition, Always, TestResultString ( > > > + [["mkfs_btrfs"; "/dev/sda1"; ""; ""; "NOARG"; ""; "NOARG"; "NOARG"; ""; ""]; > > > + ["mount"; "/dev/sda1"; "/"]; > > > + ["btrfs_filesystem_set_label"; "/"; "newlabel"]; > > > + ["btrfs_filesystem_get_label"; "/"]], "newlabel"), []; > > > + ]; > > > > This test bit would be good to be added to the tests of set_label, > > just with s/Always/IfAvailable "btrfs"/ so it is run only when btrfs > > is available. > > I found that all btrfs APIs are in optgroup "btrfs", so it is OK to > "Always" test them.As long as they are part of a "optional/btrfs" API yes, but not if you add such btrfs-specific tests to a non-btrfs API such as set_label. -- Pino Toscano
Possibly Parallel Threads
- Re: [PATCH 5/5] New API: btrfs_filesystem_set_label
- [PATCH 5/5] New API: btrfs_filesystem_set_label
- [PATCH 0/5] btrfs: add API for btrfs filesystem, check and scrub
- Re: [PATCH v2 1/5] uuid: add support to change uuid of btrfs partition
- Re: [PATCH v2 1/5] uuid: add support to change uuid of btrfs partition