|
|
| version 1.15, 2004/04/24 04:32:04 | version 1.16, 2004/05/19 22:53:04 |
|---|---|
| Line 231 hpfs_mount(struct mount *mp, | Line 231 hpfs_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 302 hpfs_mountfs(struct vnode *devvp, struct | Line 302 hpfs_mountfs(struct vnode *devvp, struct |
| struct hpfsmount *hpmp; | struct hpfsmount *hpmp; |
| struct buf *bp = NULL; | struct buf *bp = NULL; |
| struct vnode *vp; | struct vnode *vp; |
| dev_t dev = devvp->v_rdev; | dev_t dev; |
| dprintf(("hpfs_mountfs():\n")); | dprintf(("hpfs_mountfs():\n")); |
| /* | /* |
| Line 314 hpfs_mountfs(struct vnode *devvp, struct | Line 314 hpfs_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; |
| #endif | #endif |
| if (ncount > 1 && devvp != rootvp) | if (ncount > 0 && devvp != rootvp) |
| return (EBUSY); | return (EBUSY); |
| #if defined(__DragonFly__) | #if defined(__DragonFly__) |
| Line 338 hpfs_mountfs(struct vnode *devvp, struct | Line 338 hpfs_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; | |
| /* | /* |
| * Do actual mount | * Do actual mount |
| Line 376 hpfs_mountfs(struct vnode *devvp, struct | Line 377 hpfs_mountfs(struct vnode *devvp, struct |
| mp->mnt_data = (qaddr_t)hpmp; | mp->mnt_data = (qaddr_t)hpmp; |
| hpmp->hpm_devvp = devvp; | hpmp->hpm_devvp = devvp; |
| hpmp->hpm_dev = devvp->v_rdev; | hpmp->hpm_dev = dev; |
| hpmp->hpm_mp = mp; | hpmp->hpm_mp = mp; |
| hpmp->hpm_uid = argsp->uid; | hpmp->hpm_uid = argsp->uid; |
| hpmp->hpm_gid = argsp->gid; | hpmp->hpm_gid = argsp->gid; |
| Line 410 hpfs_mountfs(struct vnode *devvp, struct | Line 411 hpfs_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); |
| failed: | failed: |
| Line 418 failed: | Line 419 failed: |
| brelse (bp); | brelse (bp); |
| mp->mnt_data = (qaddr_t)NULL; | mp->mnt_data = (qaddr_t)NULL; |
| #if defined(__DragonFly__) | #if defined(__DragonFly__) |
| devvp->v_specmountpoint = NULL; | dev->si_mountpoint = NULL; |
| #else | #else |
| devvp->v_specflags &= ~SI_MOUNTEDON; | devvp->v_specflags &= ~SI_MOUNTEDON; |
| #endif | #endif |
| Line 457 hpfs_unmount(struct mount *mp, int mntfl | Line 458 hpfs_unmount(struct mount *mp, int mntfl |
| } | } |
| #if defined(__DragonFly__) | #if defined(__DragonFly__) |
| hpmp->hpm_devvp->v_specmountpoint = NULL; | hpmp->hpm_devvp->v_rdev->si_mountpoint = NULL; |
| #else | #else |
| hpmp->hpm_devvp->v_specflags &= ~SI_MOUNTEDON; | hpmp->hpm_devvp->v_specflags &= ~SI_MOUNTEDON; |
| #endif | #endif |