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 --- |