- 05 Aug, 2021 2 commits
-
-
Ryan Moeller authored
Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
Richard Yao authored
Linux 4.11 added a new statx system call that allows us to expose crtime as btime. We do this by caching crtime in the znode to match how atime, ctime and mtime are cached in the inode. statx also introduced a new way of reporting whether the immutable, append and nodump bits have been set. It adds support for reporting compression and encryption, but the semantics on other filesystems is not just to report compression/encryption, but to allow it to be turned on/off at the file level. We do not support that. We could implement semantics where we refuse to allow user modification of the bit, but we would need to do a dnode_hold() in zfs_znode_alloc() to find out encryption/compression information. That would introduce locking that will have a minor (although unmeasured) performance cost. It also would be inferior to zdb, which reports far more detailed information. We therefore omit reporting of encryption/compression through statx in favor of recommending that users interested in such information use zdb. Signed-off-by:
Richard Yao <ryao@gentoo.org> Closes #8507
-
- 02 Aug, 2021 1 commit
-
-
Ryan Moeller authored
Now that we support NFSv4 ACLs on Linux, this can now be made the default across all platforms. Update the documentation and tests accordingly. Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
- 15 Jul, 2021 3 commits
-
-
Ryan Moeller authored
xattr compat cleanup
-
Ryan Moeller authored
Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
Ryan Moeller authored
Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
- 14 Jul, 2021 1 commit
-
-
Ryan Moeller authored
This property defaults to "on" so by default we do not miss xattrs in datasets received from pools for which the encoding cannot be known or may even be a mix of both. It can be turned "off" for a performance boost when it is known only the configured xattr_compat format is relevant. Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
- 13 Jul, 2021 6 commits
-
-
Ryan Moeller authored
This avoids activating feature@xattr_compat by default in TrueNAS while the feature is still waiting to be upstreamed. Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
Ryan Moeller authored
Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
Ryan Moeller authored
We want to be able to configure these checks to be skipped, ideally on a per-dataset basis. I haven't decided how to implement this. Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
Ryan Moeller authored
Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
Ryan Moeller authored
We don't need to check if the xattr exists before attempting to delete it. This was a carryover from an implementation detail on Linux. With this simplified, we can also reuse zfs_deleteextattr_impl in zfs_setextattr_impl. Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
Ryan Moeller authored
Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
- 12 Jul, 2021 1 commit
-
-
Ryan Moeller authored
Signed-off-by:
Ryan Moeller <ryan@iXsystems.com>
-
- 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 1 commit
-
-
наб 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
-