summaryrefslogtreecommitdiffstats
path: root/sbin/newfs/mkfs.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2001-05-29 19:40:39 +0000
committerphk <phk@FreeBSD.org>2001-05-29 19:40:39 +0000
commit342f1e5c8731f4460a796e74721a8a3fdf305dc5 (patch)
treeb491d84b785f25e2a5bfe3bbf5409ae1863f015d /sbin/newfs/mkfs.c
parent3c6f0395e623c63ef5fb2c5b73c76c32f13c0239 (diff)
downloadFreeBSD-src-342f1e5c8731f4460a796e74721a8a3fdf305dc5.zip
FreeBSD-src-342f1e5c8731f4460a796e74721a8a3fdf305dc5.tar.gz
A more complete removal of MFS related code.
XXX: This program badly needs a style(9) + BDECFLAGS treatment.
Diffstat (limited to 'sbin/newfs/mkfs.c')
-rw-r--r--sbin/newfs/mkfs.c174
1 files changed, 15 insertions, 159 deletions
diff --git a/sbin/newfs/mkfs.c b/sbin/newfs/mkfs.c
index 28334e6..19049ee 100644
--- a/sbin/newfs/mkfs.c
+++ b/sbin/newfs/mkfs.c
@@ -90,9 +90,6 @@ extern void srandomdev __P((void));
/*
* variables set up by front end.
*/
-extern int mfs; /* run as the memory based filesystem */
-extern char *mfs_mtpt; /* mount point for mfs */
-extern struct stat mfs_mtstat; /* stat prior to mount */
extern int Nflag; /* run mkfs without writing file system */
extern int Oflag; /* format as an 4.3BSD file system */
extern int Uflag; /* enable soft updates for file system */
@@ -159,8 +156,6 @@ void wtfs __P((daddr_t, int, char *));
void wtfsflush __P((void));
#ifndef STANDALONE
-void get_memleft __P((void));
-void raise_data_limit __P((void));
#else
void free __P((char *));
char * calloc __P((u_long, u_long));
@@ -168,8 +163,6 @@ caddr_t malloc __P((u_long));
caddr_t realloc __P((char *, u_long));
#endif
-int mfs_ppid = 0;
-
void
mkfs(pp, fsys, fi, fo)
struct partition *pp;
@@ -182,10 +175,8 @@ mkfs(pp, fsys, fi, fo)
off_t usedb;
long mapcramped, inodecramped;
long postblsize, rotblsize, totalsbsize;
- int status, fd;
time_t utime;
quad_t sizepb;
- void started();
int width;
char tmpbuf[100]; /* XXX this will break in about 2,500 years */
@@ -198,55 +189,6 @@ mkfs(pp, fsys, fi, fo)
srandomdev();
}
#endif
- if (mfs) {
- mfs_ppid = getpid();
- (void) signal(SIGUSR1, started);
- if ((i = fork())) {
- if (i == -1)
- err(10, "mfs");
- if (waitpid(i, &status, 0) != -1 && WIFEXITED(status))
- exit(WEXITSTATUS(status));
- exit(11);
- /* NOTREACHED */
- }
-#ifdef STANDALONE
- (void)malloc(0);
-#else
- raise_data_limit();
-#endif
- if(filename) {
- unsigned char buf[BUFSIZ];
- unsigned long l,l1;
- fd = open(filename,O_RDWR|O_TRUNC|O_CREAT,0644);
- if(fd < 0)
- err(12, "%s", filename);
- for(l=0;l< fssize * sectorsize;l += l1) {
- l1 = fssize * sectorsize;
- if (BUFSIZ < l1)
- l1 = BUFSIZ;
- if (l1 != write(fd,buf,l1))
- err(12, "%s", filename);
- }
- membase = mmap(
- 0,
- fssize * sectorsize,
- PROT_READ|PROT_WRITE,
- MAP_SHARED,
- fd,
- 0);
- if(membase == MAP_FAILED)
- err(12, "mmap");
- close(fd);
- } else {
-#ifndef STANDALONE
- get_memleft();
-#endif
- if (fssize * sectorsize > (memleft - 131072))
- fssize = (memleft - 131072) / sectorsize;
- if ((membase = malloc(fssize * sectorsize)) == NULL)
- errx(13, "malloc failed");
- }
- }
fsi = fi;
fso = fo;
if (Oflag) {
@@ -637,7 +579,7 @@ next:
NSPF(&sblock);
warn = 0;
}
- if (warn && !mfs) {
+ if (warn) {
printf("Warning: %d sector(s) in last cylinder unallocated\n",
sblock.fs_spc -
(fssize * NSPF(&sblock) - (sblock.fs_ncyl - 1)
@@ -684,32 +626,27 @@ next:
/*
* Dump out summary information about file system.
*/
- if (!mfs) {
- printf("%s:\t%d sectors in %d %s of %d tracks, %d sectors\n",
- fsys, sblock.fs_size * NSPF(&sblock), sblock.fs_ncyl,
- "cylinders", sblock.fs_ntrak, sblock.fs_nsect);
+ printf("%s:\t%d sectors in %d %s of %d tracks, %d sectors\n",
+ fsys, sblock.fs_size * NSPF(&sblock), sblock.fs_ncyl,
+ "cylinders", sblock.fs_ntrak, sblock.fs_nsect);
#define B2MBFACTOR (1 / (1024.0 * 1024.0))
- printf(
- "\t%.1fMB in %d cyl groups (%d c/g, %.2fMB/g, %d i/g)%s\n",
- (float)sblock.fs_size * sblock.fs_fsize * B2MBFACTOR,
- sblock.fs_ncg, sblock.fs_cpg,
- (float)sblock.fs_fpg * sblock.fs_fsize * B2MBFACTOR,
- sblock.fs_ipg,
- sblock.fs_flags & FS_DOSOFTDEP ? " SOFTUPDATES" : "");
+ printf(
+ "\t%.1fMB in %d cyl groups (%d c/g, %.2fMB/g, %d i/g)%s\n",
+ (float)sblock.fs_size * sblock.fs_fsize * B2MBFACTOR,
+ sblock.fs_ncg, sblock.fs_cpg,
+ (float)sblock.fs_fpg * sblock.fs_fsize * B2MBFACTOR,
+ sblock.fs_ipg,
+ sblock.fs_flags & FS_DOSOFTDEP ? " SOFTUPDATES" : "");
#undef B2MBFACTOR
- }
/*
* Now build the cylinders group blocks and
* then print out indices of cylinder groups.
*/
- if (!mfs)
- printf("super-block backups (for fsck -b #) at:\n");
+ printf("super-block backups (for fsck -b #) at:\n");
i = 0;
width = charsperline();
for (cylno = 0; cylno < sblock.fs_ncg; cylno++) {
initcg(cylno, utime);
- if (mfs)
- continue;
j = snprintf(tmpbuf, sizeof(tmpbuf), " %ld%s",
fsbtodb(&sblock, cgsblock(&sblock, cylno)),
cylno < (sblock.fs_ncg-1) ? "," : "" );
@@ -721,9 +658,8 @@ next:
printf("%s", tmpbuf);
fflush(stdout);
}
- if (!mfs)
- printf("\n");
- if (Nflag && !mfs)
+ printf("\n");
+ if (Nflag)
exit(0);
/*
* Now construct the initial file system,
@@ -752,18 +688,6 @@ next:
pp->p_fsize = sblock.fs_fsize;
pp->p_frag = sblock.fs_frag;
pp->p_cpg = sblock.fs_cpg;
- /*
- * Notify parent process of success.
- * Dissociate from session and tty.
- */
- if (mfs) {
- kill(mfs_ppid, SIGUSR1);
- (void) setsid();
- (void) close(0);
- (void) close(1);
- (void) close(2);
- (void) chdir("/");
- }
}
/*
@@ -1009,10 +933,7 @@ fsinit(utime)
/*
* create the root directory
*/
- if (mfs)
- node.di_mode = IFDIR | 01777;
- else
- node.di_mode = IFDIR | UMASK;
+ node.di_mode = IFDIR | UMASK;
node.di_nlink = PREDEFDIR;
if (Oflag)
node.di_size = makedir((struct direct *)oroot_dir, PREDEFDIR);
@@ -1178,34 +1099,6 @@ iput(ip, ino)
wtfs(d, sblock.fs_bsize, (char *)buf);
}
-/*
- * Notify parent process that the filesystem has created itself successfully.
- *
- * We have to wait until the mount has actually completed!
- */
-void
-started()
-{
- int retry = 100; /* 10 seconds, 100ms */
-
- while (mfs_ppid && retry) {
- struct stat st;
-
- if (
- stat(mfs_mtpt, &st) < 0 ||
- st.st_dev != mfs_mtstat.st_dev
- ) {
- break;
- }
- usleep(100*1000);
- --retry;
- }
- if (retry == 0) {
- fatal("mfs mount failed waiting for mount to go active");
- }
- exit(0);
-}
-
#ifdef STANDALONE
/*
* Replace libc function with one suited to our needs.
@@ -1285,18 +1178,6 @@ free(ptr)
#else /* !STANDALONE */
-void
-raise_data_limit()
-{
- struct rlimit rlp;
-
- if (getrlimit(RLIMIT_DATA, &rlp) < 0)
- warn("getrlimit");
- rlp.rlim_cur = rlp.rlim_max;
- if (setrlimit(RLIMIT_DATA, &rlp) < 0)
- warn("setrlimit");
-}
-
#ifdef __ELF__
extern char *_etext;
#define etext _etext
@@ -1304,23 +1185,6 @@ extern char *_etext;
extern char *etext;
#endif
-void
-get_memleft()
-{
- static u_long pgsz;
- struct rlimit rlp;
- u_long freestart;
- u_long dstart;
- u_long memused;
-
- pgsz = getpagesize() - 1;
- dstart = ((u_long)&etext) &~ pgsz;
- freestart = ((u_long)(sbrk(0) + pgsz) &~ pgsz);
- if (getrlimit(RLIMIT_DATA, &rlp) < 0)
- warn("getrlimit");
- memused = freestart - dstart;
- memleft = rlp.rlim_cur - memused;
-}
#endif /* STANDALONE */
/*
@@ -1335,10 +1199,6 @@ rdfs(bno, size, bf)
int n;
wtfsflush();
- if (mfs) {
- memmove(bf, membase + bno * sectorsize, size);
- return;
- }
if (lseek(fsi, (off_t)bno * sectorsize, 0) < 0) {
printf("seek error: %ld\n", (long)bno);
err(33, "rdfs");
@@ -1388,10 +1248,6 @@ wtfs(bno, size, bf)
int n;
int done;
- if (mfs) {
- memmove(membase + bno * sectorsize, bf, size);
- return;
- }
if (Nflag)
return;
done = 0;
OpenPOWER on IntegriCloud