Deleted Added
full compact
tunefs.c (71790) tunefs.c (75377)
1/*
2 * Copyright (c) 1983, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

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

37 The Regents of the University of California. All rights reserved.\n";
38#endif /* not lint */
39
40#ifndef lint
41#if 0
42static char sccsid[] = "@(#)tunefs.c 8.2 (Berkeley) 4/19/94";
43#endif
44static const char rcsid[] =
1/*
2 * Copyright (c) 1983, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

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

37 The Regents of the University of California. All rights reserved.\n";
38#endif /* not lint */
39
40#ifndef lint
41#if 0
42static char sccsid[] = "@(#)tunefs.c 8.2 (Berkeley) 4/19/94";
43#endif
44static const char rcsid[] =
45 "$FreeBSD: head/sbin/tunefs/tunefs.c 71790 2001-01-29 11:00:16Z ben $";
45 "$FreeBSD: head/sbin/tunefs/tunefs.c 75377 2001-04-10 08:38:59Z mckusick $";
46#endif /* not lint */
47
48/*
49 * tunefs: change layout parameters to an existing file system.
50 */
51#include <sys/param.h>
52#include <sys/mount.h>
53#include <sys/stat.h>

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

86int
87main(argc, argv)
88 int argc;
89 char *argv[];
90{
91 char *special, *name;
92 struct stat st;
93 int Aflag = 0, active = 0;
46#endif /* not lint */
47
48/*
49 * tunefs: change layout parameters to an existing file system.
50 */
51#include <sys/param.h>
52#include <sys/mount.h>
53#include <sys/stat.h>

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

86int
87main(argc, argv)
88 int argc;
89 char *argv[];
90{
91 char *special, *name;
92 struct stat st;
93 int Aflag = 0, active = 0;
94 int aflag = 0, dflag = 0, eflag = 0, mflag = 0;
95 int nflag = 0, oflag = 0, pflag = 0;
96 int avalue = 0, dvalue = 0, evalue = 0, mvalue = 0, ovalue = 0;
94 int aflag = 0, dflag = 0, eflag = 0, fflag = 0, mflag = 0;
95 int nflag = 0, oflag = 0, pflag = 0, sflag = 0;
96 int avalue = 0, dvalue = 0, evalue = 0, fvalue = 0;
97 int mvalue = 0, ovalue = 0, svalue = 0;
97 char *nvalue = NULL;
98 struct fstab *fs;
99 char *chg[2], device[MAXPATHLEN];
100 struct ufs_args args;
101 struct statfs stfs;
102 int found_arg, ch;
103
104 if (argc < 3)
105 usage();
106 found_arg = 0; /* at least one arg is required */
98 char *nvalue = NULL;
99 struct fstab *fs;
100 char *chg[2], device[MAXPATHLEN];
101 struct ufs_args args;
102 struct statfs stfs;
103 int found_arg, ch;
104
105 if (argc < 3)
106 usage();
107 found_arg = 0; /* at least one arg is required */
107 while ((ch = getopt(argc, argv, "Aa:d:e:m:n:o:p")) != -1)
108 while ((ch = getopt(argc, argv, "Aa:d:e:f:m:n:o:ps:")) != -1)
108 switch (ch) {
109 case 'A':
110 found_arg = 1;
111 Aflag++;
112 break;
113 case 'a':
114 found_arg = 1;
115 name = "maximum contiguous block count";

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

127 case 'e':
128 found_arg = 1;
129 name = "maximum blocks per file in a cylinder group";
130 evalue = atoi(optarg);
131 if (evalue < 1)
132 errx(10, "%s must be >= 1 (was %s)", name, optarg);
133 eflag = 1;
134 break;
109 switch (ch) {
110 case 'A':
111 found_arg = 1;
112 Aflag++;
113 break;
114 case 'a':
115 found_arg = 1;
116 name = "maximum contiguous block count";

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

128 case 'e':
129 found_arg = 1;
130 name = "maximum blocks per file in a cylinder group";
131 evalue = atoi(optarg);
132 if (evalue < 1)
133 errx(10, "%s must be >= 1 (was %s)", name, optarg);
134 eflag = 1;
135 break;
136 case 'f':
137 found_arg = 1;
138 name = "average file size";
139 fvalue = atoi(optarg);
140 if (fvalue < 1)
141 errx(10, "%s must be >= 1 (was %s)", name, optarg);
142 fflag = 1;
143 break;
135 case 'm':
136 found_arg = 1;
137 name = "minimum percentage of free space";
138 mvalue = atoi(optarg);
139 if (mvalue < 0 || mvalue > 99)
140 errx(10, "bad %s (%s)", name, optarg);
141 mflag = 1;
142 break;

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

163 errx(10, "bad %s (options are `space' or `time')",
164 name);
165 oflag = 1;
166 break;
167 case 'p':
168 found_arg = 1;
169 pflag = 1;
170 break;
144 case 'm':
145 found_arg = 1;
146 name = "minimum percentage of free space";
147 mvalue = atoi(optarg);
148 if (mvalue < 0 || mvalue > 99)
149 errx(10, "bad %s (%s)", name, optarg);
150 mflag = 1;
151 break;

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

172 errx(10, "bad %s (options are `space' or `time')",
173 name);
174 oflag = 1;
175 break;
176 case 'p':
177 found_arg = 1;
178 pflag = 1;
179 break;
180 case 's':
181 found_arg = 1;
182 name = "expected number of files per directory";
183 svalue = atoi(optarg);
184 if (svalue < 1)
185 errx(10, "%s must be >= 1 (was %s)", name, optarg);
186 sflag = 1;
187 break;
171 default:
172 usage();
173 }
174 argc -= optind;
175 argv += optind;
176
177 if (found_arg == 0 || argc != 1)
178 usage();

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

234 warnx("%s remains unchanged as %d", name, evalue);
235 }
236 else {
237 warnx("%s changes from %d to %d",
238 name, sblock.fs_maxbpg, evalue);
239 sblock.fs_maxbpg = evalue;
240 }
241 }
188 default:
189 usage();
190 }
191 argc -= optind;
192 argv += optind;
193
194 if (found_arg == 0 || argc != 1)
195 usage();

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

251 warnx("%s remains unchanged as %d", name, evalue);
252 }
253 else {
254 warnx("%s changes from %d to %d",
255 name, sblock.fs_maxbpg, evalue);
256 sblock.fs_maxbpg = evalue;
257 }
258 }
259 if (fflag) {
260 name = "average file size";
261 if (sblock.fs_avgfilesize == fvalue) {
262 warnx("%s remains unchanged as %d", name, fvalue);
263 }
264 else {
265 warnx("%s changes from %d to %d",
266 name, sblock.fs_avgfilesize, fvalue);
267 sblock.fs_avgfilesize = fvalue;
268 }
269 }
242 if (mflag) {
243 name = "minimum percentage of free space";
244 if (sblock.fs_minfree == mvalue) {
245 warnx("%s remains unchanged as %d%%", name, mvalue);
246 }
247 else {
248 warnx("%s changes from %d%% to %d%%",
249 name, sblock.fs_minfree, mvalue);

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

286 if (sblock.fs_minfree >= MINFREE &&
287 ovalue == FS_OPTSPACE)
288 warnx(OPTWARN, "time", ">=", MINFREE);
289 if (sblock.fs_minfree < MINFREE &&
290 ovalue == FS_OPTTIME)
291 warnx(OPTWARN, "space", "<", MINFREE);
292 }
293 }
270 if (mflag) {
271 name = "minimum percentage of free space";
272 if (sblock.fs_minfree == mvalue) {
273 warnx("%s remains unchanged as %d%%", name, mvalue);
274 }
275 else {
276 warnx("%s changes from %d%% to %d%%",
277 name, sblock.fs_minfree, mvalue);

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

314 if (sblock.fs_minfree >= MINFREE &&
315 ovalue == FS_OPTSPACE)
316 warnx(OPTWARN, "time", ">=", MINFREE);
317 if (sblock.fs_minfree < MINFREE &&
318 ovalue == FS_OPTTIME)
319 warnx(OPTWARN, "space", "<", MINFREE);
320 }
321 }
322 if (sflag) {
323 name = "expected number of files per directory";
324 if (sblock.fs_avgfpdir == svalue) {
325 warnx("%s remains unchanged as %d", name, svalue);
326 }
327 else {
328 warnx("%s changes from %d to %d",
329 name, sblock.fs_avgfpdir, svalue);
330 sblock.fs_avgfpdir = svalue;
331 }
332 }
294
295 putsb(&sblock, special, Aflag);
296 if (active) {
297 bzero(&args, sizeof(args));
298 if (mount("ufs", fs->fs_file,
299 stfs.f_flags | MNT_UPDATE | MNT_RELOAD, &args) < 0)
300 err(9, "%s: reload", special);
301 warnx("file system reloaded");
302 }
303 exit(0);
304}
305
306void
307usage()
308{
309 fprintf(stderr, "%s\n%s\n%s\n",
333
334 putsb(&sblock, special, Aflag);
335 if (active) {
336 bzero(&args, sizeof(args));
337 if (mount("ufs", fs->fs_file,
338 stfs.f_flags | MNT_UPDATE | MNT_RELOAD, &args) < 0)
339 err(9, "%s: reload", special);
340 warnx("file system reloaded");
341 }
342 exit(0);
343}
344
345void
346usage()
347{
348 fprintf(stderr, "%s\n%s\n%s\n",
310"usage: tunefs [-A] [-a maxcontig] [-d rotdelay] [-e maxbpg] [-m minfree]",
311" [-p] [-n enable | disable] [-o space | time]",
312" special | filesystem");
349"usage: tunefs [-A] [-a maxcontig] [-d rotdelay] [-e maxbpg] [-f avgfilesize]",
350" [-m minfree] [-p] [-n enable | disable] [-o space | time]",
351" [-s filesperdir] special | filesystem");
313 exit(2);
314}
315
316void
317getsb(fs, file)
318 register struct fs *fs;
319 char *file;
320{

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

361 warnx("soft updates: (-n) %s",
362 (sblock.fs_flags & FS_DOSOFTDEP)? "enabled" : "disabled");
363 warnx("maximum contiguous block count: (-a) %d",
364 sblock.fs_maxcontig);
365 warnx("rotational delay between contiguous blocks: (-d) %d ms",
366 sblock.fs_rotdelay);
367 warnx("maximum blocks per file in a cylinder group: (-e) %d",
368 sblock.fs_maxbpg);
352 exit(2);
353}
354
355void
356getsb(fs, file)
357 register struct fs *fs;
358 char *file;
359{

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

400 warnx("soft updates: (-n) %s",
401 (sblock.fs_flags & FS_DOSOFTDEP)? "enabled" : "disabled");
402 warnx("maximum contiguous block count: (-a) %d",
403 sblock.fs_maxcontig);
404 warnx("rotational delay between contiguous blocks: (-d) %d ms",
405 sblock.fs_rotdelay);
406 warnx("maximum blocks per file in a cylinder group: (-e) %d",
407 sblock.fs_maxbpg);
408 warnx("average file size: (-f) %d",
409 sblock.fs_avgfilesize);
410 warnx("average number of files in a directory: (-s) %d",
411 sblock.fs_avgfpdir);
369 warnx("minimum percentage of free space: (-m) %d%%",
370 sblock.fs_minfree);
371 warnx("optimization preference: (-o) %s",
372 sblock.fs_optim == FS_OPTSPACE ? "space" : "time");
373 if (sblock.fs_minfree >= MINFREE &&
374 sblock.fs_optim == FS_OPTSPACE)
375 warnx(OPTWARN, "time", ">=", MINFREE);
376 if (sblock.fs_minfree < MINFREE &&

--- 34 unchanged lines hidden ---
412 warnx("minimum percentage of free space: (-m) %d%%",
413 sblock.fs_minfree);
414 warnx("optimization preference: (-o) %s",
415 sblock.fs_optim == FS_OPTSPACE ? "space" : "time");
416 if (sblock.fs_minfree >= MINFREE &&
417 sblock.fs_optim == FS_OPTSPACE)
418 warnx(OPTWARN, "time", ">=", MINFREE);
419 if (sblock.fs_minfree < MINFREE &&

--- 34 unchanged lines hidden ---