Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View


Tags: Architectures Platforms default
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

Architectures Platforms default
Brian Behlendorf
Use fallthrough macro

As of the Linux 5.9 kernel a fallthrough macro has been added which
should be used to anotate all intentional fallthrough paths.  Once
all of the kernel code paths have been updated to use fallthrough
the -Wimplicit-fallthrough option will because the default.  To
avoid warnings in the OpenZFS code base when this happened this
change applies these fallthrough macro to the kenel code.

Additional reading: https://lwn.net/Articles/794944/

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>

Pull-request: #12441 part 1/1
Brian Behlendorf
Use fallthrough macro

As of the Linux 5.9 kernel a fallthrough macro has been added which
should be used to anotate all intentional fallthrough paths.  Once
all of the kernel code paths have been updated to use fallthrough
the -Wimplicit-fallthrough option will because the default.  To
avoid warnings in the OpenZFS code base when this happened this
change applies these fallthrough macro to the kenel code.

Additional reading: https://lwn.net/Articles/794944/

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>

Pull-request: #12441 part 1/1
Brian Behlendorf
Enable /proc/diskstats for zvols

The /proc/diskstats accounting needs to be explicitly enabled
for block devices which do not use multi-queue.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #12066

Pull-request: #12440 part 1/1
George Amanakis
Avoid panic with recordsize > 128k, raw sending and no large_blocks

The current codebase does not support raw sending buffers with block
size > 128kB when large_blocks is not active. Instead of panicking
due to a NULL pointer dereference in dmu_dump_write() print out an
error message. Also during scrub if there are blocks > 128kB check
if large_blocks is active, and if not activate it.

Signed-off-by: George Amanakis <gamanakis@gmail.com>

Pull-request: #12438 part 1/1
George Amanakis
Avoid panic with recordsize > 128k, raw sending and no large_blocks

The current codebase does not support raw sending buffers with block
size > 128kB when large_blocks is not active. Instead of panicking
due to a NULL pointer dereference in dmu_dump_write() print out an
error message. Also during scrub if there are buffers with block size >
128kB check if large blocks is active, and if not activate it.

Signed-off-by: George Amanakis <gamanakis@gmail.com>

Pull-request: #12438 part 1/1
  • Debian 8 arm (BUILD): cloning zfs -  stdio
George Amanakis
Avoid panic with recordsize > 128k, raw sending and no large_blocks

The current codebase does not support raw sending buffers with block
size > 128kB when large_blocks is not active. Instead of panicking
due to a NULL pointer dereference in dmu_dump_write() print out an
error message.

Signed-off-by: George Amanakis <gamanakis@gmail.com>

Pull-request: #12438 part 1/1
George Amanakis
Avoid panic with recordsize > 128k, raw sending and no large_blocks

The current codebase does not support raw sending buffers with block
size > 128kB when large_blocks is not active. Instead of panicking
due to a NULL pointer dereference in dmu_dump_write() print out an
error message.

Signed-off-by: George Amanakis <gamanakis@gmail.com>

Pull-request: #12438 part 1/1
Jorgen Lundman
autoconf: allow Release to contain hyphen

Meta:          1
Name:          zfs-macOS

Signed-off-by: Jorgen Lundman <lundman@lundman.net>

Pull-request: #12437 part 1/1
Jorgen Lundman
Add zpool_disable_datasets_os() / zfs_unmount_os()

zpool_disable_datasets_os():
macOS needs to do a bunch of work to kick everything off zvols.

zfs_unmount_os():
This allows us to unmount any zvols that may be mounted. Like with
zfs destroy foo/vol

Signed-off-by: Jorgen Lundman <lundman@lundman.net>

Pull-request: #12436 part 1/1
Brian Behlendorf
Fix format specifier warnings

Commit 5dbf6c5a66d did not address these format specifier warnings
since they were introduced by an unrelated commit which had not
been rebased on 5dbf6c5a66d when merged.  Fix them.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>

Pull-request: #12435 part 2/2
Brian Behlendorf
Remove overlooked __sun_attr__ based macros

The __NORETURN, __CONST, and __PURE macros in the FreeBSD platform
code were based on the __sun_attr__ macro which was removed in
commit 5dbf6c5a6.  This caused a build failure because the
__NORETURN macro was still used in one place in kernel code.
The __CONST and __PURE macros were entirely unused.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>

Pull-request: #12435 part 1/1
George Amanakis
Avoid panic when attempting to raw send without large_blocks

Raw sending without the feature large_blocks being active is
unsupported and leads to a NULL pointer dereference. Handle this
gracefully by printing an error.

Signed-off-by: George Amanakis <gamanakis@gmail.com>

Pull-request: #12434 part 1/1
George Amanakis
Avoid panic when attempting to raw send without large_blocks

Raw sending withouth the feature large_blocks being active is
unsupported and leads to a NULL pointer dereference. Handle this
gracefully by printing an error.

Signed-off-by: George Amanakis <gamanakis@gmail.com>

Pull-request: #12434 part 1/1
Ryan Moeller
ZTS: Add tests for creation time

Signed-off-by: Ryan Moeller <ryan@iXsystems.com>

Pull-request: #12432 part 2/2
Ryan Moeller
Linux 4.11 compat: statx support

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

Pull-request: #12432 part 1/2
Ryan Moeller
ZTS: Add tests for creation time

Signed-off-by: Ryan Moeller <ryan@iXsystems.com>

Pull-request: #12432 part 2/2
  • Debian 8 arm (BUILD): cloning zfs -  stdio
  • Ubuntu 16.04 i386 (BUILD): cloning zfs -  stdio
  • Kernel.org Built-in x86_64 (BUILD): cloning zfs -  stdio
Ryan Moeller
Linux 4.11 compat: statx support

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

Pull-request: #12432 part 1/2
Ryan Moeller
ZTS: Add tests for creation time

Signed-off-by: Ryan Moeller <ryan@iXsystems.com>

Pull-request: #12432 part 2/2
Ryan Moeller
Linux 4.11 compat: statx support

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

Pull-request: #12432 part 1/2
Ryan Moeller
ZTS: Add tests for creation time

Signed-off-by: Ryan Moeller <ryan@iXsystems.com>

Pull-request: #12432 part 2/2
Ryan Moeller
Linux 4.11 compat: statx support

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

Pull-request: #12432 part 1/2
Ryan Moeller
ZTS: Add tests for creation time

Signed-off-by: Ryan Moeller <ryan@iXsystems.com>

Pull-request: #12432 part 2/2
Ryan Moeller
Linux 4.11 compat: statx support

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

Pull-request: #12432 part 1/2
George Melikov
Man zpool-scrub.8: describe sequential scrub

Add examples of scrub status.

Signed-off-by: George Melikov <mail@gmelikov.ru>

Pull-request: #12429 part 1/1
George Melikov
Man zpool-scrub.8: describe sequential scrub

Add examples of scrub status.

Signed-off-by: George Melikov <mail@gmelikov.ru>

Pull-request: #12429 part 1/1
Alexander Motin
Avoid small buffer copying on write.

It is wrong for arc_write_ready() to use zfs_abd_scatter_enabled to
decide whether to reallocate/copy the buffer, because the answer is
OS-specific and depends on the buffer size.  Instead of that use
abd_size_alloc_linear(), moved into public header.

Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored-By: iXsystems, Inc.

Pull-request: #12425 part 1/1
Alexander Motin
Fix/improve dbuf hits accounting.

Instead of clearing stats inside arc_buf_alloc_impl() do it inside
arc_hdr_alloc() and arc_release().  It fixes statistics being wiped
every time new dbuf is filled from ARC.

Remove b_l1hdr.b_l2_hits. L2ARC hits are accounted at b_l2hdr.b_hits.
With removal of the field compact struct l1arc_buf_hdr by 8 bytes.

Since the hits are accounted under hash lock, replace atomics with
simple increments.

Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored-By: iXsystems, Inc.

Pull-request: #12422 part 1/1
Alexander Motin
Optimize arc_l2c_only lists assertions.

It is very expensive and not informative to call multilist_is_empty()
for each arc_change_state() on debug builds to check for impossible.
Instead implement special index function for arc_l2c_only->arcs_list,
multilists, panicking on any attempt to use it.

Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored-By: iXsystems, Inc.

Pull-request: #12421 part 1/1
Alexander Motin
Use more atomics in refcounts.

Use atomic_load_64() for zfs_refcount_count() to prevent torn reads
on 32-bit platforms.  On 64-bit ones it should not change anything.

When built with ZFS_DEBUG but running without tracking enabled use
atomics instead of mutexes same as for builds without ZFS_DEBUG.
Since rc_tracked can't change live we can check it without lock.

Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored-By: iXsystems, Inc.

Pull-request: #12420 part 1/1
Alexander Motin
Add comment on metaslab_class_throttle_reserve() locking.

Signed-off-by: Alexander Motin <mav@FreeBSD.org>

Pull-request: #12419 part 1/1
hedong.zhang
Change the indent to 4 spaces

Pull-request: #12343 part 4/4
GitHub
Remove unnecessary whitespace

Remove unnecessary whitespace on the line

Pull-request: #12343 part 3/4
GitHub
Fix code style issues

Modify the code style to conform to the specification

Pull-request: #12343 part 2/4
GitHub
Modify checksum obtain method of QAT

CpaDcGeneratefooter function that obtain the checksum code does not support the CPA_DC_STATELESS mode. So we get the adler32 chencksum of the end of the zlib from dc_results

Pull-request: #12343 part 1/4
Trevor Bautista
Extend zpool-iostat to account for ZIO_PRIORITY_REBUILD

Previously, zpool-iostat did not display any data regarding rebuild I/Os
in either the latency/size histograms (-w/-l/-r) or the queue data (-q).
This fix essentially utilizes the existing infrastructure for tracking
rebuild queue data and displays this data in the proper places within
zpool-iostat's output.

Signed-off-by: Trevor Bautista <tbautista@newmexicoconsortium.org>
Signed-off-by: Trevor Bautista <tbautista@lanl.gov>

Pull-request: #12319 part 1/1
Jorgen Lundman
Take out abicheck so we can at least see if it fails elsewhere

We can not do the abi checks on macOS, it doesn't exist, so it is
something ZOL will have to do for us, each time.

Signed-off-by: Jorgen Lundman <lundman@lundman.net>

Pull-request: #12110 part 37/37
Ryan Moeller
Update ABI after xattr_compat

Signed-off-by: Ryan Moeller <ryan@iXsystems.com>

Pull-request: #11919 part 2/2
Ryan Moeller
Cross-platform xattr user namespace compatibility

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.

Add xattr_fallback property to skip fallbacks.

This property currently defaults to "on" so we do not miss xattrs in
datasets from porrls 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.

Future work will investigate how we can change the default to "off" and
automatically force it to "on" when we cannot know whether skipping the
fallbacks is safe.

TODO:

* New tests should be added.
* Performance optimizations should be investigated.

Signed-off-by: Ryan Moeller <ryan@iXsystems.com>

Pull-request: #11919 part 1/2