From owner-cvs-all Wed Feb 13 17:30:50 2002 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id BA71F37B416; Wed, 13 Feb 2002 17:30:45 -0800 (PST) Received: (from iedowse@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g1E1UjU33825; Wed, 13 Feb 2002 17:30:45 -0800 (PST) (envelope-from iedowse) Message-Id: <200202140130.g1E1UjU33825@freefall.freebsd.org> From: Ian Dowse Date: Wed, 13 Feb 2002 17:30:45 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sbin/restore restore.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG iedowse 2002/02/13 17:30:45 PST Modified files: sbin/restore restore.c Log: In createfiles(), properly handle a number of cases where no further volumes are available, instead of getting stuck in a loop calling getvol(). Normally restore in 'x' or 'i' modes will ask for a new (earlier) volume when the current inode number on the tape is greater than the last inode to be restored, since there can be no further inodes of interest on that volume. However we don't want to change volumes in this case either if the user explicitly said that there are no more tapes, or if we are looking at the first volume. When no more volumes are available but there are still inodes that we have not found, we now just fall through to the code that prints out a list of any missing files, so the restore completes normally. Also simplify the logic a bit by always returning to the start of the main for(;;) loop whenever the volume has changed. This should completely fix the "Changing volumes on pipe input" bug that is often observed when restoring dumps of active filesystems. PR: bin/4176, bin/34604, misc/34675 Revision Changes Path 1.8 +24 -16 src/sbin/restore/restore.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message