6412 zfs receive: -u can be ignored sometimes

illumos/illumos-gate@9185393f29
9185393f29

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@snap
  $ zfs send rpool/sandbox/from@snap | zfs recv -v -F -u rpool/sandbox/to
  receiving full stream of rpool/sandbox/from@snap into rpool/sandbox/to@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@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author: Andriy Gapon <andriy.gapon@clusterhq.com>
This commit is contained in:
Andriy Gapon 2016-11-22 11:46:22 +00:00
parent 3033242f0e
commit 94ce2dcaab

View File

@ -3533,7 +3533,8 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const char *tosnap,
}
if (clp) {
err |= changelist_postfix(clp);
if (!flags->nomount)
err |= changelist_postfix(clp);
changelist_free(clp);
}