Rebase master to b117
[zfs.git] / module / zfs / include / sys / dnode.h
index c79ff48..48e4da8 100644 (file)
@@ -19,7 +19,7 @@
  * CDDL HEADER END
  */
 /*
- * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
@@ -98,7 +98,8 @@ enum dnode_dirtycontext {
 };
 
 /* Is dn_used in bytes?  if not, it's in multiples of SPA_MINBLOCKSIZE */
-#define        DNODE_FLAG_USED_BYTES   (1<<0)
+#define        DNODE_FLAG_USED_BYTES           (1<<0)
+#define        DNODE_FLAG_USERUSED_ACCOUNTED   (1<<1)
 
 typedef struct dnode_phys {
        uint8_t dn_type;                /* dmu_object_type_t */
@@ -131,10 +132,7 @@ typedef struct dnode {
         */
        krwlock_t dn_struct_rwlock;
 
-       /*
-        * Our link on dataset's dd_dnodes list.
-        * Protected by dd_accounting_mtx.
-        */
+       /* Our link on dn_objset->os_dnodes list; protected by os_lock.  */
        list_node_t dn_link;
 
        /* immutable: */
@@ -160,6 +158,7 @@ typedef struct dnode {
        uint16_t dn_datablkszsec;       /* in 512b sectors */
        uint32_t dn_datablksz;          /* in bytes */
        uint64_t dn_maxblkid;
+       uint8_t dn_next_nblkptr[TXG_SIZE];
        uint8_t dn_next_nlevels[TXG_SIZE];
        uint8_t dn_next_indblkshift[TXG_SIZE];
        uint16_t dn_next_bonuslen[TXG_SIZE];
@@ -190,6 +189,9 @@ typedef struct dnode {
        /* parent IO for current sync write */
        zio_t *dn_zio;
 
+       /* used in syncing context */
+       dnode_phys_t *dn_oldphys;
+
        /* holds prefetch structure */
        struct zfetch   dn_zfetch;
 } dnode_t;