aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* zpool should call zfs_nicestrtonum() with non-NULL handleToomas Soome2021-10-201-3/+4
| | | | | | | | | | When zfs_nicestrtonum() is called and there will be an error, the message is left in libzfs handle, if provided. We can use this message, to provide better feedback for user. Reviewed-by: Igor Kozhukhov <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Toomas Soome <[email protected]> Closes #12650
* Remove code duplicationPawel Jakub Dawidek2021-10-181-42/+33
| | | | | | | | | Remove code duplication by moving code responsible for partial block zeroing to a separate function: dnode_partial_zero(). Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Pawel Jakub Dawidek <[email protected]> Closes #12627
* Notify on UNAVAIL statechangeFrancesco Mazzoli2021-10-151-2/+3
| | | | | | | | | | | `UNAVAIL` is maybe not quite as concerning as `DEGRADED`, but still an event of notice, in my opinion. For example it is triggered when a drive goes missing. Reviewed-by: Don Brady <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Francesco Mazzoli <[email protected]> Closes #12629 Closes #12630
* zdb: fix overflow of time estimationTeodor Spæren2021-10-151-4/+5
| | | | | | | | | | The calculation of estimated time remaining in zdb -cc could overflow, as reported in #10666. This patch fixes this, by using uint64_t instead of ints in the calculations. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Teodor Spæren <[email protected]> Closes #10666 Closes #12610
* Remove FreeBSD's local copy of the dmu_buf_hold_array() functionPawel Jakub Dawidek2021-10-133-20/+3
| | | | | | | | Make the main dmu_buf_hold_array() function non-static. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Pawel Jakub Dawidek <[email protected]> Closes #12628
* zio: use unsigned values for enumTeodor Spæren2021-10-111-36/+36
| | | | | | | | | | | | | | | | | cppcheck complains about the use of 1 << 31, because enums are signed ints which cannot represent this. As discussed in issue #12611, it appears that with C99, we can use an unsiged int for the enum, on most platforms. I've crafted this commit for just the include/sys/zio.h header, as it's the only one with a shift of 31. If this is something we want to adopt in the rest of the project, I will go through and apply it to the rest of the project. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Jorgen Lundman <[email protected]> Signed-off-by: Teodor Spæren <[email protected]> Closes #12611 Closes #12615
* Export minimal zfs_refcount interfacesBrian Behlendorf2021-10-111-0/+8
| | | | | | | | | | Lustre makes light use of the zfs_refcount interfaces which isn't a problem when using a non-debug build of OpenZFS. However, when debugging is enabled the required symbols are not exported. Reviewed-by: Olaf Faaland <[email protected]> Reviewed-by: Tony Hutter <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #12613
* ZTS: Add known exceptionsBrian Behlendorf2021-10-111-0/+3
| | | | | | | | | | | | | | | | | | Add the following test failures to the exception list for FreeBSD to ensure we notice new unexpected failures. pool_checkpoint/checkpoint_big_rewind pool_checkpoint/checkpoint_indirect And the following for Linux. zvol/zvol_misc/zvol_misc_snapdev Reviewed-by: George Melikov <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Issue #12621 Issue #12622 Issue #12623 Closes #12624
* ZTS: deadman_sync fixBrian Behlendorf2021-10-111-2/+2
| | | | | | | | | | In the CI environment it's possible for events to be slightly delayed resulting in 4, instead of 5, events appearing in the log file. This isn't a problem and should be considered a success to avoid false positive test results. Reviewed-by: George Melikov <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #12625
* initramfs: use correct dataset for rootfs on rollback=1nachtgeist2021-10-081-0/+1
| | | | | | | | | | | | When booting with root=zfs:rpool/myrootfs@foosnapshot rollback=1, myrootfs and its descendants get rolled back to foosnapshot, however ZFS_BOOTFS still contains myrootfs@foosnapshot instead of the actually desired value of myrootfs. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: Daniel Reichelt <[email protected]> Closes #12585 Closes #12586
* Fail invalid incremental recursive send gracefullyRyan Moeller2021-10-082-4/+21
| | | | | | | | | | | | | | | | | | | | | zfs send -R -i snap1 pool/ds@snap1 is an invalid invocation of zfs send because the incremental source and target snapshots are the same. We have an error message for this condition, but we don't make it there because of a failed assert while iterating through the dataset's snapshots. Check for NULL to avoid the assert so we can make it to the error message. Test this form of invalid send invocation in rsend tests. Fix the rsend_016_neg test while here: log_neg itself doesn't fail the test, and writing to /dev/null is not supported on all Linux kernels. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: John Kennedy <[email protected]> Reviewed-by: Paul Dagnelie <[email protected]> Signed-off-by: Ryan Moeller <[email protected]> Closes #11121 Closes #12533
* Correct refcount_add in dmu_zfetchRich Ercolani2021-10-082-1/+10
| | | | | | | | | | | | refcount_add_many(foo,N) is not the same as for (i=0; i < N; i++) { refcount_add(foo); } Unfortunately, this is only actually true with debug kernels and reference_tracking_enable=1. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #12589 Closes #12602
* arcstat: Fix integer division with python3Valmiky Arquissandas2021-10-081-33/+33
| | | | | | | | | | | | | | The arcstat script requests compatibility with python2 and python3, but PEP 238 modified the / operator and results in erroneous output when run under python3. This commit replaces instances of / with //, yielding the expected result in both versions of Python. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: John Kennedy <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Valmiky Arquissandas <[email protected]> Closes #12603
* Simplify and document OpenZFS library dependenciesBrian Behlendorf2021-10-0721-1434/+1989
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For those not already familiar with the code base it can be a challenge to understand how the libraries are laid out. This has sometimes resulted in functionality being added in the wrong place. To help avoid that in the future this commit documents the high-level dependencies for easy reference in lib/Makefile.am. It also simplifies a few things. - Switched libzpool dependency on libzfs_core to libzutil. This change makes it clear libzpool should never depend on the ioctl() functionality provided by libzfs_core. - Moved zfs_ioctl_fd() from libzutil to libzfs_core and renamed it lzc_ioctl_fd(). Normal access to the kmods should all be funneled through the libzfs_core library. The sole exception is the pool_active() which was updated to not use lzc_ioctl_fd() to remove the libzfs_core dependency. - Removed libzfs_core dependency on libzutil. - Removed the lib/libzfs/os/freebsd/libzfs_ioctl_compat.c source file which was all dead code. - Removed libzfs_core dependency from mkbusy and ctime test utilities. It was only needed for some trivial wrapper functions and that code is easy to replicate to shed the unneeded dependency. Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Tony Hutter <[email protected]> Reviewed-by: Don Brady <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #12602
* Remove zdb and libzpool from initramfs imageSerapheim Dimitropoulos2021-10-071-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | = Motivation At Delphix we are heavy users of kernel crash dumps that are captured through a crash kernel that is spawned whenever the main kernel panics. The way that this works internally is that a certain amount of memory is reserved while the main system is running so the initramfs of the crash kernel can be loaded when a panic occurs. In order to keep reserved memory at minimum we've been historically trying to identify the binaries that are part of the kernel's initramfs that are big and finding ways of either making them smaller or do not include them in the initramfs image. An example is always stripping the DWARF info of the ZFS kernel module copy that is included in the initramfs image of both our running and our crash kernel (the difference in size there is 76MB vs 4MB). We've recently identified that libzpool has been the largest binary in our initramfs images - currently sized around 17MB. = This Patch The ZFS scripts do not explicitly copy libzpool to initramfs. They copy zdb which pulls in libzpool as a dependency. Given that both zdb and libzpool are not really essential for initramfs (e.g. we'll still have access to the once the root filesystem is unpacked) this patch removes them from initramfs. Reviewed-by: Richard Laager <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: John Kennedy <[email protected]> Reviewed-by: George Melikov <[email protected]> Signed-off-by: Serapheim Dimitropoulos <[email protected]> Closes #12616
* Document additional -c caveatRich Ercolani2021-10-051-0/+3
| | | | | | | | | | | One might expect "send data as it is on disk, and cannot trigger compression changes" to imply "does not attempt to compress data that was not compressed on the sender." One would be mistaken. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #12570
* Rescan enclosure sysfs path on importTony Hutter2021-10-049-63/+169
| | | | | | | | | | | | | | When you create a pool, zfs writes vd->vdev_enc_sysfs_path with the enclosure sysfs path to the fault LEDs, like: vdev_enc_sysfs_path = /sys/class/enclosure/0:0:1:0/SLOT8 However, this enclosure path doesn't get updated on successive imports even if enclosure path to the disk changes. This patch fixes the issue. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Tony Hutter <[email protected]> Closes #11950 Closes #12095
* Reject zfs send -RI with nonexistent fromsnapRich Ercolani2021-10-041-0/+17
| | | | | | | | | Right now, zfs send -I dataset@nonexistent dataset@existent fails, but zfs send -RI dataset@nonexistent dataset@existent does not. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #12574 Closes #12575
* ZFS: Remove a redundant if condition (#12598)Attila Fülöp2021-10-021-3/+1
| | | | | | | | | | Commit 0c03d21ac99ebdbe left in a redundant if condition while removing some code. Just remove it. Reviewed-by: George Melikov <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes #12598
* Proper support for DESTDIR and INSTALL_MOD_PATHJosé Luis Salvador Rufo2021-10-011-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | The environment variables DESTDIR and INSTALL_MOD_PATH must be mutually exclusive. https://www.gnu.org/prep/standards/html_node/DESTDIR.html https://www.kernel.org/doc/Documentation/kbuild/modules.txt This issue was discussed in this Buildroot thread: https://lists.buildroot.org/pipermail/buildroot/2021-August/621350.html I saw this behavior in other different projects, as: - Yocto Project: https://www.yoctoproject.org/pipermail/meta-freescale/2013-August/004307.html - Google IA Coral: https://coral.googlesource.com/linux-imx-debian/+/refs/heads/master/debian/rules For the above reasons, INSTALL_MOD_PATH will be set as DESTDIR by default. Reviewed-by: Tony Hutter <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: José Luis Salvador Rufo <[email protected]> Signed-off-by: Romain Naour <[email protected]> Closes #12577
* ZTS: Minimize udev_wait in zvol_misc testsRyan Moeller2021-10-017-35/+35
| | | | | | | | | | | | | | | | | | | The zvol_misc tests, in particular zvol_misc_volmode, make use of a common udev_wait function to wait for zvol devices in /dev to quiesce on Linux. On other platforms this function currently only sleeps for one second before returning. This is insufficient, and zvol_misc_volmode has been flaky on FreeBSD as a result. Replace udev_wait with block_device_wait, passing through the optional device parameter where possible. Rearrange a few checks to strengthen the verifications we are making and avoid unnecessarily sleeping. We must keep udev_wait in a couple places to pass in Github CI workflows. Remove zvol_misc_volmode from the maybe failing tests on FreeBSD in zts-report.py. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: Ryan Moeller <[email protected]> Closes #12583
* libspl: fix warning about missing spl_pagesize declarationÉrico Nogueira Rolim2021-09-241-0/+1
| | | | | | | | | Though it's unlikely anyone will alter its signature, avoids any possible type mismatch. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Tony Nguyen <[email protected]> Signed-off-by: Érico Nogueira <[email protected]> Closes #12567
* Assorted parameter changes for performance testsJohn Wren Kennedy2021-09-2111-5/+14
| | | | | | | | | | | * Add async runs for sequential_writes, random_readwrite_fixed and random_writes * Remove some larger block sizes that give similar results to others * Remove nthreads == 4 from random_writes_zil test Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Tony Nguyen <[email protected]> Signed-off-by: John Kennedy <[email protected]> Closes #12576
* Handle partial reads in zfs_readRich Ercolani2021-09-201-0/+8
| | | | | | | | | | | | | | | | | | | Currently, dmu_read_uio_dnode can read 64K of a requested 1M in one loop, get EFAULT back from zfs_uiomove() (because the iovec only holds 64k), and return EFAULT, which turns into EAGAIN on the way out. EAGAIN gets interpreted as "I didn't read anything", the caller tries again without consuming the 64k we already read, and we're stuck. This apparently works on newer kernels because the caller which breaks on older Linux kernels by happily passing along a 1M read request and a 64k iovec just requests 64k at a time. With this, we now won't return EFAULT if we got a partial read. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #12370 Closes #12509 Closes #12516
* Upstream: unmount snapshots before destroying them on macOSJorgen Lundman2021-09-205-1/+23
| | | | | | | | | | | | | Add function zfs_destroy_snaps_nvl_os() call. The main issue is that macOS needs to unmount any mounted snapshots before they can be destroyed. Other platforms can handle this in the kernel, but sending a storm of zed events to unmount seems undesirable when we can do it in userland to start with. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: Jorgen Lundman <[email protected]> Co-authored-by: ilovezfs <[email protected]> Closes #12550
* Added test for being able to read various variants of zstdRich Ercolani2021-09-204-2/+59
| | | | | | | | | | | | | As detailed in #12022 and #12008, it turns out the current zstd implementation is quite nonportable, and results in various configurations of ondisk header that only each platform can read. So I've added a test which contains a dataset with a file written by Linux/x86_64 and one written by FBSD/ppc64. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #12030
* Really zero the zero pageAlexander Motin2021-09-171-0/+1
| | | | | | | | | | | | | | While switching abd_zero_buf allocation KPI I've missed the fact that kmem_zalloc() zeroed the allocation, while kmem_cache_alloc() does not. Add explicit bzero() after it. I don't think it should have caused real problems, but leaking one memory page content all over the pool is not good. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Brian Atkinson <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Alexander Motin <[email protected]> Closes #12569
* Avoid panic in case of pool errors and missing L2ARCGeorge Amanakis2021-09-161-1/+6
| | | | | | | | | | | | | | | In case an ARC buffer is allocated only on L2ARC, and there are underlying errors in a pool with the cache device in faulty state, a panic can occur in arc_read_done()->arc_hdr_destroy()-> arc_hdr_l2arc_destroy()->arc_hdr_clear_flags() when trying to free the ARC buffer. Fix this by discarding the buffer's identity in arc_hdr_destroy(), in case the buffer is not empty, before calling arc_hdr_l2hdr_destroy(). Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Alexander Motin <[email protected]> Signed-off-by: George Amanakis <[email protected]> Closes #12392
* Linux 5.14 compat: METABrian Behlendorf2021-09-151-1/+1
| | | | | | | | | Increase the Linux-Maximum version in the META file to 5.14. All of the required compatibility patches have been merged and the 5.14 kernel has been officially released. Reviewed-by: Tony Hutter <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #12565
* Temporarily use root credentials to mount snapshots in .zfsAllan Jude2021-09-141-3/+7
| | | | | | | | | | | | | | | | | | When mounting a snapshot in the .zfs/snapshots control directory, temporarily assume roots credentials to perform the VFS_MOUNT(). This allows regular users and users inside jails to access these snapshots. The regular usermount code is not helpful here, since it requires that the user performing the mount own the mountpoint, which won't be the case for .zfs/snapshot/<snapname> Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Tony Nguyen <[email protected]> Signed-off-by: Allan Jude <[email protected]> Sponsored-By: Modirum MDPay Sponsored-By: Klara Inc. Closes #11312
* Use fallthrough macroBrian Behlendorf2021-09-1437-40/+88
| | | | | | | | | | | | | | | 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 happens apply the fallthrough macro. Additional reading: https://lwn.net/Articles/794944/ Reviewed-by: Tony Nguyen <[email protected]> Reviewed-by: George Melikov <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #12441
* Iterate encrypted clones at zvol_create_minorJorgen Lundman2021-09-131-0/+64
| | | | | | | | | | | | | | | Userland figures out which encryption-root keys are required to load, and issues ZFS_IOC_LOAD_KEY. The tail section of spa_keystore_load_wkey() will call zvol_create_minors() on the encryption-root object. Any clones of the encrypted zvol will not be plumbed. This commits adds additional logic to detect if zvol has clones, and is encrypted, then adds these to the list of zvols to call zvol_create_minors() on. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Jorgen Lundman <[email protected]> Closes #12471
* Fixed data integrity issue when underlying disk returns errorArun KV2021-09-131-3/+31
| | | | | | | | | | | | | | | | | | Errors in zil_lwb_write_done() are not propagated to zil_lwb_flush_vdevs_done() which can result in zil_commit_impl() not returning an error to applications even when zfs was not able to write data to the disk. Remove the ZIO_FLAG_DONT_PROPAGATE flag from zio_rewrite() to allow errors to propagate and consolidate the error handling for flush and write errors to a single location (rather than having error handling split between the "write done" and "flush done" handlers). Reviewed-by: George Wilson <[email protected]> Reviewed-by: Prakash Surya <[email protected]> Signed-off-by: Arun KV <[email protected]> Closes #12391 Closes #12443
* ZTS: Waiting for zvols to be availableBrian Behlendorf2021-09-134-7/+8
| | | | | | | | | | | This is a follow up patch for PR #12515 which addresses some additional ZTS tests which are unreliable are should explicitly wait for the required zvols to be available. Reviewed-by: John Kennedy <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: @Theo13111 Signed-off-by: Brian Behlendorf <[email protected]> Closes #12553
* Verify embedded blkptr's in arc_read()Brian Behlendorf2021-09-092-7/+14
| | | | | | | | | | | | | | | | The block pointer verification check in arc_read() should also cover embedded block pointers. While highly unlikely, accessing a damaged block pointer can result in panic. To further harden the code extend the existing check to include embedded block pointers and add a comment explaining the rational for this sanity check. Lastly, correct a flaw in zfs_blkptr_verify() so the error count is checked even when checking a untrusted config to verify the non-pool-specific portions of a block pointer. Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: Tony Nguyen <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #12535
* Upstream: Add snapshot and zvol eventsJorgen Lundman2021-09-098-1/+70
| | | | | | | | | | | | | | For kernel to send snapshot mount/unmount events to zed. For kernel to send symlink creates/removes on zvol plumbing. (/dev/run/dsk/zvol/$pool/$zvol -> /dev/diskX) If zed misses the ENODEV, all errors after are EINVAL. Treat any error as kernel module failure. Reviewed-by: Tony Hutter <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Jorgen Lundman <[email protected]> Closes #12416
* Linux 5.15 compat: get_acl()Brian Behlendorf2021-09-093-9/+52
| | | | | | | | | | | | | | Kernel commits 332f606b32b6 ovl: enable RCU'd ->get_acl() 0cad6246621b vfs: add rcu argument to ->get_acl() callback Added compatibility code to detect the new ->get_acl() interface and correctly handle the case where the new rcu argument is set. Reviewed-by: Coleman Kane <[email protected]> Reviewed-by: Tony Hutter <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #12548
* Allow sending corrupt snapshots even if metadata is corruptedAllan Jude2021-09-091-0/+2
| | | | | | | | | | | | When zfs_send_corrupt_data is set, use the TRAVERSE_HARD flag, so traverse_visitbp() will not fail with ECKSUM if a blockpointer cannot be read, but rather will continue and send the objects it can. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: Allan Jude <[email protected]> Sponsored-By: Klara Inc. Sponsored-By: WHC Online Solutions Inc. Closes #12541
* arc: Drop an incorrect assertRich Ercolani2021-09-081-1/+0
| | | | | | | | | | | | | Unfortunately, there was an overzealous assertion that was (in pretty specific circumstances) false, causing failure. This assertion was added in error, so we're removing it. Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: George Wilson <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #9897 Closes #12020 Closes #12246
* Upstream: zdb inode mappingJorgen Lundman2021-09-081-0/+11
| | | | | | | | | | | Unfortunately macOS reserves inode ID numbers 0-15, and we can not used them. In macOS port we simply map them really high IDs. Normally this is hidden inside the _os implementation, but this is the one place in the common source files. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Jorgen Lundman <[email protected]> Closes #12530
* Compressed receive with different ashift can result in incorrect PSIZE on diskPaul Dagnelie2021-09-081-0/+12
| | | | | | | | | | | | | | We round up the psize to the nearest multiple of the asize or to the lsize, whichever is smaller. Once that's done, we allocate a new buffer of the appropriate size, zero the tail, and copy the data into it. This adds a small performance cost to these kinds of writes, but fixes the bookkeeping problems. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Matthew Ahrens <[email protected]> Co-authored-by: Matthew Ahrens <[email protected]> Signed-off-by: Paul Dagnelie <[email protected]> Closes #12522 Closes #8462
* Linux 5.15 compat: standalone <linux/stdarg.h>Alexander2021-09-083-0/+38
| | | | | | | | | | | | | | | | | | | | | | | Kernel commits 39f75da7bcc8 ("isystem: trim/fixup stdarg.h and other headers") c0891ac15f04 ("isystem: ship and use stdarg.h") 564f963eabd1 ("isystem: delete global -isystem compile option") (for now can be found in linux-next.git tree, will land into the Linus' tree during the ongoing 5.15 cycle with one of akpm merges) removed the -isystem flag and disallowed the inclusion of any compiler header files. They also introduced a minimal <linux/stdarg.h> as a replacement for <stdarg.h>. include/os/linux/spl/sys/cmn_err.h in the ZFS source tree includes <stdarg.h> unconditionally. Introduce a test for <linux/stdarg.h> and include it instead of the compiler's one to prevent module build breakage. Reviewed-by: Tony Nguyen <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Alexander Lobakin <[email protected]> Closes #12531
* Linux 5.15 compat: block device readaheadBrian Behlendorf2021-09-082-0/+43
| | | | | | | | | | | | | | | | | | | | | | The 5.15 kernel moved the backing_dev_info structure out of the request queue structure which causes a build failure. Rather than look in the new location for the BDI we instead detect this upstream refactoring by the existance of either the blk_queue_update_readahead() or disk_update_readahead() functions. In either case, there's no longer any reason to manually set the ra_pages value since it will be overridden with a reasonable default (2x the block size) when blk_queue_io_opt() is called. Therefore, we update the compatibility wrapper to do nothing for 5.9 and newer kernels. While it's tempting to do the same for older kernels we want to keep the compatibility code to preserve the existing behavior. Removing it would effectively increase the default readahead to 128k. Reviewed-by: Tony Nguyen <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #12532
* Detect iSCSI in the zpool cmd vdev media scriptDon Brady2021-09-021-1/+8
| | | | | | | | Reviewed-by: Serapheim Dimitropoulos <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Tony Hutter <[email protected]> Reviewed-by: Tony Nguyen <[email protected]> Signed-off-by: Don Brady <[email protected]> Closes #12206
* CI: don't install abigail-toolsGeorge Melikov2021-09-021-1/+1
| | | | | | | | | We use docker image instead. Reviewed-by: John Kennedy <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: George Melikov <[email protected]> Closes #12529
* Update ABI files via new libabigail versionGeorge Melikov2021-09-025-10851/+8384
| | | | | | | Reviewed-by: John Kennedy <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: George Melikov <[email protected]> Closes #12529
* Libabigail: make .abi files more consistentGeorge Melikov2021-09-021-0/+2
| | | | | | | Reviewed-by: John Kennedy <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: George Melikov <[email protected]> Closes #12529
* CI: use fresh libabigail via docker imageGeorge Melikov2021-09-021-2/+2
| | | | | | | Reviewed-by: John Kennedy <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: George Melikov <[email protected]> Closes #12529
* Check for libabigail versionGeorge Melikov2021-09-021-2/+12
| | | | | | | | | | We need to use 1.8.0+ version, older versions may segfault and give inconsistent results. Reviewed-by: John Kennedy <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: George Melikov <[email protected]> Closes #12529
* autoconf: allow Release to contain hyphenJorgen Lundman2021-09-021-2/+2
| | | | | | | | | | | | To avoid clashing with tags and releases, we'll use "zfs-macOS". Meta: 1 Name: zfs-macOS Reviewed-by: John Kennedy <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Tony Hutter <[email protected]> Signed-off-by: Jorgen Lundman <[email protected]> Closes #12437