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/dsl_dataset.h
          +++ new/usr/src/uts/common/fs/zfs/sys/dsl_dataset.h
↓ open down ↓ 172 lines elided ↑ open up ↑
 173  173  };
 174  174  
 175  175  /*
 176  176   * The max length of a temporary tag prefix is the number of hex digits
 177  177   * required to express UINT64_MAX plus one for the hyphen.
 178  178   */
 179  179  #define MAX_TAG_PREFIX_LEN      17
 180  180  
 181  181  struct dsl_ds_holdarg {
 182  182          dsl_sync_task_group_t *dstg;
 183      -        char *htag;
      183 +        const char *htag;
 184  184          char *snapname;
 185  185          boolean_t recursive;
 186  186          boolean_t gotone;
 187  187          boolean_t temphold;
 188  188          char failed[MAXPATHLEN];
 189  189  };
 190  190  
 191  191  #define dsl_dataset_is_snapshot(ds) \
 192  192          ((ds)->ds_phys->ds_num_children != 0)
 193  193  
↓ open down ↓ 14 lines elided ↑ open up ↑
 208  208  boolean_t dsl_dataset_tryown(dsl_dataset_t *ds, boolean_t inconsistentok,
 209  209      void *tag);
 210  210  void dsl_dataset_make_exclusive(dsl_dataset_t *ds, void *tag);
 211  211  void dsl_register_onexit_hold_cleanup(dsl_dataset_t *ds, const char *htag,
 212  212      minor_t minor);
 213  213  uint64_t dsl_dataset_create_sync(dsl_dir_t *pds, const char *lastname,
 214  214      dsl_dataset_t *origin, uint64_t flags, cred_t *, dmu_tx_t *);
 215  215  uint64_t dsl_dataset_create_sync_dd(dsl_dir_t *dd, dsl_dataset_t *origin,
 216  216      uint64_t flags, dmu_tx_t *tx);
 217  217  int dsl_dataset_destroy(dsl_dataset_t *ds, void *tag, boolean_t defer);
 218      -int dsl_snapshots_destroy(char *fsname, char *snapname, boolean_t defer);
 219  218  dsl_checkfunc_t dsl_dataset_destroy_check;
 220  219  dsl_syncfunc_t dsl_dataset_destroy_sync;
 221      -dsl_checkfunc_t dsl_dataset_snapshot_check;
 222      -dsl_syncfunc_t dsl_dataset_snapshot_sync;
 223  220  dsl_syncfunc_t dsl_dataset_user_hold_sync;
      221 +int dsl_dataset_snapshot_check(dsl_dataset_t *ds, const char *, dmu_tx_t *tx);
      222 +void dsl_dataset_snapshot_sync(dsl_dataset_t *ds, const char *, dmu_tx_t *tx);
 224  223  int dsl_dataset_rename(char *name, const char *newname, boolean_t recursive);
 225  224  int dsl_dataset_promote(const char *name, char *conflsnap);
 226  225  int dsl_dataset_clone_swap(dsl_dataset_t *clone, dsl_dataset_t *origin_head,
 227  226      boolean_t force);
 228  227  int dsl_dataset_user_hold(char *dsname, char *snapname, char *htag,
 229  228      boolean_t recursive, boolean_t temphold, int cleanup_fd);
 230  229  int dsl_dataset_user_hold_for_send(dsl_dataset_t *ds, char *htag,
 231  230      boolean_t temphold);
 232  231  int dsl_dataset_user_release(char *dsname, char *snapname, char *htag,
 233  232      boolean_t recursive);
↓ open down ↓ 64 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX