Diff for /src/sys/kern/vfs_conf.c between versions 1.7 and 1.8

version 1.7, 2004/03/01 06:33:17 version 1.8, 2004/05/19 22:52:58
Line 215  vfs_mountroot_try(char *mountfrom) Line 215  vfs_mountroot_try(char *mountfrom)
                 printf("setrootbyname failed\n");                  printf("setrootbyname failed\n");
   
         /* If the root device is a type "memory disk", mount RW */          /* If the root device is a type "memory disk", mount RW */
        if (rootdev != NODEV && dev_dport(rootdev) &&        if (rootdev != NODEV && dev_is_good(rootdev) &&
             (dev_dflags(rootdev) & D_MEMDISK)) {              (dev_dflags(rootdev) & D_MEMDISK)) {
                 mp->mnt_flag &= ~MNT_RDONLY;                  mp->mnt_flag &= ~MNT_RDONLY;
         }          }
Line 270  vfs_mountroot_ask(void) Line 270  vfs_mountroot_ask(void)
                 if (name[0] == '?') {                  if (name[0] == '?') {
                         printf("Possibly valid devices for 'ufs' root:\n");                          printf("Possibly valid devices for 'ufs' root:\n");
                         for (i = 0; i < NUMCDEVSW; i++) {                          for (i = 0; i < NUMCDEVSW; i++) {
                                dev = makedev(i, 0);                                dev = udev2dev(makeudev(i, 0), 0);
                                if (dev_dport(dev) != NULL)                                if (dev_is_good(dev))
                                         printf(" \"%s\"", dev_dname(dev));                                          printf(" \"%s\"", dev_dname(dev));
                         }                          }
                         printf("\n");                          printf("\n");
Line 325  gets(char *cp) Line 325  gets(char *cp)
  * it refers to.   * it refers to.
  */   */
 dev_t  dev_t
getdiskbyname(char *name) {getdiskbyname(char *name) 
 {
         char *cp;          char *cp;
         int cd, unit, slice, part;          int cd, unit, slice, part;
         dev_t dev;          dev_t dev;
           dev_t rdev;
   
         slice = 0;          slice = 0;
         part = 0;          part = 0;
Line 347  getdiskbyname(char *name) { Line 349  getdiskbyname(char *name) {
                 unit = *cp - '0';                  unit = *cp - '0';
         *cp++ = '\0';          *cp++ = '\0';
         for (cd = 0; cd < NUMCDEVSW; cd++) {          for (cd = 0; cd < NUMCDEVSW; cd++) {
                dev = makedev(cd, 0);                dev = udev2dev(makeudev(cd, 0), 0);
                if (dev_dport(dev) != NULL &&                if (dev_is_good(dev) && dev_dname(dev) &&
                    strcmp(dev_dname(dev), name) == 0)                    strcmp(dev_dname(dev), name) == 0) {
                         goto gotit;                          goto gotit;
                   }
         }          }
         printf("no such device '%s'\n", name);          printf("no such device '%s'\n", name);
         return (NODEV);          return (NODEV);
 gotit:  gotit:
        if (dev_dmaj(dev) == major(rootdev))        if (dev_dmaj(dev) == major(rootdev)) {
                 /* driver has already configured rootdev, e. g. vinum */                  /* driver has already configured rootdev, e. g. vinum */
                 return (rootdev);                  return (rootdev);
           }
         if (unit == -1) {          if (unit == -1) {
                 printf("missing unit number\n");                  printf("missing unit number\n");
                 return (NODEV);                  return (NODEV);
Line 376  gotit: Line 380  gotit:
                 printf("junk after name\n");                  printf("junk after name\n");
                 return (NODEV);                  return (NODEV);
         }          }
        return (makedev(cd, dkmakeminor(unit, slice, part)));        rdev = make_sub_dev(dev, dkmakeminor(unit, slice, part));
         return(rdev);
 }  }
   
 /*  /*

Removed from v.1.7  
changed lines
  Added in v.1.8