Print this page
2882 implement libzfs_core
2883 changing "canmount" property to "on" should not always remount dataset
2900 "zfs snapshot" should be able to create multiple, arbitrary snapshots at once
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Chris Siden <christopher.siden@delphix.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Bill Pijewski <wdp@joyent.com>
Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/sys/zfs_ioctl.h
          +++ new/usr/src/uts/common/fs/zfs/sys/zfs_ioctl.h
↓ open down ↓ 12 lines elided ↑ open up ↑
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
       23 + * Copyright (c) 2012 by Delphix. All rights reserved.
  23   24   */
  24   25  
  25   26  #ifndef _SYS_ZFS_IOCTL_H
  26   27  #define _SYS_ZFS_IOCTL_H
  27   28  
  28   29  #include <sys/cred.h>
  29   30  #include <sys/dmu.h>
  30   31  #include <sys/zio.h>
  31   32  #include <sys/dsl_deleg.h>
  32   33  #include <sys/spa.h>
↓ open down ↓ 1 lines elided ↑ open up ↑
  34   35  
  35   36  #ifdef _KERNEL
  36   37  #include <sys/nvpair.h>
  37   38  #endif  /* _KERNEL */
  38   39  
  39   40  #ifdef  __cplusplus
  40   41  extern "C" {
  41   42  #endif
  42   43  
  43   44  /*
       45 + * The structures in this file are passed between userland and the
       46 + * kernel.  Userland may be running a 32-bit process, while the kernel
       47 + * is 64-bit.  Therefore, these structures need to compile the same in
       48 + * 32-bit and 64-bit.  This means not using type "long", and adding
       49 + * explicit padding so that the 32-bit structure will not be packed more
       50 + * tightly than the 64-bit structure (which requires 64-bit alignment).
       51 + */
       52 +
       53 +/*
  44   54   * Property values for snapdir
  45   55   */
  46   56  #define ZFS_SNAPDIR_HIDDEN              0
  47   57  #define ZFS_SNAPDIR_VISIBLE             1
  48   58  
  49   59  /*
  50   60   * Field manipulation macros for the drr_versioninfo field of the
  51   61   * send stream header.
  52   62   */
  53   63  
↓ open down ↓ 195 lines elided ↑ open up ↑
 249  259   * all the name lookups are case-insensitive, or so that only some
 250  260   * lookups, the ones that set an FIGNORECASE flag, are case-insensitive.
 251  261   */
 252  262  typedef enum zfs_case {
 253  263          ZFS_CASE_SENSITIVE,
 254  264          ZFS_CASE_INSENSITIVE,
 255  265          ZFS_CASE_MIXED
 256  266  } zfs_case_t;
 257  267  
 258  268  typedef struct zfs_cmd {
 259      -        char            zc_name[MAXPATHLEN];
      269 +        char            zc_name[MAXPATHLEN];    /* name of pool or dataset */
      270 +        uint64_t        zc_nvlist_src;          /* really (char *) */
      271 +        uint64_t        zc_nvlist_src_size;
      272 +        uint64_t        zc_nvlist_dst;          /* really (char *) */
      273 +        uint64_t        zc_nvlist_dst_size;
      274 +        boolean_t       zc_nvlist_dst_filled;   /* put an nvlist in dst? */
      275 +        int             zc_pad2;
      276 +
      277 +        /*
      278 +         * The following members are for legacy ioctls which haven't been
      279 +         * converted to the new method.
      280 +         */
      281 +        uint64_t        zc_history;             /* really (char *) */
 260  282          char            zc_value[MAXPATHLEN * 2];
 261  283          char            zc_string[MAXNAMELEN];
 262  284          char            zc_top_ds[MAXPATHLEN];
 263  285          uint64_t        zc_guid;
 264  286          uint64_t        zc_nvlist_conf;         /* really (char *) */
 265  287          uint64_t        zc_nvlist_conf_size;
 266      -        uint64_t        zc_nvlist_src;          /* really (char *) */
 267      -        uint64_t        zc_nvlist_src_size;
 268      -        uint64_t        zc_nvlist_dst;          /* really (char *) */
 269      -        uint64_t        zc_nvlist_dst_size;
 270  288          uint64_t        zc_cookie;
 271  289          uint64_t        zc_objset_type;
 272  290          uint64_t        zc_perm_action;
 273      -        uint64_t        zc_history;             /* really (char *) */
 274      -        uint64_t        zc_history_len;
      291 +        uint64_t        zc_history_len;
 275  292          uint64_t        zc_history_offset;
 276  293          uint64_t        zc_obj;
 277  294          uint64_t        zc_iflags;              /* internal to zfs(7fs) */
 278  295          zfs_share_t     zc_share;
 279  296          dmu_objset_stats_t zc_objset_stats;
 280  297          struct drr_begin zc_begin_record;
 281  298          zinject_record_t zc_inject_record;
 282  299          boolean_t       zc_defer_destroy;
 283  300          boolean_t       zc_temphold;
 284  301          uint64_t        zc_action_handle;
↓ open down ↓ 65 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX