In data mercoledì 24 giugno 2015 15:54:05, Chen Hanxiao ha scritto:
 Signed-off-by: Chen Hanxiao <chenhanxiao(a)cn.fujitsu.com>
 ---
  daemon/daemon.h |  1 +
  daemon/uuids.c  | 12 +-----------
  daemon/xfs.c    |  7 +++++++
  3 files changed, 9 insertions(+), 11 deletions(-)
 
 diff --git a/daemon/daemon.h b/daemon/daemon.h
 index eeb4ff7..aba6ef2 100644
 --- a/daemon/daemon.h
 +++ b/daemon/daemon.h
 @@ -261,6 +261,7 @@ extern int copy_xattrs (const char *src, const char *dest);
  /*-- in xfs.c --*/
  /* Documented in xfs_admin(8). */
  #define XFS_LABEL_MAX 12
 +extern int do_xfs_admin_uuid (const char *device, const char *uuid); 
The do_* naming in the daemon is reserved for actions. Just name it
like xfs_set_uuid.
  
  /*-- debug-bmap.c --*/
  extern char *debug_bmap (const char *subcmd, size_t argc, char *const *const argv);
 diff --git a/daemon/uuids.c b/daemon/uuids.c
 index 8626884..0520113 100644
 --- a/daemon/uuids.c
 +++ b/daemon/uuids.c
 @@ -27,7 +27,6 @@
  #include "actions.h"
  #include "optgroups.h"
  
 -GUESTFSD_EXT_CMD(str_xfs_admin, xfs_admin);
  GUESTFSD_EXT_CMD(str_swaplabel, swaplabel);
  
  static int
 @@ -48,22 +47,13 @@ e2uuid (const char *device, const char *uuid)
  static int
  xfsuuid (const char *device, const char *uuid)
  {
 -  int r;
 -  CLEANUP_FREE char *err = NULL;
 -
    /* Don't allow special values. */
    if (STREQ (uuid, "nil") || STREQ (uuid, "generate")) {
      reply_with_error ("xfs: invalid new UUID");
      return -1;
    }
  
 -  r = command (NULL, &err, str_xfs_admin, "-U", uuid, device, NULL);
 -  if (r == -1) {
 -    reply_with_error ("%s", err);
 -    return -1;
 -  }
 -
 -  return 0;
 +  return do_xfs_admin_uuid (device, uuid);
  }
  
  static int
 diff --git a/daemon/xfs.c b/daemon/xfs.c
 index 687013b..aaeff3e 100644
 --- a/daemon/xfs.c
 +++ b/daemon/xfs.c
 @@ -456,6 +456,13 @@ do_xfs_growfs (const char *path,
  }
  
  int
 +do_xfs_admin_uuid (const char *device, const char *uuid)
 +{
 +  optargs_bitmask = GUESTFS_XFS_ADMIN_UUID_BITMASK;
 +  return do_xfs_admin (device, 0, 0, 0, 0, 0, NULL, uuid);
 +}
 +
 +int
  do_xfs_admin (const char *device,
                int extunwritten, int imgfile, int v2log,
                int projid32bit,
  
The rest seems okay.
Thanks,
-- 
Pino Toscano