From ff180522d81def73e89ec06b0e82d459144a5e26 Mon Sep 17 00:00:00 2001 From: Poul-Henning Kamp Date: Sat, 27 Nov 1999 20:02:27 +0000 Subject: Make fsck even more char/blk dev tolerant. --- sbin/quotacheck/preen.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) (limited to 'sbin/quotacheck/preen.c') diff --git a/sbin/quotacheck/preen.c b/sbin/quotacheck/preen.c index aedb5921cd99..fc6dd23c4307 100644 --- a/sbin/quotacheck/preen.c +++ b/sbin/quotacheck/preen.c @@ -309,24 +309,16 @@ retry: printf("Can't stat %s: %s\n", newname, strerror(errno)); return (origname); } - if ((stblock.st_mode & S_IFMT) == S_IFBLK || - (stblock.st_mode & S_IFMT) == S_IFCHR) { + switch(stblock.st_mode & S_IFMT) { + case S_IFCHR: + case S_IFBLK: if (stslash.st_dev == stblock.st_rdev) hotroot++; - raw = newname; - if (stat(raw, &stchar) < 0) { - printf("Can't stat %s: %s\n", raw, strerror(errno)); - return (origname); - } - if ((stchar.st_mode & S_IFMT) == S_IFCHR) { - if (stslash.st_dev == stchar.st_rdev) - hotroot++; - return (raw); - } else { - printf("%s is not a character device\n", raw); - return (origname); - } - } else if ((stblock.st_mode & S_IFMT) == S_IFDIR && !retried) { + return(newname); + case S_IFDIR: + if (retried) + break; + len = strlen(origname) - 1; if (len > 0 && origname[len] == '/') /* remove trailing slash */ -- cgit v1.2.3