Print this page
6536 zfs send: want a way to disable sending of free records
Reviewed by: Alexander Stetsenko <astetsenko@racktopsystems.com>
Reviewed by: Kim Shrier <kshrier@racktopsystems.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/zfs/zfs_main.c
          +++ new/usr/src/cmd/zfs/zfs_main.c
↓ open down ↓ 18 lines elided ↑ open up ↑
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  24   24   * Copyright (c) 2011, 2015 by Delphix. All rights reserved.
  25   25   * Copyright 2012 Milan Jurik. All rights reserved.
  26   26   * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  27   27   * Copyright (c) 2013 Steven Hartland.  All rights reserved.
  28   28   * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
       29 + * Copyright 2015 RackTop Systems.
  29   30   */
  30   31  
  31   32  #include <assert.h>
  32   33  #include <ctype.h>
  33   34  #include <errno.h>
  34   35  #include <libgen.h>
  35   36  #include <libintl.h>
  36   37  #include <libuutil.h>
  37   38  #include <libnvpair.h>
  38   39  #include <locale.h>
↓ open down ↓ 213 lines elided ↑ open up ↑
 252  253                      "<filesystem>\n"
 253  254                      "\treceive -A <filesystem|volume>\n"));
 254  255          case HELP_RENAME:
 255  256                  return (gettext("\trename [-f] <filesystem|volume|snapshot> "
 256  257                      "<filesystem|volume|snapshot>\n"
 257  258                      "\trename [-f] -p <filesystem|volume> <filesystem|volume>\n"
 258  259                      "\trename -r <snapshot> <snapshot>\n"));
 259  260          case HELP_ROLLBACK:
 260  261                  return (gettext("\trollback [-rRf] <snapshot>\n"));
 261  262          case HELP_SEND:
 262      -                return (gettext("\tsend [-DnPpRvLe] [-[iI] snapshot] "
      263 +                return (gettext("\tsend [-DnPpRvLeF] [-[iI] snapshot] "
 263  264                      "<snapshot>\n"
 264      -                    "\tsend [-Le] [-i snapshot|bookmark] "
      265 +                    "\tsend [-LeF] [-i snapshot|bookmark] "
 265  266                      "<filesystem|volume|snapshot>\n"
 266  267                      "\tsend [-nvPe] -t <receive_resume_token>\n"));
 267  268          case HELP_SET:
 268  269                  return (gettext("\tset <property=value> ... "
 269  270                      "<filesystem|volume|snapshot> ...\n"));
 270  271          case HELP_SHARE:
 271  272                  return (gettext("\tshare <-a | filesystem>\n"));
 272  273          case HELP_SNAPSHOT:
 273  274                  return (gettext("\tsnapshot [-r] [-o property=value] ... "
 274  275                      "<filesystem|volume>@<snap> ...\n"));
↓ open down ↓ 3405 lines elided ↑ open up ↑
3680 3681          char *toname = NULL;
3681 3682          char *resume_token = NULL;
3682 3683          char *cp;
3683 3684          zfs_handle_t *zhp;
3684 3685          sendflags_t flags = { 0 };
3685 3686          int c, err;
3686 3687          nvlist_t *dbgnv = NULL;
3687 3688          boolean_t extraverbose = B_FALSE;
3688 3689  
3689 3690          /* check options */
3690      -        while ((c = getopt(argc, argv, ":i:I:RDpvnPLet:")) != -1) {
     3691 +        while ((c = getopt(argc, argv, ":i:I:RDpvnPLet:F")) != -1) {
3691 3692                  switch (c) {
3692 3693                  case 'i':
3693 3694                          if (fromname)
3694 3695                                  usage(B_FALSE);
3695 3696                          fromname = optarg;
3696 3697                          break;
3697 3698                  case 'I':
3698 3699                          if (fromname)
3699 3700                                  usage(B_FALSE);
3700 3701                          fromname = optarg;
↓ open down ↓ 22 lines elided ↑ open up ↑
3723 3724                          flags.dryrun = B_TRUE;
3724 3725                          break;
3725 3726                  case 'L':
3726 3727                          flags.largeblock = B_TRUE;
3727 3728                          break;
3728 3729                  case 'e':
3729 3730                          flags.embed_data = B_TRUE;
3730 3731                          break;
3731 3732                  case 't':
3732 3733                          resume_token = optarg;
     3734 +                        break;
     3735 +                case 'F':
     3736 +                        flags.skip_free = B_TRUE;
3733 3737                          break;
3734 3738                  case ':':
3735 3739                          (void) fprintf(stderr, gettext("missing argument for "
3736 3740                              "'%c' option\n"), optopt);
3737 3741                          usage(B_FALSE);
3738 3742                          break;
3739 3743                  case '?':
3740 3744                          (void) fprintf(stderr, gettext("invalid option '%c'\n"),
3741 3745                              optopt);
3742 3746                          usage(B_FALSE);
↓ open down ↓ 3247 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX