svn commit: r308986 - vendor/illumos/dist/lib/libzfs/common
Andriy Gapon
avg at FreeBSD.org
Tue Nov 22 11:46:24 UTC 2016
Author: avg
Date: Tue Nov 22 11:46:22 2016
New Revision: 308986
URL: https://svnweb.freebsd.org/changeset/base/308986
Log:
6412 zfs receive: -u can be ignored sometimes
illumos/illumos-gate at 9185393f2919d8b897f6142d8a9fa0429c285dc1
https://github.com/illumos/illumos-gate/commit/9185393f2919d8b897f6142d8a9fa0429c285dc1
https://www.illumos.org/issues/6412
It seems that zfs receive -F -u would mount a received filesystem after
receiving a full stream if a destination filesystem already existed (and, thus,
got destroyed and re-created) and was mounted.
How to reproduce:
$ zfs create rpool/sandbox
$ zfs create rpool/sandbox/from
$ zfs create rpool/sandbox/to
$ zfs snap rpool/sandbox/from at snap
$ zfs send rpool/sandbox/from at snap | zfs recv -v -F -u rpool/sandbox/to
receiving full stream of rpool/sandbox/from at snap into rpool/sandbox/to at snap
received 41.7KB stream in 1 seconds (41.7KB/sec)
$ zfs get mounted rpool/sandbox/to
NAME PROPERTY VALUE SOURCE
rpool/tmp/sandbox/to mounted yes -
This behavior can be problematic if the mountpoint property changes either
because it had a non-inherited value or the stream contains properties because
it has been generated with either -R or -p.
Reviewed by: Matthew Ahrens <mahrens at delphix.com>
Reviewed by: Paul Dagnelie <pcd at delphix.com>
Approved by: Richard Lowe <richlowe at richlowe.net>
Author: Andriy Gapon <andriy.gapon at clusterhq.com>
Modified:
vendor/illumos/dist/lib/libzfs/common/libzfs_sendrecv.c
Modified: vendor/illumos/dist/lib/libzfs/common/libzfs_sendrecv.c
==============================================================================
--- vendor/illumos/dist/lib/libzfs/common/libzfs_sendrecv.c Tue Nov 22 11:44:30 2016 (r308985)
+++ vendor/illumos/dist/lib/libzfs/common/libzfs_sendrecv.c Tue Nov 22 11:46:22 2016 (r308986)
@@ -3533,7 +3533,8 @@ zfs_receive_one(libzfs_handle_t *hdl, in
}
if (clp) {
- err |= changelist_postfix(clp);
+ if (!flags->nomount)
+ err |= changelist_postfix(clp);
changelist_free(clp);
}
More information about the svn-src-vendor
mailing list