aboutsummaryrefslogtreecommitdiff
path: root/sbin/restore/restore.c
diff options
context:
space:
mode:
authorDavid Malone <dwmalone@FreeBSD.org>2006-12-05 11:18:51 +0000
committerDavid Malone <dwmalone@FreeBSD.org>2006-12-05 11:18:51 +0000
commitcbc8bb98efc17781454a83b2d5f53042f49a4776 (patch)
tree93515273cbec28074cbc2e6628a45e20d8f8745d /sbin/restore/restore.c
parent762d365ac610288281abb20ff2959a084b2548dd (diff)
downloadsrc-cbc8bb98efc17781454a83b2d5f53042f49a4776.tar.gz
src-cbc8bb98efc17781454a83b2d5f53042f49a4776.zip
Notes
Diffstat (limited to 'sbin/restore/restore.c')
-rw-r--r--sbin/restore/restore.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sbin/restore/restore.c b/sbin/restore/restore.c
index 046c0d27afc2..e494cdb69a7d 100644
--- a/sbin/restore/restore.c
+++ b/sbin/restore/restore.c
@@ -687,6 +687,17 @@ createfiles(void)
*/
if (first > last)
return;
+ if (Dflag) {
+ if (curfile.ino == maxino)
+ return;
+ if((ep = lookupino(curfile.ino)) != NULL &&
+ (ep->e_flags & (NEW|EXTRACT))) {
+ goto justgetit;
+ } else {
+ skipfile();
+ continue;
+ }
+ }
/*
* Reject any volumes with inodes greater than the last
* one needed, so that we can quickly skip backwards to
@@ -749,6 +760,7 @@ createfiles(void)
ep = lookupino(next);
if (ep == NULL)
panic("corrupted symbol table\n");
+justgetit:
(void) extractfile(myname(ep));
ep->e_flags &= ~NEW;
if (volno != curvol)