Diff for /src/sys/emulation/linux/linux_stats.c between versions 1.11 and 1.12

version 1.11, 2003/11/13 04:04:42 version 1.12, 2004/05/19 22:52:55
Line 76  newstat_copyout(struct stat *buf, void * Line 76  newstat_copyout(struct stat *buf, void *
          */           */
         if (S_ISCHR(tbuf.st_mode) &&          if (S_ISCHR(tbuf.st_mode) &&
             (dev = udev2dev(buf->st_rdev, 0)) != NODEV) {              (dev = udev2dev(buf->st_rdev, 0)) != NODEV) {
                if (dev_dport(dev) != NULL && (dev_dflags(dev) & D_DISK)) {                if (dev_is_good(dev) && (dev_dflags(dev) & D_DISK)) {
                         tbuf.st_mode &= ~S_IFMT;                          tbuf.st_mode &= ~S_IFMT;
                         tbuf.st_mode |= S_IFBLK;                          tbuf.st_mode |= S_IFBLK;
   
Line 311  linux_ustat(struct linux_ustat_args *arg Line 311  linux_ustat(struct linux_ustat_args *arg
          * dev_t returned from previous syscalls. Just return a bzeroed           * dev_t returned from previous syscalls. Just return a bzeroed
          * ustat in that case.           * ustat in that case.
          */           */
        dev = makedev(args->dev >> 8, args->dev & 0xFF);        dev = udev2dev(makeudev(args->dev >> 8, args->dev & 0xFF), 0);
        if (vfinddev(dev, VCHR, &vp)) {        if (dev != NODEV && vfinddev(dev, VCHR, &vp)) {
                if (vp->v_mount == NULL)                if (vp->v_mount == NULL) {
                         return (EINVAL);                          return (EINVAL);
                   }
                 stat = &(vp->v_mount->mnt_stat);                  stat = &(vp->v_mount->mnt_stat);
                 error = VFS_STATFS(vp->v_mount, stat, td);                  error = VFS_STATFS(vp->v_mount, stat, td);
                if (error)                if (error) {
                         return (error);                          return (error);
                }
                 lu.f_tfree = stat->f_bfree;                  lu.f_tfree = stat->f_bfree;
                 lu.f_tinode = stat->f_ffree;                  lu.f_tinode = stat->f_ffree;
         }          }
   
         return (copyout(&lu, args->ubuf, sizeof(lu)));          return (copyout(&lu, args->ubuf, sizeof(lu)));
 }  }
   

Removed from v.1.11  
changed lines
  Added in v.1.12