aboutsummaryrefslogtreecommitdiff
path: root/cddl/contrib/opensolaris
Commit message (Collapse)AuthorAgeFilesLines
* MFV r354383: 10592 misc. metaslab and vdev related ZoL bug fixesAndriy Gapon2019-11-212-132/+147
| | | | | | | | | | | | | | | | | | | | | | illumos/illumos-gate@555d674d5d4b8191dc83723188349d28278b2431 https://github.com/illumos/illumos-gate/commit/555d674d5d4b8191dc83723188349d28278b2431 https://www.illumos.org/issues/10592 This is a collection of recent fixes from ZoL: 8eef997679b Error path in metaslab_load_impl() forgets to drop ms_sync_lock 928e8ad47d3 Introduce auxiliary metaslab histograms 425d3237ee8 Get rid of space_map_update() for ms_synced_length 6c926f426a2 Simplify log vdev removal code 21e7cf5da89 zdb -L should skip leak detection altogether df72b8bebe0 Rename range_tree_verify to range_tree_verify_not_present 75058f33034 Remove unused vdev_t fields Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Author: Serapheim Dimitropoulos <serapheim@delphix.com> MFC after: 4 weeks Notes: svn path=/head/; revision=354948
* MFV r354382,r354385: 10601 10757 Pool allocation classesAndriy Gapon2019-11-2111-268/+1169
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | illumos/illumos-gate@663207adb1669640c01c5ec6949ce78fd806efae https://github.com/illumos/illumos-gate/commit/663207adb1669640c01c5ec6949ce78fd806efae 10601 Pool allocation classes https://www.illumos.org/issues/10601 illumos port of ZoL Pool allocation classes. Includes at least these two commits: 441709695 Pool allocation classes misplacing small file blocks cc99f275a Pool allocation classes 10757 Add -gLp to zpool subcommands for alt vdev names https://www.illumos.org/issues/10757 Port from ZoL of d2f3e292d Add -gLp to zpool subcommands for alt vdev names Note that a subsequent ZoL commit changed -p to -P a77f29f93 Change full path subcommand flag from -p to -P Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Portions contributed by: Håkan Johansson <f96hajo@chalmers.se> Portions contributed by: Richard Yao <ryao@gentoo.org> Portions contributed by: Chunwei Chen <david.chen@nutanix.com> Portions contributed by: loli10K <ezomori.nozomu@gmail.com> Author: Don Brady <don.brady@delphix.com> 11541 allocation_classes feature must be enabled to add log device illumos/illumos-gate@c1064fd7ce62fe763a4475e9988ffea3b22137de https://github.com/illumos/illumos-gate/commit/c1064fd7ce62fe763a4475e9988ffea3b22137de https://www.illumos.org/issues/11541 After the allocation_classes feature was integrated, one can no longer add a log device to a pool unless that feature is enabled. There is an explicit check for this, but it is unnecessary in the case of log devices, so we should handle this better instead of forcing the feature to be enabled. Author: Jerry Jelinek <jerry.jelinek@joyent.com> FreeBSD notes. I faithfully added the new -g, -L, -P flags, but only -g does something: vdev GUIDs are displayed instead of device names. -L, resolve symlinks, and -P, display full disk paths, do nothing at the moment. The use of special vdevs is backward compatible for read-only access, so root pools should be bootable, but exercise caution. MFC after: 4 weeks Notes: svn path=/head/; revision=354941
* zpool.8: remove a paragraph about quorum disksAndriy Gapon2019-11-201-4/+0
| | | | | | | | | | | FreeBSD has no such thing. illumos and ZoL manuals do not talk about quorum disks either. Only Oracle ZFS mentions them. MFC after: 1 week Notes: svn path=/head/; revision=354886
* fix up r354804, resolve merge conflicts in zpool.8Andriy Gapon2019-11-201-39/+14
| | | | | | | | | | | | | Somehow I managed to commit the manual page with unresolved conflicts in it. While here, I also replaced .sp with .Pp. MFC after: 3 weeks X-MFC with: r354804 Notes: svn path=/head/; revision=354885
* Fix inconsistencies in anonymous DOF files.Mark Johnston2019-11-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | The DOF file output by dtrace -A contains only the loadable sections. However, as it was created by a call to dtrace_dof_create() without flags, the original DOF was created with the loadable sections. The result is that the DOF includes the section headers for the unloadable sections (COMMENTS and UTSNAME) without these sections actually being present. This is inconsistent. A simple change to anon_prog() ensures that the missing sections are present in the outputted DOF. Alternatively, the call to dtrace_dof_create() could pass the DTRACE_D_STRIP flag stripping out the loadable sections. As the unloadable sections contain info useful for debugging purposes they haven't been stripped. Submitted by: Graeme Jenkinson <graeme.jenkinson@cl.cam.ac.uk> MFC after: 1 week Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21875 Notes: svn path=/head/; revision=354822
* MFV r354378,r354379,r354386: 10499 Multi-modifier protection (MMP)Andriy Gapon2019-11-1814-231/+687
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 10499 Multi-modifier protection (MMP) illumos/illumos-gate@e0f1c0afa46cc84d4b1e40124032a9a87310386e https://github.com/illumos/illumos-gate/commit/e0f1c0afa46cc84d4b1e40124032a9a87310386e https://www.illumos.org/issues/10499 Port the following ZFS commits from ZoL to illumos. 379ca9cf2 Multi-modifier protection (MMP) bbffb59ef Fix multihost stale cache file import 0d398b256 Do not initiate MMP writes while pool is suspended 10701 Correct lock ASSERTs in vdev_label_read/write illumos/illumos-gate@58447f688d5e308373ab16a3b129bc0ba0fbc154 https://github.com/illumos/illumos-gate/commit/58447f688d5e308373ab16a3b129bc0ba0fbc154 https://www.illumos.org/issues/10701 Port of ZoL commit: 0091d66f4e Correct lock ASSERTs in vdev_label_read/write At a minimum, this fixes a blown assert during an MMP test run when running on a DEBUG build. 11770 additional mmp fixes illumos/illumos-gate@4348eb901228d2f8fa50bb132a34248e8662074e https://github.com/illumos/illumos-gate/commit/4348eb901228d2f8fa50bb132a34248e8662074e https://www.illumos.org/issues/11770 Port a few additional MMP fixes from ZoL that came in after our initial MMP port. 4ca457b065 ZTS: Fix mmp_interval failure ca95f70dff zpool import progress kstat (only minimal changes from above can be pulled in right now) 060f0226e6 MMP interval and fail_intervals in uberblock Note from the committer (me). I do not have any use for this feature and I have not tested it. I only did smoke testing with multihost=off. Please be aware. I merged the code only to make future merges easier. Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Portions contributed by: Tim Chase <tim@chase2k.com> Portions contributed by: sanjeevbagewadi <sanjeev.bagewadi@gmail.com> Portions contributed by: John L. Hammond <john.hammond@intel.com> Portions contributed by: Giuseppe Di Natale <dinatale2@llnl.gov> Portions contributed by: Prakash Surya <surya1@llnl.gov> Portions contributed by: Brian Behlendorf <behlendorf1@llnl.gov> Author: Olaf Faaland <faaland1@llnl.gov> MFC after: 4 weeks Notes: svn path=/head/; revision=354804
* fix zpool list property namesAndriy Gapon2019-11-071-7/+5
| | | | | | | | | | | | | This change is based on r354380 8899 zpool list property documentation doesn't match actual behaviour There is no "used" pool property, "alloc" is actually spelled "allocated". MFC after: 5 days Notes: svn path=/head/; revision=354437
* MFV r354377: 10554 Implemented zpool sync commandAndriy Gapon2019-11-076-11/+110
| | | | | | | | | | | | | | | | | | | | | illumos/illumos-gate@9c2acf00e275b6b2125a306f33cdddcc58393220 https://github.com/illumos/illumos-gate/commit/9c2acf00e275b6b2125a306f33cdddcc58393220 https://www.illumos.org/issues/10554 During the port of MMP (illumos bug 10499) from ZoL, I found this earlier ZoL project is a prerequisite. Here is the original description. This addition will enable us to sync an open TXG to the main pool on demand. The functionality is similar to 'sync(2)' but 'zpool sync' will return when data has hit the main storage instead of potentially just the ZIL as is the case with the 'sync(2)' cmd. Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Author: Alek Pinchuk <apinchuk@datto.com> MFC after: 3 weeks Relnotes: possibly Notes: svn path=/head/; revision=354436
* MFZoL: Avoid retrieving unused snapshot propsAlan Somers2019-10-266-32/+111
| | | | | | | | | | | | | | | | | | | | | This patch modifies the zfs_ioc_snapshot_list_next() ioctl to enable it to take input parameters that alter the way looping through the list of snapshots is performed. The idea here is to restrict functions that throw away some of the snapshots returned by the ioctl to a range of snapshots that these functions actually use. This improves efficiency and execution speed for some rollback and send operations. Reviewed-by: Tom Caputi <tcaputi@datto.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Matt Ahrens <mahrens@delphix.com> Signed-off-by: Alek Pinchuk <apinchuk@datto.com> Closes #8077 zfsonlinux/zfs@4c0883fb4af0d5565459099b98fcf90ecbfa1ca1 MFC after: 2 weeks Notes: svn path=/head/; revision=354116
* zfs.8: fix a typo in the dateAndriy Gapon2019-10-251-1/+1
| | | | | | | | Reported by: Trond Endrestøl <trond.endrestol@ximalas.info> MFC after: 3 days Notes: svn path=/head/; revision=354062
* fix section number in zfs-program.8Andriy Gapon2019-10-161-1/+1
| | | | | | | MFC after: 3 days Notes: svn path=/head/; revision=353649
* MFV r348596: 9689 zfs range lock code should not be zpl-specificAndriy Gapon2019-10-161-7/+9
| | | | | | | | | | | | | | illumos/illumos-gate@7931524763ef94dc16989451dddd206563d03bb4 FreeBSD note: some tweaking was needed to avoid a conflict with sys/rangelock.h. Author: Matthew Ahrens <mahrens@delphix.com> Obtained from: illumos MFC after: 3 weeks Notes: svn path=/head/; revision=353634
* fix wording / typos in r353625Andriy Gapon2019-10-161-2/+2
| | | | | | | | | Reported by: kib MFC after: 4 weeks X-MFC with: r353625, r353618 Notes: svn path=/head/; revision=353627
* zfs: add a lame emulation of cv_wait_sig(9) in userland to fix r353618Andriy Gapon2019-10-162-0/+13
| | | | | | | | | | | | Not sure if we need anything better. Maybe we should try to port illumos libfakekernel or provide something similar natively. MFC after: 4 weeks X-MFC with: r353618 Notes: svn path=/head/; revision=353625
* MFV r353623: 10473 zfs(1M) missing cross-reference to zfs-program(1M)Andriy Gapon2019-10-161-3/+3
| | | | | | | | | | | | | | illumos/illumos-gate@736e6700391d17ab1494985a80076fc185722699 https://github.com/illumos/illumos-gate/commit/736e6700391d17ab1494985a80076fc185722699 https://www.illumos.org/issues/10473 Author: Jason King <jason.king@joyent.com> Obtained from: illumos MFC after: 6 days Notes: svn path=/head/; revision=353624
* MFV r353615: 9485 Optimize possible split block search spaceAndriy Gapon2019-10-161-1/+10
| | | | | | | | | | | | | | | | illumos/illumos-gate@a21fe349793c3805ec504bbe5e9acf06c2d63d7a https://github.com/illumos/illumos-gate/commit/a21fe349793c3805ec504bbe5e9acf06c2d63d7a https://www.illumos.org/issues/9485 Port this commit from ZoL: https://github.com/zfsonlinux/zfs/commit/4589f3ae4c1bb435777da8640eb915f3c713b14d Author: Brian Behlendorf <behlendorf1@llnl.gov> Obtained from: illumos, ZoL MFC after: 3 weeks Notes: svn path=/head/; revision=353616
* MFC r353611: 10330 merge recent ZoL vdev and metaslab changesAndriy Gapon2019-10-161-5/+2
| | | | | | | | | | | | | | | | | | | illumos/illumos-gate@a0b03b161c4df3cfc54fbc741db09b3bdc23ffba https://github.com/illumos/illumos-gate/commit/a0b03b161c4df3cfc54fbc741db09b3bdc23ffba https://www.illumos.org/issues/10330 3 recent ZoL changes in the vdev and metaslab code which we can pull over: PR 8324 c853f382db 8324 Change target size of metaslabs from 256GB to 16GB PR 8290 b194fab0fb 8290 Factor metaslab_load_wait() in metaslab_load() PR 8286 419ba59145 8286 Update vdev_is_spacemap_addressable() for new spacemap encoding Author: Serapheim Dimitropoulos <serapheimd@gmail.com> Obtained from: illumos, ZoL MFC after: 2 weeks Notes: svn path=/head/; revision=353612
* MFV r353606: 10067 Miscellaneous man page typosAndriy Gapon2019-10-161-1/+1
| | | | | | | | | | | | https://www.illumos.org/issues/10067 fileystem - man1m/zfs.1m man1m/boot.1m Author: Peter Tribble <peter.tribble@gmail.com> Obtained from: illumos MFC after: 1 week Notes: svn path=/head/; revision=353607
* zfs: remove gratuitous divergence from other openzfs flavoursAndriy Gapon2019-10-091-1/+1
| | | | | | | | | | The divergence is a result of a local change in r344601 and a followup fix in r352580 that reverted portions of the earlier change. MFC after: 1 week Notes: svn path=/head/; revision=353343
* zfs: remove incorrect warning about boot support for large_dnodeAndriy Gapon2019-10-091-6/+0
| | | | | | | | | | | Fixes r353341 Reported by: tsoome MFC after: 4 days X-MFC with: r353341 Notes: svn path=/head/; revision=353342
* zfs: document large_dnode featureAndriy Gapon2019-10-091-0/+30
| | | | | | | | | | | The text is copied from illumos. The conversion to mdoc is mine. The FreeBSD boot warning is copied from large_block description. MFC after: 4 days Notes: svn path=/head/; revision=353341
* MFV r350898, r351075: 8423 8199 7432 Implement large_dnode pool featureAndriy Gapon2019-10-074-34/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8423 8199 7432 Implement large_dnode pool feature 7432 Large dnode pool feature 8199 multi-threaded dmu_object_alloc() 8423 Implement large_dnode pool feature 10406 large_dnode changes broke zfs recv of legacy stream llumos/illumos-gate@54811da5ac6b517992fdc173df5d605e4e61fdc0 https://github.com/illumos/illumos-gate/commit/54811da5ac6b517992fdc173df5d605e4e61fdc0 https://www.illumos.org/issues/8423 https://www.illumos.org/issues/8199 https://www.illumos.org/issues/7432 illumos/illumos-gate@811964cd9f1fbae0fc3b93d116269e9b1fca090a https://github.com/illumos/illumos-gate/commit/811964cd9f1fbae0fc3b93d116269e9b1fca090a https://www.illumos.org/issues/10406 ZoL issues: Improved dnode allocation #6564 Clean up large dnode code #6262 Fix dnode_hold() freeing dnode behavior #8172 Fix dnode allocation race #6414, #6439 Partial: Raw sends must be able to decrease nlevels #6821, #6864 Remove unnecessary txg syncs from receive_object() Closes #7197 This updates FreeBSD large_dnode code (that was imported from ZoL) to a version that was committed to illumos. It has some cleanups, improvements and fixes comparing to what we have in FreeBSD now. I think that the most significant update is 8199 multi-threaded dmu_object_alloc(). This commit reverts r351077 that was a revert of r351074 and r351076 and restores those changes. Required atomic operations should be available now on all platforms where we build ZFS. Obtained from: illumos MFC after: 3 weeks Notes: svn path=/head/; revision=353176
* ZFS: add bookmark renamingAndriy Gapon2019-10-033-14/+46
| | | | | | | | | | | | | | | | | | | | | The feature is implemented as an extension of the existing ZFS_IOC_RENAME ioctl. Both the userland and the DSL interfaces support renaming only a single bookmark at a time. As of now, there is no ZCP interface to the new functionality. I am going to add it once the DSL interface passes a test of time. This change picks up support for zfs_ioc_namecheck_t::ENTITY_NAME that was added to ZoL as part of Redacted Send/Receive feature by Paul Dagnelie <pcd@delphix.com>. This is needed to allow a bookmark name in zc_name. Discussed with: mahrens Reviewed by: bcr (man page) Sponsored by: CyberSecure Differential Revision: https://reviews.freebsd.org/D21795 Notes: svn path=/head/; revision=353037
* MFZoL: Retire send space estimation via ZFS_IOC_SENDAndriy Gapon2019-09-221-28/+29
| | | | | | | | | | | | | | | | | | Add a small wrapper around libzfs_core's lzc_send_space() to libzfs so that every legacy ZFS_IOC_SEND consumer, along with their userland counterpart estimate_ioctl(), can leverage ZFS_IOC_SEND_SPACE to request send space estimation. The legacy functionality in zfs_ioc_send() is left untouched for compatibility purposes. Obtained from: ZoL Obtained from: zfsonlinux/zfs@cf7684bc8d57 Author: loli10K <ezomori.nozomu@gmail.com> MFC after: 2 weeks Notes: svn path=/head/; revision=352591
* print summary line for space estimate of zfs send from bookmarkAndriy Gapon2019-09-221-0/+9
| | | | | | | | | | | Although there is always a single stream and the total size in the summary is always equal to the size reported for the stream, it's nice to follow the usual output format. MFC after: 3 days Notes: svn path=/head/; revision=352590
* Fix a regression introduced in r344601, and work properly with theSean Eric Fagan2019-09-211-5/+3
| | | | | | | | | | | | | -v and -n options. PR: 240640 Reported by: Andriy Gapon <avg@FreeBSD.org> Reviewed by: avg MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D21709 Notes: svn path=/head/; revision=352580
* update zfs send usage help with r352447Andriy Gapon2019-09-191-1/+1
| | | | | | | MFC after: 3 days Notes: svn path=/head/; revision=352507
* MFZoL: Add -vnP support to 'zfs send' for bookmarksAndriy Gapon2019-09-174-33/+64
| | | | | | | | | | | | | | zfsonlinux/zfs@835db58592d7d947e5818eb7281882e2a46073e0 We have long supported estimating a size of an incremental stream from a snapshot. We should do the same for bookmarks as well. Obtained from: ZoL Author: loli10K <ezomori.nozomu@gmail.com> MFC after: 3 days Notes: svn path=/head/; revision=352447
* ZFS: Always refuse receving non-resume stream when resume state existsAndriy Gapon2019-09-041-4/+11
| | | | | | | | | | | | | | | | | | This fixes a hole in the situation where the resume state is left from receiving a new dataset and, so, the state is set on the dataset itself (as opposed to %recv child). Additionally, distinguish incremental and resume streams in error messages. This was also committed to ZoL: zfsonlinux/zfs@ebeb6f23bf7e8fe6732a05267ed1cab4c38d3b23 MFC after: 2 weeks Sponsored by: CyberSecure Notes: svn path=/head/; revision=351803
* Fix dtrace test case after r351423 due to ping6(8) options changedLi-Wen Hsu2019-08-311-1/+1
| | | | | | | | | | Failure test case: cddl.usr.sbin.dtrace.common.ip.t_dtrace_contrib.tst_ipv6localicmp_ksh Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=351644
* Fix tests use /etc/motd after r350184 by using an always existing fileLi-Wen Hsu2019-08-313-3/+3
| | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=351643
* MFV/ZoL: Fix wrong assertion in libzfs diff error handlingAlexander Motin2019-08-281-1/+1
| | | | | | | | | | | | | | | | | | | | In compare(), all error cases set the error code to EPIPE, so when an error is set, the correct assertion to make is that the error is EPIPE, not EINVAL. Reviewed-by: Richard Elling <Richard.Elling@RichardElling.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ryan Moeller <ryan@freqlabs.com> Closes #8743 zfsonlinux/zfs@9dc41a769df164875d974c2431b2453e70e16c41 Submitted by: Ryan Moeller <ryan@freqlabs.com> MFC after: 1 week Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D20118 Notes: svn path=/head/; revision=351574
* Add hold events for lockmgr probes, missed in r351361.Mark Johnston2019-08-211-2/+6
| | | | | | | MFC with: r351361 Notes: svn path=/head/; revision=351363
* Add lockmgr(9) probes to the lockstat DTrace provider.Mark Johnston2019-08-211-10/+14
| | | | | | | | | | | | | | | | | They follow the conventions set by rw and sx lock probes. There is an additional lockstat:::lockmgr-disown probe. Update lockstat(1) to report on contention and hold events for lockmgr locks. Document the new probes in dtrace_lockstat.4, and deduplicate some of the existing probe descriptions. Reviewed by: mjg MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21355 Notes: svn path=/head/; revision=351361
* Fix inverted predicates for sx lock hold events in lockstat(1).Mark Johnston2019-08-211-2/+2
| | | | | | | | | | | | This caused shared sx holds to be reported as exclusive, and vice versa. Reviewed by: mjg MFC after: 3 days Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=351359
* zpool-features.7: Fix a typoMateusz Piotrowski2019-08-161-2/+2
| | | | | | | | | | Reported by: pstef Reviewed by: pstef Approved by: src (pstef) Differential Revision: https://reviews.freebsd.org/D21290 Notes: svn path=/head/; revision=351115
* Revert r351076 and r351074 because of atomic_swap_64 on 32-bit platformsAndriy Gapon2019-08-154-93/+34
| | | | | | | Trying to sort it out. Notes: svn path=/head/; revision=351077
* MFV r350898: 8423 8199 7432 Implement large_dnode pool featureAndriy Gapon2019-08-154-34/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8423 8199 7432 Implement large_dnode pool feature 8423 Implement large_dnode pool feature 8199 multi-threaded dmu_object_alloc() 7432 Large dnode pool feature llumos/illumos-gate@54811da5ac6b517992fdc173df5d605e4e61fdc0 https://github.com/illumos/illumos-gate/commit/54811da5ac6b517992fdc173df5d605e4e61fdc0 https://www.illumos.org/issues/8423 https://www.illumos.org/issues/8199 https://www.illumos.org/issues/7432 ZoL issues: Improved dnode allocation #6564 Clean up large dnode code #6262 Fix dnode_hold() freeing dnode behavior #8172 Fix dnode allocation race #6414, #6439 Partial: Raw sends must be able to decrease nlevels #6821, #6864 Remove unnecessary txg syncs from receive_object() Closes #7197 This updates FreeBSD large_dnode code (that was imported from ZoL) to a version that was committed to illumos. It has some cleanups, improvements and fixes comparing to what we have in FreeBSD now. I think that the most significant update is 8199 multi-threaded dmu_object_alloc(). Obtained from: illumos MFC after: 3 weeks Notes: svn path=/head/; revision=351074
* MFV r350896: 6585 sha512, skein, and edonr have an unenforced dependency on ↵Andriy Gapon2019-08-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | extensible dataset illumos/illumos-gate@892586e8a147c02d7f4053cc405229a13e796928 https://github.com/illumos/illumos-gate/commit/892586e8a147c02d7f4053cc405229a13e796928 https://www.illumos.org/issues/6585 In any pool without the extensible dataset feature flag already enabled, creating a dataset with dedup set to use one of the new checksums would result in the following panic as soon as any data was added: panic[cpu0]/thread=ffffff0006761c40: feature_get_refcount(spa, feature, &refcount) != 48 (0x30 != 0x30), file: ../../common/fs/zfs/zfeature.c line 390 ffffff0006761830 fffffffffba8fbdd () ffffff0006761890 zfs:feature_do_action+11a () ffffff00067618c0 zfs:spa_feature_incr+1e () ffffff0006761920 zfs:dmu_object_zapify+b7 () ffffff00067619b0 zfs:dsl_dataset_activate_feature+97 () ffffff0006761a20 zfs:dsl_dataset_sync+ba () ffffff0006761ab0 zfs:dsl_pool_sync+153 () ffffff0006761b70 zfs:spa_sync+26e () ffffff0006761c20 zfs:txg_sync_thread+227 () ffffff0006761c30 unix:thread_start+8 () Inspection showed that feature->fi_feature was 7, which is the value of SPA_FEATURE_EXTENSIBLE_DATASET in the spa_feature enum. Testing shows that the panic can be prevented by explicitly setting extensible dataset as a dependency for the sha512, edonr, and skein feature flags. Alternatively, the new checksums code could possibly be changed to obviate the need for the dependency. Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Richard Laager <rlaager@wiktel.com> Approved by: Robert Mustacchi <rm@joyent.com> Author: ilovezfs <ilovezfs@icloud.com> Note that FreeBSD does not support ednor yet. MFC after: 2 weeks Notes: svn path=/head/; revision=350897
* Allow ZVOL bookmarks to be listed recursivelyAndriy Gapon2019-08-121-3/+3
| | | | | | | | | | | | | | | | | | | Many thanks to cryx-freebsd@h3q.com for reporting the problem and submitting a fix. I have chosen to take an equivalent but textually different patch from ZoL just to avoid increasing divergence between OpenZFS flavours. ZoL commit: zfsonlinux/zfse33da554c5daf0103b093f44ab5b90ad6c064c3f Author: loli10K <ezomori.nozomu@gmail.com> Date: Wed Sep 7 19:34:20 2016 +0200 PR: 197821 Submitted by: cryx-freebsd@h3q.com (alternative version) Reported by: cryx-freebsd@h3q.com Obtained from: ZoL MFC after: 1 week Notes: svn path=/head/; revision=350893
* loader: support com.delphix:removingToomas Soome2019-08-081-7/+0
| | | | | | | | | | | | We should support removing vdev from boot pool. Update loader zfs reader to support com.delphix:removing. Reviewed by: allanjude MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D18901 Notes: svn path=/head/; revision=350772
* add forgotten opening bracket "("Wolfram Schneider2019-07-311-1/+3
| | | | | | | | | | PR: 237514 Reviewed by: allanjude MFC after: soon for 11.3 and 12 series Differential Revision: https://reviews.freebsd.org/D21009 Notes: svn path=/head/; revision=350486
* Fix a bug introduced with parallel mounting of zfsBaptiste Daroussin2019-07-261-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Incorporate a fix from zol: https://github.com/zfsonlinux/zfs/commit/ab5036df1ccbe1b18c1ce6160b5829e8039d94ce commit log from upstream: Fix race in parallel mount's thread dispatching algorithm Strategy of parallel mount is as follows. 1) Initial thread dispatching is to select sets of mount points that don't have dependencies on other sets, hence threads can/should run lock-less and shouldn't race with other threads for other sets. Each thread dispatched corresponds to top level directory which may or may not have datasets to be mounted on sub directories. 2) Subsequent recursive thread dispatching for each thread from 1) is to mount datasets for each set of mount points. The mount points within each set have dependencies (i.e. child directories), so child directories are processed only after parent directory completes. The problem is that the initial thread dispatching in zfs_foreach_mountpoint() can be multi-threaded when it needs to be single-threaded, and this puts threads under race condition. This race appeared as mount/unmount issues on ZoL for ZoL having different timing regarding mount(2) execution due to fork(2)/exec(2) of mount(8). `zfs unmount -a` which expects proper mount order can't unmount if the mounts were reordered by the race condition. There are currently two known patterns of input list `handles` in `zfs_foreach_mountpoint(..,handles,..)` which cause the race condition. 1) #8833 case where input is `/a /a /a/b` after sorting. The problem is that libzfs_path_contains() can't correctly handle an input list with two same top level directories. There is a race between two POSIX threads A and B, * ThreadA for "/a" for test1 and "/a/b" * ThreadB for "/a" for test0/a and in case of #8833, ThreadA won the race. Two threads were created because "/a" wasn't considered as `"/a" contains "/a"`. 2) #8450 case where input is `/ /var/data /var/data/test` after sorting. The problem is that libzfs_path_contains() can't correctly handle an input list containing "/". There is a race between two POSIX threads A and B, * ThreadA for "/" and "/var/data/test" * ThreadB for "/var/data" and in case of #8450, ThreadA won the race. Two threads were created because "/var/data" wasn't considered as `"/" contains "/var/data"`. In other words, if there is (at least one) "/" in the input list, the initial thread dispatching must be single-threaded since every directory is a child of "/", meaning they all directly or indirectly depend on "/". In both cases, the first non_descendant_idx() call fails to correctly determine "path1-contains-path2", and as a result the initial thread dispatching creates another thread when it needs to be single-threaded. Fix a conditional in libzfs_path_contains() to consider above two. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Sebastien Roy <sebastien.roy@delphix.com> Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com> PR: 237517, 237397, 239243 Submitted by: Matthew D. Fuller <fullermd@over-yonder.net> (by email) MFC after: 3 days Notes: svn path=/head/; revision=350358
* Reference stdint.h types in ctf.5.Mark Johnston2019-07-171-39/+39
| | | | | | | MFC after: 1 week Notes: svn path=/head/; revision=350082
* zpool.8: the comment property is not read-onlyAllan Jude2019-06-061-4/+0
| | | | | | | | | | | | | The comment property was listed in the man page twice, once under the list of read-only properties, and again (correctly), under the list of user editable properties. PR: 238355 Reported by: Michael Zuo <muh.muhten@gmail.com> Sponsored by: Klara Systems Notes: svn path=/head/; revision=348714
* DTrace: create an amd64 test suitMariusz Zaborski2019-06-053-0/+161
| | | | | | | | | | | | | Create two tests checking if we can read urgs registers and if the rax register returns a correct number. Reviewed by: markj Discussed with: lwhsu MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D20364 Notes: svn path=/head/; revision=348706
* MFV r348583: 9847 leaking dd_clones (DMU_OT_DSL_CLONES) objectsAlexander Motin2019-06-031-3/+234
| | | | | | | | | | | | | illumos/illumos-gate@17fb938fd6cdce3ff1bb47dafda0774f742249a3 Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Serapheim Dimitropoulos <serapheim@delphix.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Approved by: Richard Lowe <richlowe@richlowe.net> Author: Matthew Ahrens <mahrens@delphix.com> Notes: svn path=/head/; revision=348584
* MFV r348580: 9559 zfs diff handles files on delete queue in fromsnap poorlyAlexander Motin2019-06-031-7/+7
| | | | | | | | | | | illumos/illumos-gate@20633e304b57bc98f70fdb194081b7023adf527b Reviewed by: Joshua M. Clulow <josh@sysmgr.org> Approved by: Richard Lowe <richlowe@richlowe.net> Author: Paul Dagnelie <pcd@delphix.com> Notes: svn path=/head/; revision=348581
* MFV r348578: 9962 zil_commit should omit cache thrashAlexander Motin2019-06-031-3/+1
| | | | | | | | | | | | | | illumos/illumos-gate@cab3a55e158118937e07d059c46f1bc14d1f254d Reviewed by: Matt Ahrens <matt@delphix.com> Reviewed by: Brad Lewis <brad.lewis@delphix.com> Reviewed by: Patrick Mooney <patrick.mooney@joyent.com> Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Approved by: Joshua M. Clulow <josh@sysmgr.org> Author: Prakash Surya <prakash.surya@delphix.com> Notes: svn path=/head/; revision=348579
* MFV r348568: 9466 add JSON output support to channel programsAlexander Motin2019-06-033-10/+30
| | | | | | | | | | | | | | illumos/illumos-gate@5267591016146502784860802129b16dab6f135c Reviewed by: Matt Ahrens <matt@delphix.com> Reviewed by: Serapheim Dimitropoulos <serapheim.dimitro@delphix.com> Reviewed by: Sara Hartse <sara.hartse@delphix.com> Reviewed by: John Kennedy <john.kennedy@delphix.com> Approved by: Dan McDonald <danmcd@joyent.com> Author: Alek Pinchuk <apinchuk@datto.com> Notes: svn path=/head/; revision=348570