- 15 Feb, 2024 1 commit
-
-
Rob Norris authored
Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rob Norris <rob.norris@klarasystems.com> Sponsored-by: Klara, Inc. Sponsored-by: iXsystems, Inc. Closes #15887
-
- 13 Feb, 2024 2 commits
-
-
Alexander Motin authored
This changes taskq_thread_should_stop() to limit maximum exit rate for idle threads to one per 5 seconds. I believe the previous one was broken, not allowing any thread exits for tasks arriving more than one at a time and so completing while others are running. Also while there: - Remove taskq_thread_spawn() calls on task allocation errors. - Remove extra taskq_thread_should_stop() call. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Rich Ercolani <rincebrain@gmail.com> Signed-off-by:
Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc. Closes #15873
-
Bi11 authored
Fix a misreport in 'zdb -d' where it falsely marked BRT objects as leaked. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Alexander Motin <mav@FreeBSD.org> Signed-off-by:
Yuxin Wang <yuxinwang9999@gmail.com> Closes #15882
-
- 12 Feb, 2024 1 commit
-
-
Bi11 authored
Similar to deduplication, the size of data duplicated by block cloning should not be included in the slop space calculation. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Alexander Motin <mav@FreeBSD.org> Signed-off-by:
Yuxin Wang <yuxinwang9999@gmail.com> Closes #15874
-
- 09 Feb, 2024 1 commit
-
-
Kevin Greene authored
Reviewed-by:
John Wren Kennedy <john.kennedy@delphix.com> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Kevin Greene <kevin.greene@delphix.com> Closes #15868
-
- 08 Feb, 2024 3 commits
-
-
Shawn Bayern authored
Fixes a small inaccuracy in the description of snapshot atomicity zfs-snapshot(8) appears to contain a small error. The existing version reads "Snapshots are taken atomically, so that all snapshots correspond to the same moment in time." Per zfs_main.c, which in do_snapshot() simply loops over argv, this does not appear to be correct when multiple snapshots are specified explicitly on the command line. I believe the intent of the man page was to say that *recursive* snapshots are all created atomically. This proposed change fixes that error. Because the existing statement may confuse some readers anyway, the commit also also adds a small amount of general explanatory information that may be helpful. The change also adds an introductory sentence that summarizes what 'zfs snapshot' does in the first place. In that sentence, the text "different datasets" is intended to indicate that (again per the code) the same dataset cannot be specified multiple times on the command line. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Shawn Bayern <sbayern@law.fsu.edu> Closes #15857
-
Rob N authored
Because "filesystem" and "volume" are just too long! Sponsored-by: https://despairlabs.com/sponsor/ Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rob Norris <robn@despairlabs.com> Closes #15864
-
Don Brady authored
Slow disk response times can be indicative of a failing drive. ZFS currently tracks slow I/Os (slower than zio_slow_io_ms) and generates events (ereport.fs.zfs.delay). However, no action is taken by ZED, like is done for checksum or I/O errors. This change adds slow disk diagnosis to ZED which is opt-in using new VDEV properties: VDEV_PROP_SLOW_IO_N VDEV_PROP_SLOW_IO_T If multiple VDEVs in a pool are undergoing slow I/Os, then it skips the zpool_vdev_degrade(). Sponsored-By: OpenDrives Inc. Sponsored-By: Klara Inc. Reviewed-by:
Tony Hutter <hutter2@llnl.gov> Reviewed-by:
Allan Jude <allan@klarasystems.com> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Co-authored-by:
Rob Wing <rob.wing@klarasystems.com> Signed-off-by:
Don Brady <don.brady@klarasystems.com> Closes #15469
-
- 07 Feb, 2024 2 commits
-
-
the-Chain-Warden-thresh authored
CVE-2020-24370 is a security vulnerability in lua. Although the CVE description in CVE-2020-24370 said that this CVE only affected lua 5.4.0, according to lua this CVE actually existed since lua 5.2. The root cause of this CVE is the negation overflow that occurs when you try to take the negative of 0x80000000. Thus, this CVE also exists in openzfs. Try to backport the fix to the lua in openzfs since the original fix is for 5.4 and several functions have been changed. https://github.com/advisories/GHSA-gfr4-c37g-mm3v https://nvd.nist.gov/vuln/detail/CVE-2020-24370 https://www.lua.org/bugs.html#5.4.0-11 https://github.com/lua/lua/commit/a585eae6e7ada1ca9271607a4f48dfb1786 Reviewed-by:
Tony Hutter <hutter2@llnl.gov> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
ChenHao Lu <18302010006@fudan.edu.cn> Closes #15847
-
Cameron Harr authored
When very large pools are present, it can be laborious to find reasons for why a pool is degraded and/or where an unhealthy vdev is. This option filters out vdevs that are ONLINE and with no errors to make it easier to see where the issues are. Root and parents of unhealthy vdevs will always be printed. Testing: ZFS errors and drive failures for multiple vdevs were simulated with zinject. Sample vdev listings with '-e' option - All vdevs healthy NAME STATE READ WRITE CKSUM iron5 ONLINE 0 0 0 - ZFS errors NAME STATE READ WRITE CKSUM iron5 ONLINE 0 0 0 raidz2-5 ONLINE 1 0 0 L23 ONLINE 1 0 0 L24 ONLINE 1 0 0 L37 ONLINE 1 0 0 - Vdev faulted NAME STATE READ WRITE CKSUM iron5 DEGRADED 0 0 0 raidz2-6 DEGRADED 0 0 0 L67 FAULTED 0 0 0 too many errors - Vdev faults and data errors NAME STATE READ WRITE CKSUM iron5 DEGRADED 0 0 0 raidz2-1 DEGRADED 0 0 0 L2 FAULTED 0 0 0 too many errors raidz2-5 ONLINE 1 0 0 L23 ONLINE 1 0 0 L24 ONLINE 1 0 0 L37 ONLINE 1 0 0 raidz2-6 DEGRADED 0 0 0 L67 FAULTED 0 0 0 too many errors - Vdev missing NAME STATE READ WRITE CKSUM iron5 DEGRADED 0 0 0 raidz2-6 DEGRADED 0 0 0 L67 UNAVAIL 3 1 0 - Slow devices when -s provided with -e NAME STATE READ WRITE CKSUM SLOW iron5 DEGRADED 0 0 0 - raidz2-5 DEGRADED 0 0 0 - L10 FAULTED 0 0 0 0 external device fault L51 ONLINE 0 0 0 14 Reviewed-by:
Tony Hutter <hutter2@llnl.gov> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Cameron Harr <harr1@llnl.gov> Closes #15769
-
- 06 Feb, 2024 1 commit
-
-
Brian Behlendorf authored
On Linux the ioctl_ficlonerange() and ioctl_ficlone() system calls are expected to either fully clone the specified range or return an error. The range may be for an entire file. While internally ZFS supports cloning partial ranges there's no way to return the length cloned to the caller so we need to make this all or nothing. As part of this change support for the REMAP_FILE_CAN_SHORTEN flag has been added. When REMAP_FILE_CAN_SHORTEN is set zfs_clone_range() will return a shortened range when encountering pending dirty records. When it's clear zfs_clone_range() will block and wait for the records to be written out allowing the blocks to be cloned. Furthermore, the file range lock is held over the region being cloned to prevent it from being modified while cloning. This doesn't quite provide an atomic semantics since if an error is encountered only a portion of the range may be cloned. This will be converted to an error if REMAP_FILE_CAN_SHORTEN was not provided and returned to the caller. However, the destination file range is left in an undefined state. A test case has been added which exercises this functionality by verifying that `cp --reflink=never|auto|always` works correctly. Reviewed-by:
Alexander Motin <mav@FreeBSD.org> Signed-off-by:
Brian Behlendorf <behlendorf1@llnl.gov> Closes #15728 Closes #15842
-
- 05 Feb, 2024 1 commit
-
-
Rich Ercolani authored
Step 1 in trying to slowly rip the zdb functions out of zdb.c to allow people to play with more flexible things to leverage zdb's functionality. No promises on any functions or structs being stable, now or probably in general unless someone builds a more polished abstraction, the goal at the moment is to slowly untangle the global state usage in zdb... Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rich Ercolani <rincebrain@gmail.com> Closes #15804
-
- 02 Feb, 2024 1 commit
-
-
Umer Saleem authored
On Linux, ZFS uses blkdev_issue_discard in vdev_disk_io_trim to issue trim command which is synchronous. This commit updates vdev_disk_io_trim to use __blkdev_issue_discard, which is asynchronous. Unfortunately there isn't any asynchronous version for blkdev_issue_secure_erase, so performance of secure trim will still suffer. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Alexander Motin <mav@FreeBSD.org> Signed-off-by:
Umer Saleem <usaleem@ixsystems.com> Closes #15843
-
- 29 Jan, 2024 14 commits
-
-
Rob Norris authored
struct mnt_idmap no longer has a struct user_namespace within it. Work around this by creating a temporary with the copy of the map we need taken from the idmap. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Co-authored-by:
Youzhong Yang <yyang@mathworks.com> Signed-off-by:
Rob Norris <robn@despairlabs.com> Sponsored-by: https://despairlabs.com/sponsor/ Closes #15805
-
Rob Norris authored
The name inode_permission is now defined in the kernel. Rename ours to test_permission, in line with most of our other tests. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rob Norris <robn@despairlabs.com> Sponsored-by: https://despairlabs.com/sponsor/ Closes #15805
-
Rob Norris authored
MAX_ORDER has been renamed to MAX_PAGE_ORDER. Rather than just redefining it, instead define our own name and set it consistently from the start. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rob Norris <robn@despairlabs.com> Sponsored-by: https://despairlabs.com/sponsor/ Closes #15805
-
Rob Norris authored
Linux has removed strlcpy in favour of strscpy. This implements a fallback implementation of strlcpy for this case. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rob Norris <robn@despairlabs.com> Sponsored-by: https://despairlabs.com/sponsor/ Closes #15805
-
Rob Norris authored
blkdev_get_by_path() and blkdev_put() have been replaced by bdev_open_by_path() and bdev_release(), which return a "handle" object with the bdev object itself inside. This adds detection for the new functions, and macros to handle the old and new forms consistently. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rob Norris <robn@despairlabs.com> Sponsored-by: https://despairlabs.com/sponsor/ Closes #15805
-
Rob Norris authored
The kernel is now being compiled with -Wmissing-prototypes. Most of our test stub functions had no prototype, and failed to compile. Since they don't need to be visible anywhere else, just make them all static. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rob Norris <robn@despairlabs.com> Sponsored-by: https://despairlabs.com/sponsor/ Closes #15805
-
Brian Behlendorf authored
Update the META file to reflect compatibility with the 6.7 kernel. Reviewed-by:
Tony Hutter <hutter2@llnl.gov> Signed-off-by:
Brian Behlendorf <behlendorf1@llnl.gov> Closes #15833
-
Paul Dagnelie authored
During device removal stress tests, we noticed that we were tripping the assertion that mg_initialized was true. After investigation, it was determined that the mg in question was the embedded log metaslab group for a newly added vdev; the normal mg had been initialized (by metaslab_sync_reassess, via vdev_sync_done). However, because the spa config alloc lock is not held as writer across both calls to metaslab_sync_reassess, it is possible for an allocation to happen between the two metaslab_groups being initialized. Because the metaslab code doesn't check the group in question, just the vdev's main mg, it is possible to get past the initial check in vdev_allocatable and later fail due to the assertion. We simply remove the assertions. We could also consider locking the ALLOC lock around the reassess calls in vdev_sync_done, but that risks deadlocks. We could check the actual target mg in vdev_allocatable, but that risks racing with a passivation that comes in after that check but before the assertion. We still won't be able to actually allocate from the metaslab group if no metaslabs are ready, so this change shouldn't break anything. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
George Wilson <george.wilson@delphix.com> Signed-off-by:
Paul Dagnelie <pcd@delphix.com> Closes #15818
-
Richard Kojedzinszky authored
Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Tino Reichardt <milky-zfs@mcmilk.de> Signed-off-by:
Richard Kojedzinszky <richard@kojedz.in> Closes #15793
-
Richard Kojedzinszky authored
Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Tino Reichardt <milky-zfs@mcmilk.de> Signed-off-by:
Richard Kojedzinszky <richard@kojedz.in> Closes #15793
-
rilysh authored
Since we're looking for a single new-line character in the haystack, it's better (and slightly more efficient) to use strchr() instead of strstr(). Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Richard Yao <richard.yao@alumni.stonybrook.edu> Signed-off-by:
rilysh <nightquick@proton.me> Closes #15798
-
Chris Davidson authored
zpool-iostat.8: Updated time(2) -> time(1) to align to manual page zpool-list.8: Updated time(2) -> time(1) to align to manual page zpool-status.8: Updated time(2) -> time(1) to align to manual page zpool-wait.8: Update time(2) -> time(1) to align to manual page Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Christopher Davidson <christopher.davidson@gmail.com> Closes #15823
-
Brian Behlendorf authored
The zdb_args_pos test may take slightly longer than 600 seconds to run on some of the CI builders. To prevent this from causing failures allow up to 1200 seconds for tests in this group. Reviewed-by:
Tony Hutter <hutter2@llnl.gov> Signed-off-by:
Brian Behlendorf <behlendorf1@llnl.gov> Closes #15826
-
Andrew Innes authored
Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
George Melikov <mail@gmelikov.ru> Reviewed-by:
Tino Reichardt <milky-zfs@mcmilk.de> Signed-off-by:
Andrew Innes <andrew.c12@gmail.com> Closes #15828
-
- 26 Jan, 2024 6 commits
-
-
MigeljanImeri authored
Removed the list_size struct member as it was only used in a single assertion, as mentioned in PR #15478. Reviewed-by:
Brian Atkinson <batkinson@lanl.gov> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Alexander Motin <mav@FreeBSD.org> Signed-off-by:
MigeljanImeri <imerimigel@gmail.com> Closes #15812
-
Rob N authored
list, status and iostat all display the -T timestamp before the header, but wait showed it after. Make it be like the others. Reported-by:
Kyle Evans <kevans@FreeBSD.org> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Rob Norris <robn@despairlabs.com> Closes #15825
-
Ameer Hamza authored
If devid or physpath for a vdev changes between imports, ensure it is updated to the new value. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Alexander Motin <mav@FreeBSD.org> Signed-off-by:
Ameer Hamza <ahamza@ixsystems.com> Closes #15816
-
Tino Reichardt authored
GitHub Actions is transitioning from Node 16 to Node 20. So we need to update these: - actions/checkout@v3 -> v4 - actions/download-artifact@v3 -> v4 - actions/upload-artifact@v3 -> v4 and some minor changes Update also the documentation of the testings workflow. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
George Melikov <mail@gmelikov.ru> Reviewed-by:
Andrew Innes <andrew.c12@gmail.com> Signed-off-by:
Tino Reichardt <milky-zfs@mcmilk.de> Closes #15820
-
Richard Yao authored
The LLVM/Clang developers pointed out that using the CPP to detect use of functions that our QA policies prohibit risks invoking undefined behavior. To resolve this, we configure CodeQL to detect forbidden function usage. Note that cpp in the context of CodeQL refers to C/C++, rather than the C PreProcessor, which C++ also uses. It really should have been written cxx, but that ship sailed a long time ago. This misuse of the term cpp is retained in the CodeQL configuration for consistency with upstream CodeQL. As a side benefit, verbose make no longer is a wall of text showing a bunch of CPP macros, which can make debugging slightly easier. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Richard Yao <richard.yao@alumni.stonybrook.edu> Closes #15819 Closes #14134
-
Tino Reichardt authored
The Github Action Runner got some new hardware metrics. We should use the provided and empty disk which is pre-mounted at /mnt now. Disk1: 89GiB -> rootfs + bootfs with ~80MB/s -> don't care Disk2: 64GiB -> /mnt with 420MB/s -> new testing ssd This commit will mount the new disk to /var/tmp and provide hopefully some speedups within our testings. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
George Melikov <mail@gmelikov.ru> Reviewed-by:
Andrew Innes <andrew.c12@gmail.com> Signed-off-by:
Tino Reichardt <milky-zfs@mcmilk.de> Closes #15811
-
- 23 Jan, 2024 2 commits
-
-
Pawel Jakub Dawidek authored
Descriptor leak can be easily reproduced by doing: # zpool import tank # sysctl kern.openfiles # zpool export tank; zpool import tank # sysctl kern.openfiles We were leaking four file descriptors on every import. Similar leak most likely existed when using file-based VDEVs. External-issue: https://reviews.freebsd.org/D43529 Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Pawel Jakub Dawidek <pawel@dawidek.net> Closes #15630
-
Brian Behlendorf authored
If block cloning is disabled by default then enable it when running the bclone tests. Follow up to #15529. Reviewed-by:
Brian Atkinson <batkinson@lanl.gov> Signed-off-by:
Brian Behlendorf <behlendorf1@llnl.gov> Closes #15796
-
- 19 Jan, 2024 1 commit
-
-
Val Packett authored
musl libc has deprecated LFS64 aliases, so bootstrapping FreeBSD tools under musl distros has been failing with stat64 errors. Apply the aliases under non-glibc Linux to fix this problem. Reviewed-by:
Richard Yao <richard.yao@alumni.stonybrook.edu> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Val Packett <val@packett.cool> Closes #15780
-
- 17 Jan, 2024 4 commits
-
-
Tino Reichardt authored
Compiling on arm64 freebsd-13.2 and arm64 almalinux-8 brings currently this error: ``` CC tests/zfs-tests/cmd/clonefile.o tests/zfs-tests/cmd/clonefile.c:166:43: error: result of comparison of \ constant -1 with expression of type 'char' is always true \ [-Werror,-Wtautological-constant-out-of-range-compare] while ((c = getopt(argc, argv, "crfdq")) != -1) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~ 1 error generated. gmake[2]: *** [Makefile:8675: tests/zfs-tests/cmd/clonefile.o] Error 1 ``` Fix: use correct variable type `int`. Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Rob Norris <robn@despairlabs.com> Signed-off-by:
Tino Reichardt <milky-zfs@mcmilk.de> Closes #15783
-
Tino Reichardt authored
Credential Implementation -> Condition Variables Implementation Reviewed-by:
Brian Atkinson <batkinson@lanl.gov> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by:
Tino Reichardt <milky-zfs@mcmilk.de> Closes #15782
-
Kevin Jin authored
Switch from cv_wait() to cv_wait_idle() in vdev_autotrim_wait_kick(), which should mitigate the high load average while waiting. Reviewed-by:
Brian Atkinson <batkinson@lanl.gov> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by:
Alexander Motin <mav@FreeBSD.org> Signed-off-by:
jxdking <lostking2008@hotmail.com> Closes #15781
-
Pawel Jakub Dawidek authored
If the destination file is mmaped and the mmaped region was already read, so it is cached, we need to update mmaped pages after successful clone using update_pages(). Reviewed-by:
Alexander Motin <mav@FreeBSD.org> Reviewed-by:
Brian Behlendorf <behlendorf1@llnl.gov> Pointed out by: Ka Ho Ng <khng@freebsd.org> Signed-off-by:
Pawel Jakub Dawidek <pawel@dawidek.net> Closes #15772
-