diff options
author | delphij <delphij@FreeBSD.org> | 2014-11-10 08:20:21 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2014-11-10 08:20:21 +0000 |
commit | fe03d9b9d26fcae476fe7e7fa57516b0fa684089 (patch) | |
tree | fc0c345a3bfb9af0de85b1f0161f8541e1696530 /sys/boot | |
parent | 57dd09b78bf77575f9ff5b66f08a03c72a220066 (diff) | |
download | FreeBSD-src-fe03d9b9d26fcae476fe7e7fa57516b0fa684089.zip FreeBSD-src-fe03d9b9d26fcae476fe7e7fa57516b0fa684089.tar.gz |
MFV r274273:
ZFS large block support.
Please note that booting from datasets that have recordsize greater
than 128KB is not supported (but it's Okay to enable the feature on
the pool). This *may* remain unchanged because of memory constraint.
Limited safety belt is provided for mounted root filesystem but use
caution is advised.
Illumos issue:
5027 zfs large block support
MFC after: 1 month
Diffstat (limited to 'sys/boot')
-rw-r--r-- | sys/boot/zfs/zfsimpl.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/boot/zfs/zfsimpl.c b/sys/boot/zfs/zfsimpl.c index 16b57c7..8d21c57 100644 --- a/sys/boot/zfs/zfsimpl.c +++ b/sys/boot/zfs/zfsimpl.c @@ -57,6 +57,7 @@ static const char *features_for_read[] = { "com.delphix:hole_birth", "com.delphix:extensible_dataset", "com.delphix:embedded_data", + "org.open-zfs:large_blocks", NULL }; @@ -1222,6 +1223,11 @@ dnode_read(const spa_t *spa, const dnode_phys_t *dnode, off_t offset, void *buf, int nlevels = dnode->dn_nlevels; int i, rc; + if (bsize > SPA_MAXBLOCKSIZE) { + printf("ZFS: I/O error - blocks larger than 128K are not supported\n"); + return (EIO); + } + /* * Note: bsize may not be a power of two here so we need to do an * actual divide rather than a bitshift. |