diff options
author | Matthew Ahrens <[email protected]> | 2016-07-13 16:48:01 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2017-02-09 10:27:02 -0800 |
commit | d7958b4cda27b82bd24dd4d4b2a539e26c62a409 (patch) | |
tree | 7c18081445f41c5ade05f99c5c2479486da48d3e /include/sys | |
parent | df7eeccc7597980efd3cb1efd9377ad5e0483042 (diff) |
OpenZFS 7104 - increase indirect block size
Authored by: Matthew Ahrens <[email protected]>
Reviewed by: George Wilson <[email protected]>
Reviewed by: Paul Dagnelie <[email protected]>
Reviewed by: Dan McDonald <[email protected]>
Approved by: Robert Mustacchi <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Ported-by: George Melikov <[email protected]>
OpenZFS-issue: https://www.illumos.org/issues/7104
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/4b5c8e9
Closes #5679
Diffstat (limited to 'include/sys')
-rw-r--r-- | include/sys/dnode.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/include/sys/dnode.h b/include/sys/dnode.h index 9aacac3df..ebede2d06 100644 --- a/include/sys/dnode.h +++ b/include/sys/dnode.h @@ -64,7 +64,7 @@ extern "C" { * 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 DN_MAX_INDBLKSHIFT 17 /* 128k */ #define DNODE_BLOCK_SHIFT 14 /* 16k */ #define DNODE_CORE_SIZE 64 /* 64 bytes for dnode sans blkptrs */ #define DN_MAX_OBJECT_SHIFT 48 /* 256 trillion (zfs_fid_t limit) */ @@ -101,6 +101,11 @@ extern "C" { #define DNODES_PER_BLOCK_SHIFT (DNODE_BLOCK_SHIFT - DNODE_SHIFT) #define DNODES_PER_BLOCK (1ULL << DNODES_PER_BLOCK_SHIFT) + +/* + * This is inaccurate if the indblkshift of the particular object is not the + * max. But it's only used by userland to calculate the zvol reservation. + */ #define DNODES_PER_LEVEL_SHIFT (DN_MAX_INDBLKSHIFT - SPA_BLKPTRSHIFT) #define DNODES_PER_LEVEL (1ULL << DNODES_PER_LEVEL_SHIFT) |