Diff for /src/sys/vfs/udf/udf_vfsops.c between versions 1.4 and 1.5

version 1.4, 2004/04/24 04:32:05 version 1.5, 2004/05/19 22:53:06
Line 225  udf_checktag(struct desc_tag *tag, uint1 Line 225  udf_checktag(struct desc_tag *tag, uint1
 }  }
   
 static int  static int
udf_mountfs(struct vnode *devvp, struct mount *mp, struct thread *td) {udf_mountfs(struct vnode *devvp, struct mount *mp, struct thread *td) 
 {
         struct buf *bp = NULL;          struct buf *bp = NULL;
         struct anchor_vdp avdp;          struct anchor_vdp avdp;
         struct udf_mnt *udfmp = NULL;          struct udf_mnt *udfmp = NULL;
Line 233  udf_mountfs(struct vnode *devvp, struct Line 234  udf_mountfs(struct vnode *devvp, struct
         struct logvol_desc *lvd;          struct logvol_desc *lvd;
         struct fileset_desc *fsd;          struct fileset_desc *fsd;
         struct file_entry *root_fentry;          struct file_entry *root_fentry;
           dev_t dev;
         uint32_t sector, size, mvds_start, mvds_end;          uint32_t sector, size, mvds_start, mvds_end;
         uint32_t fsd_offset = 0;          uint32_t fsd_offset = 0;
         uint16_t part_num = 0, fsd_part = 0;          uint16_t part_num = 0, fsd_part = 0;
Line 246  udf_mountfs(struct vnode *devvp, struct Line 248  udf_mountfs(struct vnode *devvp, struct
          */           */
         if ((error = vfs_mountedon(devvp)))          if ((error = vfs_mountedon(devvp)))
                 return(error);                  return(error);
        if (vcount(devvp) > 1)        if (count_udev(devvp) > 0)
                 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 257  udf_mountfs(struct vnode *devvp, struct Line 259  udf_mountfs(struct vnode *devvp, struct
         if (error)          if (error)
                 return(error);                  return(error);
         needclose = 1;          needclose = 1;
           dev = devvp->v_rdev;
   
         udfmp = malloc(sizeof(*udfmp), M_UDFMOUNT, M_WAITOK | M_ZERO);          udfmp = malloc(sizeof(*udfmp), M_UDFMOUNT, M_WAITOK | M_ZERO);
   
         mp->mnt_data = (qaddr_t)udfmp;          mp->mnt_data = (qaddr_t)udfmp;
        mp->mnt_stat.f_fsid.val[0] = dev2udev(devvp->v_rdev);        mp->mnt_stat.f_fsid.val[0] = dev2udev(dev);
         mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum;          mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum;
         mp->mnt_maxsymlinklen = 0;          mp->mnt_maxsymlinklen = 0;
         mp->mnt_flag |= MNT_LOCAL;          mp->mnt_flag |= MNT_LOCAL;
         udfmp->im_mountp = mp;          udfmp->im_mountp = mp;
        udfmp->im_dev = devvp->v_rdev;        udfmp->im_dev = dev;
         udfmp->im_devvp = devvp;          udfmp->im_devvp = devvp;
   
         bsize = 2048;   /* XXX Should probe the media for it's size */          bsize = 2048;   /* XXX Should probe the media for it's size */
Line 410  udf_unmount(struct mount *mp, int mntfla Line 413  udf_unmount(struct mount *mp, int mntfla
         if ((error = vflush(mp, 0, flags)))          if ((error = vflush(mp, 0, flags)))
                 return (error);                  return (error);
   
        udfmp->im_devvp->v_specmountpoint = NULL;        udfmp->im_devvp->v_rdev->si_mountpoint = NULL;
         error = VOP_CLOSE(udfmp->im_devvp, FREAD, td);          error = VOP_CLOSE(udfmp->im_devvp, FREAD, td);
         vrele(udfmp->im_devvp);          vrele(udfmp->im_devvp);
   

Removed from v.1.4  
changed lines
  Added in v.1.5