Print this page
2619 asynchronous destruction of ZFS file systems
2747 SPA versioning with zfs feature flags
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <gwilson@delphix.com>
Reviewed by: Richard Lowe <richlowe@richlowe.net>
Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com>
Approved by: Dan McDonald <danmcd@nexenta.com>
        
*** 16,28 ****
--- 16,30 ----
   * fields enclosed by brackets "[]" replaced with your own identifying
   * information: Portions Copyright [yyyy] [name of copyright owner]
   *
   * CDDL HEADER END
   */
+ 
  /*
   * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
   * Portions Copyright 2011 iXsystems, Inc
+  * Copyright (c) 2012 by Delphix. All rights reserved.
   */
  
  #include <sys/zfs_context.h>
  #include <sys/types.h>
  #include <sys/param.h>
*** 425,438 ****
  
          if (zapadd) {
                  char attr_name[8];
  
                  if (sa->sa_layout_attr_obj == 0) {
!                         sa->sa_layout_attr_obj = zap_create(os,
!                             DMU_OT_SA_ATTR_LAYOUTS, DMU_OT_NONE, 0, tx);
!                         VERIFY(zap_add(os, sa->sa_master_obj, SA_LAYOUTS, 8, 1,
!                             &sa->sa_layout_attr_obj, tx) == 0);
                  }
  
                  (void) snprintf(attr_name, sizeof (attr_name),
                      "%d", (int)lot_num);
                  VERIFY(0 == zap_update(os, os->os_sa->sa_layout_attr_obj,
--- 427,439 ----
  
          if (zapadd) {
                  char attr_name[8];
  
                  if (sa->sa_layout_attr_obj == 0) {
!                         sa->sa_layout_attr_obj = zap_create_link(os,
!                             DMU_OT_SA_ATTR_LAYOUTS,
!                             sa->sa_master_obj, SA_LAYOUTS, tx);
                  }
  
                  (void) snprintf(attr_name, sizeof (attr_name),
                      "%d", (int)lot_num);
                  VERIFY(0 == zap_update(os, os->os_sa->sa_layout_attr_obj,
*** 1550,1563 ****
                  mutex_exit(&sa->sa_lock);
                  return;
          }
  
          if (sa->sa_reg_attr_obj == NULL) {
!                 sa->sa_reg_attr_obj = zap_create(hdl->sa_os,
!                     DMU_OT_SA_ATTR_REGISTRATION, DMU_OT_NONE, 0, tx);
!                 VERIFY(zap_add(hdl->sa_os, sa->sa_master_obj,
!                     SA_REGISTRY, 8, 1, &sa->sa_reg_attr_obj, tx) == 0);
          }
          for (i = 0; i != sa->sa_num_attrs; i++) {
                  if (sa->sa_attr_table[i].sa_registered)
                          continue;
                  ATTR_ENCODE(attr_value, tb[i].sa_attr, tb[i].sa_length,
--- 1551,1563 ----
                  mutex_exit(&sa->sa_lock);
                  return;
          }
  
          if (sa->sa_reg_attr_obj == NULL) {
!                 sa->sa_reg_attr_obj = zap_create_link(hdl->sa_os,
!                     DMU_OT_SA_ATTR_REGISTRATION,
!                     sa->sa_master_obj, SA_REGISTRY, tx);
          }
          for (i = 0; i != sa->sa_num_attrs; i++) {
                  if (sa->sa_attr_table[i].sa_registered)
                          continue;
                  ATTR_ENCODE(attr_value, tb[i].sa_attr, tb[i].sa_length,