Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 Nov 2001 08:40:03 -0800 (PST)
From:      Makoto Matsushita <matusita@jp.freebsd.org>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/31009: Installing current snapshot fails at sysintall/install.c:installFilesystems()
Message-ID:  <200111081640.fA8Ge3U24274@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/31009; it has been noted by GNATS.

From: Makoto Matsushita <matusita@jp.freebsd.org>
To: freebsd-gnats-submit@FreeBSD.org
Cc: jkh@FreeBSD.org
Subject: Re: bin/31009: Installing current snapshot fails at
 sysintall/install.c:installFilesystems()
Date: Fri, 09 Nov 2001 01:36:51 +0900

 Hiroo-san's patch has a bug: if kernel does know about DEVFS, libdisk
 doesn't do mknod(2) even if it's actually not DEVFS.  This causes that
 current 5-current's sysinstall(8) fails to create filesystem while a
 fresh installation procedure.
 
 I've reported this bug (sysinstall fails to create filesystem) from
 users of snapshots.jp.FreeBSD.org, and confirmed that hiroo-san's
 patch is not an actual fix.
 
 Jordan, would you please check my patch?  If you are OK, please commit
 or I'll do.
 
 P.S.: I've already discussed with hiroo-san about this patch.
 
 -- -
 Makoto `MAR' MATSUSHITA
 
 Index: create_chunk.c
 ===================================================================
 RCS file: /home/ncvs/src/lib/libdisk/create_chunk.c,v
 retrieving revision 1.62
 diff -u -r1.62 create_chunk.c
 --- create_chunk.c	10 Oct 2001 07:46:04 -0000	1.62
 +++ create_chunk.c	8 Nov 2001 16:23:17 -0000
 @@ -17,10 +17,10 @@
  #include <ctype.h>
  #include <fcntl.h>
  #include <stdarg.h>
 -#include <sys/types.h>
 +#include <sys/param.h>
  #include <sys/disklabel.h>
  #include <sys/diskslice.h>
 -#include <sys/types.h>
 +#include <sys/mount.h>
  #include <sys/stat.h>
  #include <sys/sysctl.h>
  #include <grp.h>
 @@ -282,18 +282,22 @@
      char buf[BUFSIZ], buf2[BUFSIZ];
      struct group *grp;
      struct passwd *pwd;
 +    struct statfs fs;
      uid_t owner;
      gid_t group;
 -    int mib[4];
 -    size_t miblen;
  
      *buf2 = '\0';
 -    miblen = sizeof(mib)/sizeof(mib[0]);
      if (isDebug())
  	msgDebug("MakeDev: Called with %s on path %s\n", p, path);
      if (!strcmp(p, "X"))
  	return 0;
 -    if (!sysctlnametomib("vfs.devfs.generation", &mib, &miblen)) {
 +    if (statfs(path, &fs) != 0) {
 +#ifdef DEBUG
 +	warn("statfs(%s) failed\n", path);
 +#endif
 +	return 0;
 +    }
 +    if (strcmp(fs.f_fstypename, "devfs") == 0) {
  	if (isDebug())
  	    msgDebug("MakeDev: No need to mknod(2) with DEVFS.\n");
  	return 1;

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200111081640.fA8Ge3U24274>