summaryrefslogtreecommitdiffstats
path: root/sys/cddl/boot/zfs/zfssubr.c
Commit message (Collapse)AuthorAgeFilesLines
* MFC r268075: MFV r267565:delphij2014-07-151-3/+7
| | | | | 4757 ZFS embedded-data block pointers ("zero block compression") 4913 zfs release should not be subject to space checks
* MFV r245512:delphij2013-02-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Illumos zfs issue #3035 [1] LZ4 compression support in ZFS. LZ4 is a new high-speed BSD-licensed compression algorithm created by Yann Collet that delivers very high compression and decompression performance compared to lzjb (>50% faster on compression, >80% faster on decompression and around 3x faster on compression of incompressible data), while giving better compression ratio [1]. This version of LZ4 corresponds to upstream's [2] revision 85. Please note that for obvious reasons this is not backward read compatible. This means once a pool have LZ4 compressed data, these data can no longer be read by older ZFS implementations. Local changes: - On-stack hash table disabled and using kernel slab allocator instead, at this time. This requires larger kernel thread stack for zio workers. This may change in the future should we adjusted the zio workers' thread stack size. - likely and unlikely will be undefined if they are already defined, this is required for i386 XEN build. - Removed De Bruijn sequence based __builtin_ctz family of builtins in favor of the latter. Both GCC and clang supports these builtins. - Changed the way the LZ4 code detects endianness. - Manual pages modifications to mention the feature based on Illumos counterpart. - Boot loader changes to make it support LZ4 decompression. [1] https://www.illumos.org/issues/3035 [2] http://code.google.com/p/lz4/source/list Obtained from: Illumos (13921:9d721847e469) Tested on: FreeBSD/amd64 MFC after: 1 month
* - Correctly read gang header from raidz.pjd2011-10-201-6/+9
| | | | | | | | | | - Decompress assembled gang block data if compressed. - Verify checksum of a gang header. - Verify checksum of assembled gang block data. - Verify checksum of uber block. Submitted by: avg MFC after: 3 days
* Always pass data size for checksum verification function, as usingpjd2011-10-191-10/+10
| | | | | | | | | | physical block size declared in bp may not always be what we want. For example in case of gang block header physical block size declared in bp is much larger than SPA_GANGBLOCKSIZE (512 bytes) and checksum calculation failed. This bug could lead to accessing unallocated memory and resets/failures during boot. MFC after: 3 days
* Initialize 'rc' properly before using it. This error could lead to infinitepjd2011-10-191-1/+3
| | | | | | loop when data reconstruction was needed. MFC after: 3 days
* Remove redundant size calculation.pjd2011-10-191-5/+0
| | | | MFC after: 3 days
* zfs boot subroutines: correctly specify type of an integer literalavg2011-09-131-1/+1
| | | | | | | Found by adding more warning flags to zfs boot blocks build. Approved by: re (kib) MFC after: 1 week
* Finally... Import the latest open-source ZFS version - (SPA) 28.pjd2011-02-271-460/+1223
| | | | | | | | | | | | | | | Few new things available from now on: - Data deduplication. - Triple parity RAIDZ (RAIDZ3). - zfs diff. - zpool split. - Snapshot holds. - zpool import -F. Allows to rewind corrupted pool to earlier transaction group. - Possibility to import pool in read-only mode. MFC after: 1 month
* Teach the (gpt)zfsboot and zfsloader raidz code to use its bufferspjd2010-01-061-21/+29
| | | | | | | | | | | more efficiently. Before this patch, in the worst case memory use would increase exponentially on the number of drives in the raidz vdev. Submitted by: Matt Reimer <mattjreimer@gmail.com> Sponsored by: VPOP Technologies, Inc. Silence from: dfr
* Correct another case of not doing 64bit math. This allows mine andps2009-11-131-1/+2
| | | | | | other raidz2 volumes to boot. Submitted by: Matt Reimer <mattjreimer@gmail.com>
* Unexpand $FreeBSD$.des2009-05-231-1/+1
|
* Remove svn:keywords on a file that had fbsd:nokeywords (though I don'tdes2009-05-231-1/+1
| | | | understand the reason for the latter)
* Add support for booting from raidz1 and raidz2 pools.dfr2009-05-161-0/+732
|
* Some zfsboot fixes from Norikatsu Shigemura:dfr2008-11-191-1/+1
| | | | | | | | 1. zfsboot2 (boot2) doesn't %d (printf), so change %d to %u. 2. chase new zpool versioning as SPA_VERSION. Obtained from: sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h Submitted by: nork
* Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.pjd2008-11-171-0/+193
This bring huge amount of changes, I'll enumerate only user-visible changes: - Delegated Administration Allows regular users to perform ZFS operations, like file system creation, snapshot creation, etc. - L2ARC Level 2 cache for ZFS - allows to use additional disks for cache. Huge performance improvements mostly for random read of mostly static content. - slog Allow to use additional disks for ZFS Intent Log to speed up operations like fsync(2). - vfs.zfs.super_owner Allows regular users to perform privileged operations on files stored on ZFS file systems owned by him. Very careful with this one. - chflags(2) Not all the flags are supported. This still needs work. - ZFSBoot Support to boot off of ZFS pool. Not finished, AFAIK. Submitted by: dfr - Snapshot properties - New failure modes Before if write requested failed, system paniced. Now one can select from one of three failure modes: - panic - panic on write error - wait - wait for disk to reappear - continue - serve read requests if possible, block write requests - Refquota, refreservation properties Just quota and reservation properties, but don't count space consumed by children file systems, clones and snapshots. - Sparse volumes ZVOLs that don't reserve space in the pool. - External attributes Compatible with extattr(2). - NFSv4-ACLs Not sure about the status, might not be complete yet. Submitted by: trasz - Creation-time properties - Regression tests for zpool(8) command. Obtained from: OpenSolaris
OpenPOWER on IntegriCloud