- 08 Jul, 2021 1 commit
-
-
Ryan Moeller authored
Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
- 07 Jul, 2021 2 commits
-
-
Ryan Moeller authored
Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
Ryan Moeller authored
OpenZFS 2.1.0 Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
- 02 Jul, 2021 1 commit
-
-
Brian Behlendorf authored
Signed-off-by:
Brian Behlendorf <behlendorf1@llnl.gov>
-
- 29 Jun, 2021 9 commits
-
-
Brian Behlendorf authored
Signed-off-by:
Brian Behlendorf <behlendorf1@llnl.gov>
-
Brian Behlendorf authored
Increase the Linux-Maximum version in the META file to 5.13. All of the required compatibility patches have been merged and the 5.13 kernel has been officially released. Signed-off-by:
Brian Behlendorf <behlendorf1@llnl.gov>
-
Laurențiu Nicola authored
Commit 6fc30992 broke the quoting when invoking the mail program, revert that change. Signed-off-by:
Laurențiu Nicola <lnicola@dend.ro> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Tony Hutter <hutter2@llnl.gov>
-
Alexander Motin authored
The number of sublists in a multilist is relatively small. We dont need 64 bits to calculate an index. 32 bits is sufficient and makes the code more efficient. Reviewed-by:
Matthew Ahrens <mahrens@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Mark Maybee <mark.maybee@delphix.com> Signed-off-by:
Alexander Motin <mav@FreeBSD.org> Sponsored-By: iXsystems, Inc. Closes #12288
-
Michal Vasilek authored
plymouth --command splits the command on spaces which means that zfs-load-key was getting the filesystem name enclosed in single quotes (since 13c59bb7 ) and failing. This commit fixes it by piping the password directly to the command similar to how it's done in other scripts (initramfs, dracut without plymouth). Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Michal Vasilek <michal@vasilek.cz> Related-to: #9193 Related-to: #9202 Closes #12147
-
Rich Ercolani authored
The stock zstd code expects some helpers from ASAN if present. This works fine in userland, but in kernel, KASAN also gets detected, and lacks those helpers. So let's make some empty substitutes for that case. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rich Ercolani <rincebrain@gmail.com> Closes #12232
-
Alexander Motin authored
While abd_verify() does nothing when built without debug, compiler can't optimize it out by itself due to calls to external list_*() and abd_verify_scatter(). This commit makes it explicit. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Adam Moss <c@yotes.com> Reviewed-by:
George Melikov <mail@gmelikov.ru> Signed-off-by:
Alexander Motin <mav@FreeBSD.org> Sponsored-By: iXsystems, Inc. Closes #12280
-
Ryan Moeller authored
Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
Ryan Moeller authored
ZFS on Linux originally implemented xattr namespaces in a way that is incompatible with other operating systems. On illumos, xattrs do not have namespaces. Every xattr name is visible. FreeBSD has two universally defined namespaces: EXTATTR_NAMESPACE_USER and EXTATTR_NAMESPACE_SYSTEM. The system namespace is used for protected FreeBSD-specific attributes such as MAC labels and pnfs state. These attributes have the namespace string "freebsd:system:" prefixed to the name in the encoding scheme used by ZFS. The user namespace is used for general purpose user attributes and obeys normal access control mechanisms. These attributes have no namespace string prefixed, so xattrs written on illumos are accessible in the user namespace on FreeBSD, and xattrs written to the user namespace on FreeBSD are accessible by the same name on illumos. Linux has several xattr namespaces. On Linux, ZFS encodes the namespace in the xattr name for every namespace, including the user namespace. As a consequence, an xattr in the user namespace with the name "foo" is stored by ZFS with the name "user.foo" and therefore appears on FreeBSD and illumos to have the name "user.foo" rather than "foo". Conversely, none of the xattrs written on FreeBSD or illumos are accessible on Linux unless the name happens to be prefixed with one of the Linux xattr namespaces, in which case the namespace is stripped from the name. This makes xattrs entirely incompatible between Linux and other platforms. We want to make the encoding of user namespace xattrs compatible across platforms. A critical requirement of this compatibility is for xattrs from existing pools from FreeBSD and illumos to be accessible by the same names in the user namespace on Linux. It is also necessary that existing pools with xattrs written by Linux retain access to those xattrs by the same names on Linux. Making user namespace xattrs from Linux accessible by the correct names on other platforms is important. The handling of other namespaces is not required to be consistent. Add a fallback mechanism for listing and getting xattrs to treat xattrs as being in the user namespace if they do not match a known prefix. When setting user namespace xattrs, do not prefix the namespace to the name. If the xattr is already present with the namespace prefix, remove it so only the non-prefixed version persists. This ensures other platforms will be able to read the xattr with the correct name. Do not allow setting or getting xattrs with a name that is prefixed with one of the namespace names used by ZFS on supported platforms. Make xattr namespace compatibility dependent on a new feature. New pools will use the compatible namespace encoding by default, and existing pools will continue using the old Linux-specific encoding until the feature is enabled. Allow choosing between cross-platform compatability and legacy Linux compatibility with a per-dataset property. This facilitates replication between hosts with different compatibility needs. TODO: * New tests should be added. * Performance optimizations should be investigated. Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
- 24 Jun, 2021 10 commits
-
-
Brian Behlendorf authored
Unlike most other properties the 'compatibility' property is stored in the pool config object and not the DMU_OT_POOL_PROPS object. This had the advantage that the compatibility information is available without needing to fully import the pool (it can be read with zdb). However, this means we need to make sure to update both the copy of the config in the MOS and the cache file. This wasn't being done. This commit adds a call to spa_async_request() to ensure the copy of the config in the cache file gets updated as well as the one stored in the pool. This same change is made for the 'comment' property which suffers from the same inconsistency. Reviewed-by:
Sean Eric Fagan <sef@ixsystems.com> Reviewed-by:
Colm Buckley <colm@tuatha.org> Signed-off-by:
Brian Behlendorf <behlendorf1@llnl.gov> Closes #12261 Closes #12276
-
Paul Dagnelie authored
A couple flags weren't being copied in the case where we're doing size estimation on a resume. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Matthew Ahrens <mahrens@delphix.com> Signed-off-by:
Paul Dagnelie <pcd@delphix.com> Closes: #12266
-
jumbi77 authored
According to current zfs man page zfs_metaslab_mem_limit should be 25 instead of 75. Reviewed-by:
Matthew Ahrens <mahrens@delphix.com> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Paul Dagnelie <pcd@delphix.com> Reviewed-by:
Mark Maybee <mark.maybee@delphix.com> Signed-off-by: jumbi77@users.noreply.github.com Closes #12273
-
Rich Ercolani authored
zstreamdump was replaced with "zstream dump"; let's stop using the old name, compat symlink or no. Reviewed-by:
George Melikov <mail@gmelikov.ru> Reviewed-by:
Ryan Moeller <ryan@iXsystems.com> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rich Ercolani <rincebrain@gmail.com> Closes #12277
-
Jonathon authored
Libera have made a webchat client available. This change builds on #12127. Reviewed-by:
Matthew Ahrens <mahrens@delphix.com> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Jonathon Fernyhough <jonathon@m2x.dev> Closes #12251
-
Attila Fülöp authored
Compiling with gcc 11.1.0 produces three new warnings. Change the code slightly to avoid them. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Matthew Ahrens <mahrens@delphix.com> Signed-off-by:
Attila Fülöp <attila@fueloep.org> Closes #12130 Closes #12188 Closes #12237
-
Brian Behlendorf authored
The receive-o-x_props_override test case reliably fails on the FreeBSD main builders (but not on Linux), until the root cause is understood add this test to the FreeBSD exception list. On Linux the alloc_class_012_pos test case may occasionally fail. This is a known false positive which has also been added to the Linux exception list until the test can be made entirely reliable. Reviewed-by:
George Melikov <mail@gmelikov.ru> Reviewed-by:
John Kennedy <john.kennedy@delphix.com> Reviewed-by:
Ryan Moeller <ryan@iXsystems.com> Signed-off-by:
Brian Behlendorf <behlendorf1@llnl.gov> Closes #12272
-
Rich Ercolani authored
ZFS loves using %llu for uint64_t, but that requires a cast to not be noisy - which is even done in many, though not all, places. Also a couple places used %u for uint64_t, which were promoted to %llu. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rich Ercolani <rincebrain@gmail.com> Closes #12233
-
Antonio Russo authored
This reverts commit 13fac098. Per the discussion in #11531, the reverted commit---which intended only to be a cleanup commit---introduced a subtle, unintended change in behavior. Care was taken to partially revert and then reapply 10b3c7f5 which would otherwise have caused a conflict. These changes were squashed in to this commit. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Suggested-by: @chrisrd Suggested-by: robn@despairlabs.com Signed-off-by:
Antonio Russo <aerusso@aerusso.net> Closes #11531 Closes #12227
-
Alexander Motin authored
wmsum was designed exactly for cases like these with many updates and rare reads. It allows to completely avoid atomic operations on congested global variables. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Mark Maybee <mark.maybee@delphix.com> Signed-off-by:
Alexander Motin <mav@FreeBSD.org> Sponsored-By: iXsystems, Inc. Closes #12172
-
- 22 Jun, 2021 1 commit
-
-
наб authored
This replaces the generic libspl atomic.c atomics implementation with one based on builtin gcc atomics. This functionality was added as an experimental feature in gcc 4.4. Today even CentOS 7 ships with gcc 4.8 as the default compiler we can make this the default. Furthermore, the builtin atomics are as good or better than our hand-rolled implementation so it's reasonable to drop that custom code. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #11904 Closes #12252 Closes #12244
-
- 17 Jun, 2021 1 commit
-
-
George Amanakis authored
In case we have I/O and try to remove an L2ARC device a deadlock might occur. arc_read()->zio_read()->zfs_blkptr_verify() waits for SCL_VDEV to be dropped while holding the hash_lock. However, spa_l2cache_load() holds SCL_ALL and waits for the hash_lock in l2arc_evict(). Fix this by moving zfs_blkptr_verify() to the top top arc_read() before the hash_lock is taken. Verify the block pointer and return a checksum error if damaged rather than halting the system, by using BLK_VERIFY_LOG instead of BLK_VERIFY_HALT. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Mark Maybee <mark.maybee@delphix.com> Signed-off-by:
George Amanakis <gamanakis@gmail.com> Closes #12054
-
- 15 Jun, 2021 5 commits
-
-
наб authored
Turns out $ZPOOL_IMPORT_OPTS expands in a shell-like fashion, yielding 'import' '-aN' '-o' 'cachefile=none' for an unset variable, and 'import' '-aN' '-o' 'cachefile=none' 'word1' 'word2' for a white-spaced one, but ${ZPOOL_IMPORT_OPTS} expands like "${Z_I_O}" would in a shell, yielding 'import' '-aN' '-o' 'cachefile=none' '' (empty) and 'import' '-aN' '-o' 'cachefile=none' 'word1 word2' (spaced) Fixes eec5ba11 "dracut: 90zfs: respect zfs_force=1 on systemd systems" Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
John Kennedy <john.kennedy@delphix.com> Signed-off-by:
Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes: #12231
-
Matthew Ahrens authored
vdev_draid_min_asize() returns the minimum size of a child vdev. This is used when determining if a disk is big enough to replace a child. It's also used by zdb to determine how big of a child to make to test replacement. vdev_draid_min_asize() says that the child’s asize has to be at least 1/Nth of the entire draid’s asize, which is the same logic as raidz. However, this contradicts the code in vdev_draid_open(), which calculates the draid’s asize based on a reduced child size: An additional 32MB of scratch space is reserved at the end of each child for use by the dRAID expansion feature So the problem is that you can replace a draid disk with one that’s vdev_draid_min_asize(), but it actually needs to be larger to accommodate the additional 32MB. The replacement is allowed and everything works at first (since the reserved space is at the end, and we don’t try to use it yet), but when you try to close and reopen the pool, vdev_draid_open() calculates a smaller asize for the draid, because of the smaller leaf, which is not allowed. I think the confusion is that vdev_draid_min_asize() is correctly returning the amount of required *allocatable* space in a leaf, but the actual *size* of the leaf needs to be at least 32MB more than that. ztest_vdev_attach_detach() assumes that it can attach that size of device, and it actually can (the kernel/libzpool accepts it), but it then later causes zdb to not be able to open the pool. This commit changes vdev_draid_min_asize() to return the required size of the leaf, not the size that draid will make available to the metaslab allocator. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Mark Maybee <mark.maybee@delphix.com> Signed-off-by:
Matthew Ahrens <mahrens@delphix.com> Closes #11459 Closes #12221
-
Paul Zuchowski authored
In zfs_znode_alloc we always hash inodes. If the znode is unlinked, we do not need to hash it. This fixes the problem where zfs_suspend_fs is doing zrele (iput) in an async fashion, and zfs_resume_fs unlinked drain processing will try to hash an inode that could still be hashed, resulting in a panic. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Alan Somers <asomers@gmail.com> Signed-off-by:
Paul Zuchowski <pzuchowski@datto.com> Closes #9741 Closes #11223 Closes #11648 Closes #12210
-
Rich Ercolani authored
Having an old enough version of "file" and no "uncompress" program installed can cause rpmbuild as root to crash and mangle rpmdb. So let's add a build dependency for RPM-based systems. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Tony Hutter <hutter2@llnl.gov> Signed-off-by:
Rich Ercolani <rincebrain@gmail.com> Closes: #12071 Closes: #12168
-
Brian Behlendorf authored
Commit 86b5f4c1 added a new zfs_clone_livelist_dedup.ksh test case but didn't include it in the Makefile.am. This results in the test not being included in the dist tarball so it's never run by the CI. Reviewed-by:
John Kennedy <john.kennedy@delphix.com> Reviewed-by:
Serapheim Dimitropoulos <serapheim@delphix.com> Signed-off-by:
Brian Behlendorf <behlendorf1@llnl.gov> Closes: #12224
-
- 10 Jun, 2021 10 commits
-
-
Brian Behlendorf authored
Signed-off-by:
Brian Behlendorf <behlendorf1@llnl.gov>
-
Alexander Motin authored
This commit partially reverts changes to multilists in PR 7968 (multi-threaded spa-sync()) and adds some cache line alignments to separate read-only multilists and heavily modified refcount's to different cache lines. Reviewed-by:
Matthew Ahrens <mahrens@delphix.com> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Alexander Motin <mav@FreeBSD.org> Sponsored-by: iXsystems, Inc. Closes #12158
-
наб authored
On systemd systems provide an environment generator in order to respect the zfs_force=1 kernel command line option. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Tony Nguyen <tony.nguyen@delphix.com> Signed-off-by:
Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #11403 Closes #12195
-
Alexander Motin authored
This mostly reverts "3537 want pool io kstats" commit of 8 years ago. From one side this code using pool-wide locks became pretty bad for performance, creating significant lock contention in I/O pipeline. From another, there are more efficient ways now to obtain detailed statistics, while this statistics is illumos-specific and much less usable on Linux and FreeBSD, reported only via procfs/sysctls. This commit does not remove KSTAT_TYPE_IO implementation, that may be removed later together with already unused KSTAT_TYPE_INTR and KSTAT_TYPE_TIMER. Reviewed-by:
Matthew Ahrens <mahrens@delphix.com> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Alexander Motin <mav@FreeBSD.org> Sponsored-By: iXsystems, Inc. Closes #12212
-
Rich Ercolani authored
Starting in Linux 5.10, trying to write to /dev/{null,zero} errors out. Prefer to inform people when this happens rather than hoping they guess what's wrong. Reviewed-by:
Antonio Russo <aerusso@aerusso.net> Reviewed-by:
Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
John Kennedy <john.kennedy@delphix.com> Signed-off-by:
Rich Ercolani <rincebrain@gmail.com> Closes: #11991
-
наб authored
Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Ryan Moeller <ryan@iXsystems.com> Signed-off-by:
Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #12116
-
наб authored
Reviewed-by:
Richard Laager <rlaager@wiktel.com> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #12212
-
наб authored
Most notably this fixes the vdev_id(8) non-.Xrs in vdev_id.conf.5 Reviewed-by:
Richard Laager <rlaager@wiktel.com> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #12212
-
наб authored
The pages moved as follows: zpool-features.{5 => 7} spl{-module-parameters.5 => .4} zfs{-module-parameters.5 => .4} zfs-events.5 => into zpool-events.8 zfsconcepts.{8 => 7} zfsprops.{8 => 7} zpoolconcepts.{8 => 7} zpoolprops.{8 => 7} Reviewed-by:
Richard Laager <rlaager@wiktel.com> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Co-authored-by:
Daniel Ebdrup Jensen <debdrup@FreeBSD.org> Closes #12149 Closes #12212
-
наб authored
The prevailing style is to use either nothing, or the originating organisational umbrella (here: OpenZFS), and these aren't Linux manpages This also deduplicates the substitution code, and makes adding/removing sexions simpler in future Reviewed-by:
Richard Laager <rlaager@wiktel.com> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #12212
-