Diff for /src/sys/vfs/ntfs/ntfs_vfsops.c between versions 1.15 and 1.16

version 1.15, 2004/04/24 04:32:04 version 1.16, 2004/05/19 22:53:05
Line 314  ntfs_mount(struct mount *mp, Line 314  ntfs_mount(struct mount *mp,
                 err = ENOTBLK;                  err = ENOTBLK;
                 goto error_2;                  goto error_2;
         }          }
        if (major(devvp->v_rdev) >= nblkdev) {        if (umajor(devvp->v_udev) >= nblkdev) {
                 err = ENXIO;                  err = ENXIO;
                 goto error_2;                  goto error_2;
         }          }
Line 410  ntfs_mountfs(struct vnode *devvp, struct Line 410  ntfs_mountfs(struct vnode *devvp, struct
 {  {
         struct buf *bp;          struct buf *bp;
         struct ntfsmount *ntmp;          struct ntfsmount *ntmp;
        dev_t dev = devvp->v_rdev;        dev_t dev;
         int error, ronly, ncount, i;          int error, ronly, ncount, i;
         struct vnode *vp;          struct vnode *vp;
         struct ucred *cred;          struct ucred *cred;
Line 427  ntfs_mountfs(struct vnode *devvp, struct Line 427  ntfs_mountfs(struct vnode *devvp, struct
         error = vfs_mountedon(devvp);          error = vfs_mountedon(devvp);
         if (error)          if (error)
                 return (error);                  return (error);
        ncount = vcount(devvp);        ncount = count_udev(devvp);
 #if defined(__DragonFly__)  #if defined(__DragonFly__)
         if (devvp->v_object)          if (devvp->v_object)
                 ncount -= 1;                  ncount -= 1;
Line 450  ntfs_mountfs(struct vnode *devvp, struct Line 450  ntfs_mountfs(struct vnode *devvp, struct
         VOP__UNLOCK(devvp, 0, td);          VOP__UNLOCK(devvp, 0, td);
         if (error)          if (error)
                 return (error);                  return (error);
           dev = devvp->v_rdev;
   
         bp = NULL;          bp = NULL;
   
Line 594  ntfs_mountfs(struct vnode *devvp, struct Line 595  ntfs_mountfs(struct vnode *devvp, struct
 #endif  #endif
         mp->mnt_maxsymlinklen = 0;          mp->mnt_maxsymlinklen = 0;
         mp->mnt_flag |= MNT_LOCAL;          mp->mnt_flag |= MNT_LOCAL;
        devvp->v_specmountpoint = mp;        dev->si_mountpoint = mp;
         return (0);          return (0);
   
 out1:  out1:
Line 605  out1: Line 606  out1:
                 dprintf(("ntfs_mountfs: vflush failed\n"));                  dprintf(("ntfs_mountfs: vflush failed\n"));
   
 out:  out:
        devvp->v_specmountpoint = NULL;        dev->si_mountpoint = NULL;
         if (bp)          if (bp)
                 brelse(bp);                  brelse(bp);
   
Line 668  ntfs_unmount(struct mount *mp, int mntfl Line 669  ntfs_unmount(struct mount *mp, int mntfl
          * field is NULL and touching it causes null pointer derefercence.           * field is NULL and touching it causes null pointer derefercence.
          */           */
         if (ntmp->ntm_devvp->v_type != VBAD)          if (ntmp->ntm_devvp->v_type != VBAD)
                ntmp->ntm_devvp->v_specmountpoint = NULL;                ntmp->ntm_devvp->v_rdev->si_mountpoint = NULL;
   
         vinvalbuf(ntmp->ntm_devvp, V_SAVE, td, 0, 0);          vinvalbuf(ntmp->ntm_devvp, V_SAVE, td, 0, 0);
   

Removed from v.1.15  
changed lines
  Added in v.1.16