SVNews r332539

NOTE: This service is experimental and subject to change! Use at your own risk!

2018-04-16 03:49:27 - r332539 by mav (Alexander Motin)

Complete list of files affected by revision r332539:

(Note: At the moment, these links point to ViewVC on svn.freebsd.org. They are probably slow. Do not overuse.)

   Contents     MODIFY   /stable/11  
  History   Contents   Diff   MODIFY   /stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c  
  History   Contents   Diff   MODIFY   /stable/11/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c  

Commit message:

MFC r329808: MFV r329807:
8940 Sending an intra-pool resumable send stream may result in EXDEV

illumos/illumos-gate@544132fce3fa6583f01318f9559adc46614343a7

"zfs send -t <token>" for an incremental send should be able to resume
successfully when sending to the same pool: a subtle issue in
zfs_iter_children() doesn't currently allow this.

Because resuming from a token requires "guid" -> "dataset" mapping
(guid_to_name()), we have to walk the whole hierarchy to find the right
snapshots to send.
When resuming an incremental send both source and destination live in the
same pool and have the same guid: this is where zfs_iter_children() gets
confused and picks up the wrong snapshot, so we end up trying to send an
incremental "destination@snap1 -> source@snap2" stream instead of
"source@snap1 -> source@snap2": this fails with an "Invalid cross-device
link" (EXDEV) error.

Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Approved by: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
Author: loli10K <ezomori.nozomu@gmail.com>

 


Powered by Python FreeBSD support by secnetix GmbH & Co. KG

Page generated in 8 ms, 3 files printed. Current time is 2018-04-23 14:52:39. All times are in UTC/GMT.