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/dsl_prop.c
          +++ new/usr/src/uts/common/fs/zfs/dsl_prop.c
↓ 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  #include <sys/zfs_context.h>
  26   27  #include <sys/dmu.h>
  27   28  #include <sys/dmu_objset.h>
  28   29  #include <sys/dmu_tx.h>
  29   30  #include <sys/dsl_dataset.h>
  30   31  #include <sys/dsl_dir.h>
  31   32  #include <sys/dsl_prop.h>
  32   33  #include <sys/dsl_synctask.h>
↓ open down ↓ 662 lines elided ↑ open up ↑
 695  696                  if (source == ZPROP_SRC_LOCAL) {
 696  697                          valstr = (char *)psa->psa_value;
 697  698                  } else {
 698  699                          tbuf = kmem_alloc(ZAP_MAXVALUELEN, KM_SLEEP);
 699  700                          if (dsl_prop_get_ds(ds, propname, 1,
 700  701                              ZAP_MAXVALUELEN, tbuf, NULL) == 0)
 701  702                                  valstr = tbuf;
 702  703                  }
 703  704          }
 704  705  
 705      -        spa_history_log_internal((source == ZPROP_SRC_NONE ||
 706      -            source == ZPROP_SRC_INHERITED) ? LOG_DS_INHERIT :
 707      -            LOG_DS_PROPSET, ds->ds_dir->dd_pool->dp_spa, tx,
 708      -            "%s=%s dataset = %llu", propname,
 709      -            (valstr == NULL ? "" : valstr), ds->ds_object);
      706 +        spa_history_log_internal_ds(ds, (source == ZPROP_SRC_NONE ||
      707 +            source == ZPROP_SRC_INHERITED) ? "inherit" : "set", tx,
      708 +            "%s=%s", propname, (valstr == NULL ? "" : valstr));
 710  709  
 711  710          if (tbuf != NULL)
 712  711                  kmem_free(tbuf, ZAP_MAXVALUELEN);
 713  712  }
 714  713  
 715  714  void
 716  715  dsl_props_set_sync(void *arg1, void *arg2, dmu_tx_t *tx)
 717  716  {
 718  717          dsl_dataset_t *ds = arg1;
 719  718          dsl_props_arg_t *pa = arg2;
↓ open down ↓ 28 lines elided ↑ open up ↑
 748  747                          uint64_t intval;
 749  748                          VERIFY(nvpair_value_uint64(pair, &intval) == 0);
 750  749                          psa.psa_intsz = sizeof (intval);
 751  750                          psa.psa_numints = 1;
 752  751                          psa.psa_value = &intval;
 753  752                  }
 754  753                  dsl_prop_set_sync(ds, &psa, tx);
 755  754          }
 756  755  }
 757  756  
 758      -void
 759      -dsl_dir_prop_set_uint64_sync(dsl_dir_t *dd, const char *name, uint64_t val,
 760      -    dmu_tx_t *tx)
 761      -{
 762      -        objset_t *mos = dd->dd_pool->dp_meta_objset;
 763      -        uint64_t zapobj = dd->dd_phys->dd_props_zapobj;
 764      -
 765      -        ASSERT(dmu_tx_is_syncing(tx));
 766      -
 767      -        VERIFY(0 == zap_update(mos, zapobj, name, sizeof (val), 1, &val, tx));
 768      -
 769      -        dsl_prop_changed_notify(dd->dd_pool, dd->dd_object, name, val, TRUE);
 770      -
 771      -        spa_history_log_internal(LOG_DS_PROPSET, dd->dd_pool->dp_spa, tx,
 772      -            "%s=%llu dataset = %llu", name, (u_longlong_t)val,
 773      -            dd->dd_phys->dd_head_dataset_obj);
 774      -}
 775      -
 776  757  int
 777  758  dsl_prop_set(const char *dsname, const char *propname, zprop_source_t source,
 778  759      int intsz, int numints, const void *buf)
 779  760  {
 780  761          dsl_dataset_t *ds;
 781  762          uint64_t version;
 782  763          int err;
 783  764          dsl_prop_setarg_t psa;
 784  765  
 785  766          /*
↓ open down ↓ 368 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX