| Summary: | Spurious EBUSY after zfs receiving properties to an existing dataset | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Base System | Reporter: | Alan Somers <asomers> | ||||
| Component: | bin | Assignee: | Alan Somers <asomers> | ||||
| Status: | Closed FIXED | ||||||
| Severity: | Affects Only Me | CC: | bapt, mmacy | ||||
| Priority: | --- | ||||||
| Version: | 12.2-STABLE | ||||||
| Hardware: | Any | ||||||
| OS: | Any | ||||||
| Attachments: |
|
||||||
|
Description
Alan Somers
2020-12-08 21:56:57 UTC
Created attachment 220378 [details]
Fix the merge error from r344569
The attached patch fixes the issue, and introduces no regressions in the ZFS test suite.
Looks good to me and sorry about the mis merge! A commit references this bug: Author: asomers Date: Wed Dec 9 20:06:38 UTC 2020 New revision: 368491 URL: https://svnweb.freebsd.org/changeset/base/368491 Log: ZFS: fix spurious EBUSY after zfs receive to an existing dataset If you do a "zfs send -p <src> | zfs receive -F <dst>" to an existing but empty dataset, the receive will complete successfully but spuriously fail with exit status 1 and the message "cannot mount 'pool/dataset': mountpoint or dataset is busy". The root cause is a merge error made in r344569 and MFCed in r345578, which merged changes a10d50f999 and e63ac16d25 from ZoL. The merge: * failed to flip a == to an != like the upstream change did, and * Left out one chunk Direct commit to stable/12 because head has moved on to OpenZFS. PR: 251694 Reviewed by: bapt Sponsored by: Axcient Changes: stable/12/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c |