|
|
| version 1.14, 2004/04/24 04:32:04 | version 1.15, 2004/05/19 22:53:04 |
|---|---|
| Line 268 iso_mountfs(struct vnode *devvp, struct | Line 268 iso_mountfs(struct vnode *devvp, struct |
| struct iso_mnt *isomp = (struct iso_mnt *)0; | struct iso_mnt *isomp = (struct iso_mnt *)0; |
| struct buf *bp = NULL; | struct buf *bp = NULL; |
| struct buf *pribp = NULL, *supbp = NULL; | struct buf *pribp = NULL, *supbp = NULL; |
| dev_t dev = devvp->v_rdev; | dev_t dev; |
| int error = EINVAL; | int error = EINVAL; |
| int needclose = 0; | int needclose = 0; |
| int high_sierra = 0; | int high_sierra = 0; |
| Line 293 iso_mountfs(struct vnode *devvp, struct | Line 293 iso_mountfs(struct vnode *devvp, struct |
| */ | */ |
| if ((error = vfs_mountedon(devvp))) | if ((error = vfs_mountedon(devvp))) |
| return error; | return error; |
| if (vcount(devvp) > 1 && devvp != rootvp) | if (count_udev(devvp) > 0 && devvp != rootvp) |
| return EBUSY; | return EBUSY; |
| if ((error = vinvalbuf(devvp, V_SAVE, td, 0, 0))) | if ((error = vinvalbuf(devvp, V_SAVE, td, 0, 0))) |
| return (error); | return (error); |
| Line 303 iso_mountfs(struct vnode *devvp, struct | Line 303 iso_mountfs(struct vnode *devvp, struct |
| VOP_UNLOCK(devvp, NULL, 0, td); | VOP_UNLOCK(devvp, NULL, 0, td); |
| if (error) | if (error) |
| return error; | return error; |
| if (devvp->v_rdev->si_iosize_max != 0) | dev = devvp->v_rdev; |
| mp->mnt_iosize_max = devvp->v_rdev->si_iosize_max; | if (dev->si_iosize_max != 0) |
| mp->mnt_iosize_max = dev->si_iosize_max; | |
| if (mp->mnt_iosize_max > MAXPHYS) | if (mp->mnt_iosize_max > MAXPHYS) |
| mp->mnt_iosize_max = MAXPHYS; | mp->mnt_iosize_max = MAXPHYS; |
| Line 440 iso_mountfs(struct vnode *devvp, struct | Line 441 iso_mountfs(struct vnode *devvp, struct |
| isomp->im_dev = dev; | isomp->im_dev = dev; |
| isomp->im_devvp = devvp; | isomp->im_devvp = devvp; |
| devvp->v_specmountpoint = mp; | dev->si_mountpoint = mp; |
| /* Check the Rock Ridge Extention support */ | /* Check the Rock Ridge Extention support */ |
| if (!(argp->flags & ISOFSMNT_NORRIP)) { | if (!(argp->flags & ISOFSMNT_NORRIP)) { |
| Line 507 iso_mountfs(struct vnode *devvp, struct | Line 508 iso_mountfs(struct vnode *devvp, struct |
| return 0; | return 0; |
| out: | out: |
| devvp->v_specmountpoint = NULL; | dev->si_mountpoint = NULL; |
| if (bp) | if (bp) |
| brelse(bp); | brelse(bp); |
| if (pribp) | if (pribp) |
| Line 544 cd9660_unmount(struct mount *mp, int mnt | Line 545 cd9660_unmount(struct mount *mp, int mnt |
| isomp = VFSTOISOFS(mp); | isomp = VFSTOISOFS(mp); |
| isomp->im_devvp->v_specmountpoint = NULL; | isomp->im_devvp->v_rdev->si_mountpoint = NULL; |
| error = VOP_CLOSE(isomp->im_devvp, FREAD, td); | error = VOP_CLOSE(isomp->im_devvp, FREAD, td); |
| vrele(isomp->im_devvp); | vrele(isomp->im_devvp); |
| free((caddr_t)isomp, M_ISOFSMNT); | free((caddr_t)isomp, M_ISOFSMNT); |