summaryrefslogtreecommitdiffstats
path: root/include/sys/dnode.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sys/dnode.h')
-rw-r--r--include/sys/dnode.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/sys/dnode.h b/include/sys/dnode.h
index cee4ea783..3f560a7fe 100644
--- a/include/sys/dnode.h
+++ b/include/sys/dnode.h
@@ -58,6 +58,12 @@ extern "C" {
*/
#define DNODE_SHIFT 9 /* 512 bytes */
#define DN_MIN_INDBLKSHIFT 12 /* 4k */
+/*
+ * If we ever increase this value beyond 20, we need to revisit all logic that
+ * does x << level * ebps to handle overflow. With a 1M indirect block size,
+ * 4 levels of indirect blocks would not be able to guarantee addressing an
+ * entire object, so 5 levels will be used, but 5 * (20 - 7) = 65.
+ */
#define DN_MAX_INDBLKSHIFT 14 /* 16k */
#define DNODE_BLOCK_SHIFT 14 /* 16k */
#define DNODE_CORE_SIZE 64 /* 64 bytes for dnode sans blkptrs */