Deleted Added
full compact
fsck.c (241806) fsck.c (241807)
1/* $NetBSD: fsck.c,v 1.30 2003/08/07 10:04:15 agc Exp $ */
2
3/*
4 * Copyright (c) 1996 Christos Zoulas. All rights reserved.
5 * Copyright (c) 1980, 1989, 1993, 1994
6 * The Regents of the University of California. All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 21 unchanged lines hidden (view full) ---

30 * SUCH DAMAGE.
31 *
32 * From: @(#)mount.c 8.19 (Berkeley) 4/19/94
33 * From: $NetBSD: mount.c,v 1.24 1995/11/18 03:34:29 cgd Exp
34 * $NetBSD: fsck.c,v 1.30 2003/08/07 10:04:15 agc Exp $
35 */
36
37#include <sys/cdefs.h>
1/* $NetBSD: fsck.c,v 1.30 2003/08/07 10:04:15 agc Exp $ */
2
3/*
4 * Copyright (c) 1996 Christos Zoulas. All rights reserved.
5 * Copyright (c) 1980, 1989, 1993, 1994
6 * The Regents of the University of California. All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 21 unchanged lines hidden (view full) ---

30 * SUCH DAMAGE.
31 *
32 * From: @(#)mount.c 8.19 (Berkeley) 4/19/94
33 * From: $NetBSD: mount.c,v 1.24 1995/11/18 03:34:29 cgd Exp
34 * $NetBSD: fsck.c,v 1.30 2003/08/07 10:04:15 agc Exp $
35 */
36
37#include <sys/cdefs.h>
38__FBSDID("$FreeBSD: head/sbin/fsck/fsck.c 241806 2012-10-21 12:01:11Z uqs $");
38__FBSDID("$FreeBSD: head/sbin/fsck/fsck.c 241807 2012-10-21 12:01:19Z uqs $");
39
40#include <sys/param.h>
41#include <sys/mount.h>
42#include <sys/queue.h>
43#include <sys/wait.h>
44#define FSTYPENAMES
45#include <sys/disklabel.h>
46#include <sys/ioctl.h>

--- 21 unchanged lines hidden (view full) ---

68 char *options;
69 TAILQ_ENTRY(entry) entries;
70};
71
72static char *options = NULL;
73static int flags = 0;
74static int forceflag = 0;
75
39
40#include <sys/param.h>
41#include <sys/mount.h>
42#include <sys/queue.h>
43#include <sys/wait.h>
44#define FSTYPENAMES
45#include <sys/disklabel.h>
46#include <sys/ioctl.h>

--- 21 unchanged lines hidden (view full) ---

68 char *options;
69 TAILQ_ENTRY(entry) entries;
70};
71
72static char *options = NULL;
73static int flags = 0;
74static int forceflag = 0;
75
76static int checkfs(const char *, const char *, const char *, char *, pid_t *);
76static int checkfs(const char *, const char *, const char *, const char *, pid_t *);
77static int selected(const char *);
78static void addoption(char *);
79static const char *getoptions(const char *);
80static void addentry(struct fstypelist *, const char *, const char *);
81static void maketypelist(char *);
82static void catopt(char **, const char *);
77static int selected(const char *);
78static void addoption(char *);
79static const char *getoptions(const char *);
80static void addentry(struct fstypelist *, const char *, const char *);
81static void maketypelist(char *);
82static void catopt(char **, const char *);
83static void mangle(char *, int *, const char ***, int *);
83static void mangle(char *, int *, const char ** volatile *, int *);
84static const char *getfslab(const char *);
85static void usage(void) __dead2;
86static int isok(struct fstab *);
87
88int
89main(int argc, char *argv[])
90{
91 struct fstab *fs;

--- 90 unchanged lines hidden (view full) ---

182 strcmp(type, FSTAB_RW) && strcmp(type, FSTAB_RQ))
183
184
185 for (; argc--; argv++) {
186 const char *spec, *mntpt, *type, *cp;
187 char device[MAXPATHLEN];
188 struct statfs *mntp;
189
84static const char *getfslab(const char *);
85static void usage(void) __dead2;
86static int isok(struct fstab *);
87
88int
89main(int argc, char *argv[])
90{
91 struct fstab *fs;

--- 90 unchanged lines hidden (view full) ---

182 strcmp(type, FSTAB_RW) && strcmp(type, FSTAB_RQ))
183
184
185 for (; argc--; argv++) {
186 const char *spec, *mntpt, *type, *cp;
187 char device[MAXPATHLEN];
188 struct statfs *mntp;
189
190 mntpt = NULL;
190 spec = *argv;
191 cp = strrchr(spec, '/');
192 if (cp == 0) {
193 (void)snprintf(device, sizeof(device), "%s%s",
194 _PATH_DEV, spec);
195 spec = device;
196 }
197 mntp = getmntpt(spec);

--- 82 unchanged lines hidden (view full) ---

280 return (1);
281 printf("%s: DEFER FOR BACKGROUND CHECKING\n", fs->fs_spec);
282 return (0);
283}
284
285
286static int
287checkfs(const char *pvfstype, const char *spec, const char *mntpt,
191 spec = *argv;
192 cp = strrchr(spec, '/');
193 if (cp == 0) {
194 (void)snprintf(device, sizeof(device), "%s%s",
195 _PATH_DEV, spec);
196 spec = device;
197 }
198 mntp = getmntpt(spec);

--- 82 unchanged lines hidden (view full) ---

281 return (1);
282 printf("%s: DEFER FOR BACKGROUND CHECKING\n", fs->fs_spec);
283 return (0);
284}
285
286
287static int
288checkfs(const char *pvfstype, const char *spec, const char *mntpt,
288 char *auxopt, pid_t *pidp)
289 const char *auxopt, pid_t *pidp)
289{
290{
290 const char **argv;
291 const char ** volatile argv;
291 pid_t pid;
292 int argc, i, status, maxargc;
293 char *optbuf, execbase[MAXPATHLEN];
294 char *vfstype = NULL;
295 const char *extra = NULL;
296
297#ifdef __GNUC__
298 /* Avoid vfork clobbering */

--- 8 unchanged lines hidden (view full) ---

307 * from the disklabel work for "4.2BSD" filesystems. It does a
308 * very limited subset of transliteration to a normalised form of
309 * filesystem name, and we do not seem to enforce a filesystem
310 * name character set.
311 */
312 vfstype = strdup(pvfstype);
313 if (vfstype == NULL)
314 perr("strdup(pvfstype)");
292 pid_t pid;
293 int argc, i, status, maxargc;
294 char *optbuf, execbase[MAXPATHLEN];
295 char *vfstype = NULL;
296 const char *extra = NULL;
297
298#ifdef __GNUC__
299 /* Avoid vfork clobbering */

--- 8 unchanged lines hidden (view full) ---

308 * from the disklabel work for "4.2BSD" filesystems. It does a
309 * very limited subset of transliteration to a normalised form of
310 * filesystem name, and we do not seem to enforce a filesystem
311 * name character set.
312 */
313 vfstype = strdup(pvfstype);
314 if (vfstype == NULL)
315 perr("strdup(pvfstype)");
315 for (i = 0; i < strlen(vfstype); i++) {
316 for (i = 0; i < (int)strlen(vfstype); i++) {
316 vfstype[i] = tolower(vfstype[i]);
317 if (vfstype[i] == ' ')
318 vfstype[i] = '_';
319 }
320
321 extra = getoptions(vfstype);
322 optbuf = NULL;
323 if (options)

--- 32 unchanged lines hidden (view full) ---

356 free(vfstype);
357 return (1);
358
359 case 0: /* Child. */
360 if ((flags & CHECK_DEBUG) && auxopt == NULL)
361 _exit(0);
362
363 /* Go find an executable. */
317 vfstype[i] = tolower(vfstype[i]);
318 if (vfstype[i] == ' ')
319 vfstype[i] = '_';
320 }
321
322 extra = getoptions(vfstype);
323 optbuf = NULL;
324 if (options)

--- 32 unchanged lines hidden (view full) ---

357 free(vfstype);
358 return (1);
359
360 case 0: /* Child. */
361 if ((flags & CHECK_DEBUG) && auxopt == NULL)
362 _exit(0);
363
364 /* Go find an executable. */
364 execvP(execbase, _PATH_SYSPATH, (char * const *)argv);
365 execvP(execbase, _PATH_SYSPATH, __DECONST(char * const *, argv));
365 if (spec)
366 warn("exec %s for %s in %s", execbase, spec, _PATH_SYSPATH);
367 else
368 warn("exec %s in %s", execbase, _PATH_SYSPATH);
369 _exit(1);
370 /* NOTREACHED */
371
372 default: /* Parent. */

--- 120 unchanged lines hidden (view full) ---

493 (void)snprintf(s + i, j, ",%s", o);
494 } else
495 s = estrdup(o);
496 *sp = s;
497}
498
499
500static void
366 if (spec)
367 warn("exec %s for %s in %s", execbase, spec, _PATH_SYSPATH);
368 else
369 warn("exec %s in %s", execbase, _PATH_SYSPATH);
370 _exit(1);
371 /* NOTREACHED */
372
373 default: /* Parent. */

--- 120 unchanged lines hidden (view full) ---

494 (void)snprintf(s + i, j, ",%s", o);
495 } else
496 s = estrdup(o);
497 *sp = s;
498}
499
500
501static void
501mangle(char *opts, int *argcp, const char ***argvp, int *maxargcp)
502mangle(char *opts, int *argcp, const char ** volatile *argvp, int *maxargcp)
502{
503 char *p, *s;
504 int argc, maxargc;
505 const char **argv;
506
507 argc = *argcp;
508 argv = *argvp;
509 maxargc = *maxargcp;

--- 20 unchanged lines hidden (view full) ---

530 }
531
532 *argcp = argc;
533 *argvp = argv;
534 *maxargcp = maxargc;
535}
536
537
503{
504 char *p, *s;
505 int argc, maxargc;
506 const char **argv;
507
508 argc = *argcp;
509 argv = *argvp;
510 maxargc = *maxargcp;

--- 20 unchanged lines hidden (view full) ---

531 }
532
533 *argcp = argc;
534 *argvp = argv;
535 *maxargcp = maxargc;
536}
537
538
538const static char *
539static const char *
539getfslab(const char *str)
540{
541 struct disklabel dl;
542 int fd;
543 char p;
544 const char *vfstype;
545 u_char t;
546

--- 38 unchanged lines hidden ---
540getfslab(const char *str)
541{
542 struct disklabel dl;
543 int fd;
544 char p;
545 const char *vfstype;
546 u_char t;
547

--- 38 unchanged lines hidden ---