summaryrefslogtreecommitdiffstats
path: root/sbin/badsect/badsect.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/badsect/badsect.c')
-rw-r--r--sbin/badsect/badsect.c50
1 files changed, 25 insertions, 25 deletions
diff --git a/sbin/badsect/badsect.c b/sbin/badsect/badsect.c
index 4526c1b..67cc815 100644
--- a/sbin/badsect/badsect.c
+++ b/sbin/badsect/badsect.c
@@ -38,7 +38,11 @@ static const char copyright[] =
#endif /* not lint */
#ifndef lint
+#if 0
static const char sccsid[] = "@(#)badsect.c 8.1 (Berkeley) 6/5/93";
+#endif
+static const char rcsid[] =
+ "$Id$";
#endif /* not lint */
/*
@@ -57,6 +61,7 @@ static const char sccsid[] = "@(#)badsect.c 8.1 (Berkeley) 6/5/93";
#include <ufs/ffs/fs.h>
#include <ufs/ufs/dinode.h>
+#include <err.h>
#include <dirent.h>
#include <fcntl.h>
#include <paths.h>
@@ -84,6 +89,13 @@ char buf[MAXBSIZE];
void rdfs __P((daddr_t, int, char *));
int chkuse __P((daddr_t, int));
+static void
+usage(void)
+{
+ fprintf(stderr, "usage: badsect bbdir blkno ...\n");
+ exit(1);
+}
+
int
main(argc, argv)
int argc;
@@ -97,26 +109,18 @@ main(argc, argv)
char name[2 * MAXPATHLEN];
char *name_dir_end;
- if (argc < 3) {
- fprintf(stderr, "usage: badsect bbdir blkno [ blkno ]\n");
- exit(1);
- }
- if (chdir(argv[1]) < 0 || stat(".", &stbuf) < 0) {
- perror(argv[1]);
- exit(2);
- }
+ if (argc < 3)
+ usage();
+ if (chdir(argv[1]) < 0 || stat(".", &stbuf) < 0)
+ err(2, "%s", argv[1]);
strcpy(name, _PATH_DEV);
- if ((dirp = opendir(name)) == NULL) {
- perror(name);
- exit(3);
- }
+ if ((dirp = opendir(name)) == NULL)
+ err(3, "%s", name);
name_dir_end = name + strlen(name);
while ((dp = readdir(dirp)) != NULL) {
strcpy(name_dir_end, dp->d_name);
- if (lstat(name, &devstat) < 0) {
- perror(name);
- exit(4);
- }
+ if (lstat(name, &devstat) < 0)
+ err(4, "%s", name);
if (stbuf.st_dev == devstat.st_rdev &&
(devstat.st_mode & IFMT) == IFBLK)
break;
@@ -133,10 +137,8 @@ main(argc, argv)
*/
memcpy(name_dir_end + 1, name_dir_end, strlen(name_dir_end) + 1);
*name_dir_end = 'r';
- if ((fsi = open(name, O_RDONLY)) < 0) {
- perror(name);
- exit(6);
- }
+ if ((fsi = open(name, O_RDONLY)) < 0)
+ err(6, "%s", name);
fs = &sblock;
rdfs(SBOFF, SBSIZE, (char *)fs);
dev_bsize = fs->fs_fsize / fsbtodb(fs, 1);
@@ -157,7 +159,7 @@ main(argc, argv)
errs++;
}
else if (mknod(*argv, IFMT|0600, (dev_t)diskbn) < 0) {
- perror(*argv);
+ warn("%s", *argv);
errs++;
}
}
@@ -218,13 +220,11 @@ rdfs(bno, size, bf)
if (lseek(fsi, (off_t)bno * dev_bsize, SEEK_SET) < 0) {
printf("seek error: %ld\n", bno);
- perror("rdfs");
- exit(1);
+ err(1, "rdfs");
}
n = read(fsi, bf, size);
if (n != size) {
printf("read error: %ld\n", bno);
- perror("rdfs");
- exit(1);
+ err(1, "rdfs");
}
}
OpenPOWER on IntegriCloud