aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix lseek(SEEK_DATA/SEEK_HOLE) mmap consistencyBrian Behlendorf2021-11-0718-32/+305
| | | | | | | | | | | | | | | | | | | | | | | When using lseek(2) to report data/holes memory mapped regions of the file were ignored. This could result in incorrect results. To handle this zfs_holey_common() was updated to asynchronously writeback any dirty mmap(2) regions prior to reporting holes. Additionally, while not strictly required, the dn_struct_rwlock is now held over the dirty check to prevent the dnode structure from changing. This ensures that a clean dnode can't be dirtied before the data/hole is located. The range lock is now also taken to ensure the call cannot race with zfs_write(). Furthermore, the code was refactored to provide a dnode_is_dirty() helper function which checks the dnode for any dirty records to determine its dirtiness. Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: Tony Hutter <[email protected]> Reviewed-by: Rich Ercolani <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Issue #11900 Closes #12724
* Update contrib/initramfs/README.initramfs.markdownMichael Franzl2021-11-041-2/+2
| | | | | | | | | | Note that Dropbear supports ed25519 keys since version 2020.79. See https://github.com/mkj/dropbear/pull/91 Reviewed-by: George Melikov <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: Michael Franzl <[email protected]> Closes #12715
* Revert behavior of 59eab109 on not-LinuxRich Ercolani2021-11-041-1/+8
| | | | | | | | | | | | | | It turns out that short-circuiting the EFAULT behavior on a short read breaks things on FreeBSD. So until there's a nicer solution, let's just revert the behavior for not-Linux. Reference: https://reviews.freebsd.org/R10:70f51f0e474ffe1fb74cb427423a2fba3637544d Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Tony Nguyen <[email protected]> Reviewed-by: Brian Atkinson <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #12698
* Workaround issue cleaning up automounted snapshots on LinuxRich Ercolani2021-11-031-3/+20
| | | | | | | | | | | | | | | | | | | | | | On Linux, sometimes, when ZFS goes to unmount an automounted snap, it fails a VERIFY check on debug builds, because taskq_cancel_id returned ENOENT after not finding the taskq it was trying to cancel. This presumably happens when it already died for some reason; in this case, we don't really mind it already being dead, since we're just going to dispatch a new task to unmount it right after. So we just ignore it if we get back ENOENT trying to cancel here, retry a couple times if we get back the only other possible condition (EBUSY), and log to dbgmsg if we got anything but ENOENT or success. (We also add some locking around taskqid, to avoid one or two cases of two instances of trying to cancel something at once.) Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Tony Nguyen <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #11632 Closes #12670
* Add more explicit warning about dedup being droppedRich Ercolani2021-11-021-3/+18
| | | | | | | | | | | | | "has unsupported feature: [number]" seems reasonable when we can't know what the problem was, but with the send -D removal, we know what it was, and can explicitly tell people "don't do that; try this if you must". So let's. Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #12708
* Update `checkstyle` workflow env to ubuntu-20.04Damian Szuberski2021-11-029-10/+32
| | | | | | | | | - `checkstyle` workflow uses ubuntu-20.04 environment - improved `mancheck.sh` readability Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: szubersk <[email protected]> Closes #12713
* Fix cpu hotplug atomic sleep issuePaul Dagnelie2021-11-021-5/+6
| | | | | | | | | | | | | | | | We move the spinlock unlock before the thread creation. This should be safe because the thread creation code doesn't actually manipulate any taskq data structures; that's done by the thread once it's created. We also remove the assertion that the maxthreads is the current threads plus one; that assertion could fail if multiple hotplug events come in quick succession, and the first new taskq thread hasn't had a chance to start processing yet. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Matthew Ahrens <[email protected]> eviewed-by: Tony Nguyen <[email protected]> Signed-off-by: Paul Dagnelie <[email protected]> Closes #12714
* Disable normalization implicitly when setting "utf8only=off"Mike Swanson2021-10-292-0/+20
| | | | | | | | | | | | | When a parent dataset has normalization set to any value other than "none", and a file system is created with the property "utf8only=off", implicitly also set "normalization=none" instead of overriding the desire for a non-UTF8 enforcing file system. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Mike Swanson <[email protected]> Closes #11892 Closes #12038
* Exit the teardown section later in rename on FreeBSDMark Johnston2021-10-291-3/+4
| | | | | | | | | | | | We have to hold the teardown lock while dereferencing zfsvfs->z_os and, I believe, when committing to the ZIL. Note that jumping to the "out" label, "error" is always non-zero. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Mark Johnston <[email protected]> Closes #12704
* Fix potential use-after-frees in FreeBSD getpages and setattr VOPsMark Johnston2021-10-291-4/+4
| | | | | | | | | | | The objset object is reallocated during certain dataset operations, such as rollbacks, so the objset pointer must be loaded after acquiring the teardown lock. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Mark Johnston <[email protected]> Closes #12704
* zfsprops.7: Add note about comma-separationD. Ebdrup2021-10-291-0/+5
| | | | | | | | | This change primarily seeks to make implicit documentation explicit, as it is not outright stated that options should be comma-separated, nor is there a reason given for it. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Daniel Ebdrup Jensen <[email protected]> Closes #12579
* Do not print UINT64_MAX value for some of zfs propertiesFedor Uporov2021-10-292-9/+21
| | | | | | | | | | The values of next properties: filesystem_limit, filesystem_count, snapshot_limit, snapshot_count were returned to user as UINT64_MAX integers in case if -p cli option is used, return 'none' value instead. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Fedor Uporov <[email protected]> Closes #9306 Closes #12690
* Add explicit error for device_rebuild being disabledRich Ercolani2021-10-291-3/+14
| | | | | | | | | | | | | Currently, you get back "can only attach to mirrors and top-level disks" unconditionally if zpool attach returns ENOTSUP, but that also happens if, say, feature@device_rebuild=disabled and you tried attach -s. So let's print an error for that case, lest people go down a rabbit hole looking into what they did wrong. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #11414 Closes #12680
* Normalize property names for zfs receiveRich Ercolani2021-10-294-6/+236
| | | | | | | | | | | | | | | It turns out, userland is much more happy with aliased property names than the kernel is. So let's normalize those to the expected names before we pass them off. Added a test case hacked up from the other recv -o/-x test that fails on unpatched git and passes here. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #12607 Closes #12609
* Python 3.10 fixes, part 2Rich Ercolani2021-10-291-1/+1
| | | | | | | | | There was a fallback case I overlooked in the initial patch, with a similarly imperfect version extractor. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #12045 Closes #12673
* Set DEFAULT_INIT_SHELL to /sbin/openrc-run for Gentoo and AlpinePeter Levine2021-10-291-9/+5
| | | | | | | | | Gentoo and Alpine always set the rc init scripts' shebang to #!/sbin/openrc-run, whether or not openrc is installed. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Peter Levine <[email protected]> Closes #12683 Closes #12692
* vdev_id: Fix PHY sortingTony Hutter2021-10-291-1/+1
| | | | | | | | | | | | | | | | | One of our developers noticed a bug in vdev_id where we were incorrectly sorting PHYs using alphabetical sorting (which usually works) instead of natural sorting (-v). For example: [port-0:0]# ls -d phy* phy-0:10 phy-0:11 phy-0:8 phy-0:9 [port-0:0]# ls -vd phy* phy-0:8 phy-0:9 phy-0:10 phy-0:11 This fixes the issue. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Tony Hutter <[email protected]> Closes #12699
* Remove unused function zvol_set_volblocksize()Fedor Uporov2021-10-262-46/+0
| | | | | | Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: George Melikov <[email protected]> Signed-off-by: Fedor Uporov <[email protected]> Closes #12688
* Make dsl_scan print the pool name in dbgmsgRich Ercolani2021-10-261-37/+64
| | | | | | | | | If you've got multiple scrubs/resilvers going, it's rather helpful to know which pool each scan line refers to. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Matthew Ahrens <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes: #12674
* spa.c: Replace VERIFY(nvlist_*(...) == 0) with fnvlist_* (#12678)Allan Jude2021-10-261-156/+129
| | | | | | | | | The fnvlist versions of the functions are fatal if they fail, saving each call from having to include checking the result. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: Igor Kozhukhov <[email protected]> Signed-off-by: Allan Jude <[email protected]>
* ZTS: Standardize use of destroy_dataset in cleanupBrian Behlendorf2021-10-25243-658/+424
| | | | | | | | | | | | | | | | | | | | When cleaning up a test case standardize on using the convention: datasetexists $ds && destroy_dataset $ds <flags> By using 'destroy_dataset' instead of 'log_must zfs destroy' we ensure that the destroy is retried in the event that a ZFS volume is busy. This helps ensures ensure tests are fully cleaned up and prevents false positive test failures on Linux. Note that all of the tests which used 'zfs destroy' in cleanup have been updated even if they don't use volumes. This was done to clearly establish the expected convention. Reviewed-by: Rich Ercolani <[email protected]> Reviewed-by: George Melikov <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #12663
* Workaround cloud-init hotplug issueRich Ercolani2021-10-252-0/+22
| | | | | | | | | | | | | | | cloud-init added a hook which triggers on every device add/rm event, which results in holding open devices for a while after they're created/destroyed. So let's shove an exclusion rule for that into the GH workflows until it gets fixed. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: George Melikov <[email protected]> Reviewed-by: John Kennedy <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes #12644 Closes #12669
* FreeBSD: Catch up with recent VFS changesRyan Moeller2021-10-252-1/+7
| | | | | | | | | | | cn_thread is always curthread. https://cgit.freebsd.org/src/commit?id=b4a58fbf640409a1e507d9f7b411c83a3f83a2f3 https://cgit.freebsd.org/src/commit?id=2b68eb8e1dbbdaf6a0df1c83b26f5403ca52d4c3 Reviewed-by: Alexander Motin <[email protected]> Reviewed-by: Alan Somers <[email protected]> Signed-off-by: Ryan Moeller <[email protected]> Closes #12668
* pam_zfs_key: malloc and mlock/munlock won't matchAttila Fülöp2021-10-221-26/+22
| | | | | | | | | | | | | | | | | | | | | | | mlock(2) and munlock(2) operate on memory pages whereas malloc(3) does not. So if you munlock(2) a malloced memory region, the whole page containing it is freed. Since this page may contain another malloced and mlocked memory region, used as a password buffer by a concurrent running instance of pam_zfs_key, there is a slight chance of leaking passwords. By using mmap(2) we avoid such problems since it will return whole pages on page aligned addresses. Although the above concern may be mostly academical, it is still better to use mmap(2) for allocating memory since the FreeBSD documentation suggests to call mlock(2) and munlock(2) on page aligned addresses, and other implementations even require it. While here, remove duplicate code in alloc_pw_string() by calling alloc_pw_size(). Reviewed-by: Felix Dörre <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes #12665
* pam_zfs_key: mlock(2) and munlock(2) can failAttila Fülöp2021-10-221-5/+41
| | | | | | | | | Since both syscalls can fail, add error handling, including EAGAIN. Reviewed-by: Felix Dörre <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes #12665
* pam_zfs_key: change test user name to conform to standardsAttila Fülöp2021-10-221-1/+1
| | | | | | | | | | The useradd(8) command on my system won't accept login names with uppercase letters in them, so adjust for that. Reviewed-by: Felix Dörre <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Attila Fülöp <[email protected]> Closes #12665
* Skip snapshot in zfs_iter_mounted()youzhongyang2021-10-203-6/+59
| | | | | | | | | | | | | The intention of the zfs_iter_mounted() is to traverse the dataset and its descendants, not the snapshots. The current code can cause a mounted snapshot to be included and thus zfs_open() on the snapshot with ZFS_TYPE_FILESYSTEM would print confusing message such as "cannot open 'rpool/fs@snap': snapshot delimiter '@' is not expected here". Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Youzhong Yang <[email protected]> Closes #12447 Closes #12448
* vdev_id: Fix enclosure_symlinks featureTony Hutter2021-10-201-2/+2
| | | | | | | | | | | | | | | | | | | | The vdev_id.conf "enclosure_symlinks" option persistently creates and maps /dev/by-enclosure symlinks to dynamic /dev/sg* devices. This patch fixes two issues: 1. The enclosure_symlinks feature was accidentally broken in: vdev_id: Support daisy-chained JBODs in multipath mode 2. Even when working, the feature numbered the enclosure sequentially rather than by HBA port number. That meant that if a port was down or didn't appear in sysfs, then the enclosure_sumlinks numbers would be numbered wrong. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Arshad Hussain <[email protected]> Signed-off-by: Tony Hutter <[email protected]> Closes #12660
* libshare: nfs: pass through ipv6 addresses in bracket notationfelixdoerre2021-10-206-8/+126
| | | | | | | | | | Recognize when the host part of a sharenfs attribute is an ipv6 Literal and pass that through without modification. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Felix Dörre <[email protected]> Closes: #11171 Closes #11939 Closes: #1894
* 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