libzfs_iter.c revision b7070b7dbcc2758a7f87cefb69ad42887a287152
2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. 2N/A * Copyright (c) 2013 by Delphix. All rights reserved. 2N/A * Copyright 2014 Nexenta Systems, Inc. All rights reserved. 2N/A /* expand nvlist memory and try again */ 2N/A * An errno value of ESRCH indicates normal completion. 2N/A * If ENOENT is returned, then the underlying dataset 2N/A * has been removed since we obtained the handle. 2N/A "cannot iterate filesystems"));
2N/A * Iterate over all child filesystems 2N/A * Silently ignore errors, as the only plausible explanation is 2N/A * that the pool has since been removed. 2N/A * Iterate over all snapshots 2N/A * Iterate over all bookmarks 2N/A /* Setup the requested properties nvlist. */ 2N/A * Routines for dealing with the sorted snapshot functionality 2N/A * If this snapshot was renamed while we were creating the 2N/A * AVL tree, it's possible that we already inserted it under 2N/A * its old name. Remove the old handle before adding the new 2N/A * Sort them according to creation time. We use the hidden 2N/A * CREATETXG property to get an absolute ordering of snapshots. 2N/A * spec is a string like "A,B%C,D" 2N/A * <snaps>, where <snaps> can be: 2N/A * <snap> (single snapshot) 2N/A * <snap>%<snap> (range of snapshots, inclusive) 2N/A * %<snap> (range of snapshots, starting with earliest) 2N/A * <snap>% (range of snapshots, ending with last) 2N/A * <snaps>[,...] (comma separated list of the above) 2N/A * If a snapshot can not be opened, continue trying to open the others, but 2N/A * return ENOENT at the end. 2N/A * If there is a lastname specified, make sure it 2N/A * Iterate over all children, snapshots and filesystems 2N/A * check if there is a cycle by seeing if this fs is already 2N/A "recursive dependency at '%s'"),
2N/A "cannot determine dependent "