|
|
| 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); |