The thread/proc pointer argument in the VFS subsystem originally existed
[dragonfly.git] / sys / vfs / msdosfs / msdosfs_vfsops.c
index d58e683..003da51 100644 (file)
@@ -1,5 +1,5 @@
 /* $FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/msdosfs/Attic/msdosfs_vfsops.c,v 1.60.2.8 2004/03/02 09:43:04 tjr Exp $ */
-/* $DragonFly: src/sys/vfs/msdosfs/msdosfs_vfsops.c,v 1.28 2005/09/17 07:43:10 dillon Exp $ */
+/* $DragonFly: src/sys/vfs/msdosfs/msdosfs_vfsops.c,v 1.33 2006/05/06 02:43:14 dillon Exp $ */
 /*     $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $   */
 
 /*-
@@ -100,7 +100,7 @@ static int  msdosfs_mount (struct mount *, char *, caddr_t,
 static int     msdosfs_root (struct mount *, struct vnode **);
 static int     msdosfs_statfs (struct mount *, struct statfs *,
                                    struct thread *);
-static int     msdosfs_sync (struct mount *, int, struct thread *);
+static int     msdosfs_sync (struct mount *, int);
 static int     msdosfs_unmount (struct mount *, int, struct thread *);
 static int     msdosfs_vptofh (struct vnode *, struct fid *);
 
@@ -205,14 +205,14 @@ msdosfs_mount(struct mount *mp, char *path, caddr_t data, struct thread *td)
                         */
                        if (p->p_ucred->cr_uid != 0) {
                                devvp = pmp->pm_devvp;
-                               vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td);
+                               vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
                                error = VOP_ACCESS(devvp, VREAD | VWRITE,
-                                                  p->p_ucred, td);
+                                                  p->p_ucred);
                                if (error) {
-                                       VOP_UNLOCK(devvp, 0, td);
+                                       VOP_UNLOCK(devvp, 0);
                                        return (error);
                                }
-                               VOP_UNLOCK(devvp, 0, td);
+                               VOP_UNLOCK(devvp, 0);
                        }
                        pmp->pm_flags &= ~MSDOSFSMNT_RONLY;
                }
@@ -257,13 +257,13 @@ msdosfs_mount(struct mount *mp, char *path, caddr_t data, struct thread *td)
                accessmode = VREAD;
                if ((mp->mnt_flag & MNT_RDONLY) == 0)
                        accessmode |= VWRITE;
-               vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td);
-               error = VOP_ACCESS(devvp, accessmode, p->p_ucred, td);
+               vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
+               error = VOP_ACCESS(devvp, accessmode, p->p_ucred);
                if (error) {
                        vput(devvp);
                        return (error);
                }
-               VOP_UNLOCK(devvp, 0, td);
+               VOP_UNLOCK(devvp, 0);
        }
        if ((mp->mnt_flag & MNT_UPDATE) == 0) {
                error = mountmsdosfs(devvp, mp, td, &args);
@@ -287,10 +287,9 @@ msdosfs_mount(struct mount *mp, char *path, caddr_t data, struct thread *td)
                return error;
        }
 
-       (void) copyinstr(args.fspec, mp->mnt_stat.f_mntfromname, MNAMELEN - 1,
-           &size);
+       copyinstr(args.fspec, mp->mnt_stat.f_mntfromname, MNAMELEN - 1, &size);
        bzero(mp->mnt_stat.f_mntfromname + size, MNAMELEN - size);
-       (void) msdosfs_statfs(mp, &mp->mnt_stat, td);
+       msdosfs_statfs(mp, &mp->mnt_stat, td);
 #ifdef MSDOSFS_DEBUG
        printf("msdosfs_mount(): mp %p, pmp %p, inusemap %p\n", mp, pmp, pmp->pm_inusemap);
 #endif
@@ -326,16 +325,16 @@ mountmsdosfs(struct vnode *devvp, struct mount *mp, struct thread *td,
                return (error);
        if (count_udev(devvp->v_udev) > 0)
                return (EBUSY);
-       vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td);
-       error = vinvalbuf(devvp, V_SAVE, td, 0, 0);
-       VOP_UNLOCK(devvp, 0, td);
+       vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
+       error = vinvalbuf(devvp, V_SAVE, 0, 0);
+       VOP_UNLOCK(devvp, 0);
        if (error)
                return (error);
 
        ronly = (mp->mnt_flag & MNT_RDONLY) != 0;
-       vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td);
-       error = VOP_OPEN(devvp, ronly ? FREAD : FREAD|FWRITE, FSCRED, NULL, td);
-       VOP_UNLOCK(devvp, 0, td);
+       vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
+       error = VOP_OPEN(devvp, ronly ? FREAD : FREAD|FWRITE, FSCRED, NULL);
+       VOP_UNLOCK(devvp, 0);
        if (error)
                return (error);
        dev = devvp->v_rdev;
@@ -354,7 +353,7 @@ mountmsdosfs(struct vnode *devvp, struct mount *mp, struct thread *td,
                 * that the size of a disk block will always be 512 bytes.
                 * Let's check it...
                 */
-               error = VOP_IOCTL(devvp, DIOCGPART, (caddr_t)&dpart, FREAD, td);
+               error = VOP_IOCTL(devvp, DIOCGPART, (caddr_t)&dpart, FREAD);
                if (error)
                        goto error_exit;
                tmp   = dpart.part->p_fstype;
@@ -562,7 +561,7 @@ mountmsdosfs(struct vnode *devvp, struct mount *mp, struct thread *td,
                pmp->pm_fatblocksize = MSDOSFS_DFLTBSIZE;
 
        pmp->pm_fatblocksec = pmp->pm_fatblocksize / DEV_BSIZE;
-       pmp->pm_bnshift = ffs(DEV_BSIZE) - 1;
+       pmp->pm_bnshift = DEV_BSHIFT;
 
        /*
         * Compute mask and shift value for isolating cluster relative byte
@@ -593,7 +592,7 @@ mountmsdosfs(struct vnode *devvp, struct mount *mp, struct thread *td,
        if (pmp->pm_fsinfo) {
                struct fsinfo *fp;
 
-               if ((error = bread(devvp, pmp->pm_fsinfo, fsi_size(pmp), &bp)) != 0)
+               if ((error = bread(devvp, de_bntodoff(pmp, pmp->pm_fsinfo), fsi_size(pmp), &bp)) != 0)
                        goto error_exit;
                fp = (struct fsinfo *)bp->b_data;
                if (!bcmp(fp->fsisig1, "RRaA", 4)
@@ -670,7 +669,7 @@ mountmsdosfs(struct vnode *devvp, struct mount *mp, struct thread *td,
 error_exit:
        if (bp)
                brelse(bp);
-       (void) VOP_CLOSE(devvp, ronly ? FREAD : FREAD | FWRITE, td);
+       VOP_CLOSE(devvp, ronly ? FREAD : FREAD | FWRITE);
        if (pmp) {
                if (pmp->pm_inusemap)
                        free(pmp->pm_inusemap, M_MSDOSFSFAT);
@@ -712,7 +711,7 @@ msdosfs_unmount(struct mount *mp, int mntflags, struct thread *td)
                printf("cleanblkhd %p, dirtyblkhd %p, numoutput %ld, type %d\n",
                    RB_EMPTY(&vp->v_rbclean_tree),
                    RB_EMPTY(&vp->v_rbdirty_tree),
-                   vp->v_numoutput, vp->v_type);
+                   vp->v_track_write.bk_active, vp->v_type);
                printf("union %p, tag %d, data[0] %08x, data[1] %08x\n",
                    vp->v_socket, vp->v_tag,
                    ((u_int *)vp->v_data)[0],
@@ -720,8 +719,7 @@ msdosfs_unmount(struct mount *mp, int mntflags, struct thread *td)
        }
 #endif
        error = VOP_CLOSE(pmp->pm_devvp,
-                   (pmp->pm_flags&MSDOSFSMNT_RONLY) ? FREAD : FREAD | FWRITE,
-                   td);
+                   (pmp->pm_flags&MSDOSFSMNT_RONLY) ? FREAD : FREAD | FWRITE);
        vrele(pmp->pm_devvp);
        free(pmp->pm_inusemap, M_MSDOSFSFAT);
        free(pmp, M_MSDOSFSMNT);
@@ -772,13 +770,12 @@ struct scaninfo {
        int rescan;
        int allerror;
        int waitfor;
-       thread_t td;
 };
 
 static int msdosfs_sync_scan(struct mount *mp, struct vnode *vp, void *data);
 
 static int
-msdosfs_sync(struct mount *mp, int waitfor, struct thread *td)
+msdosfs_sync(struct mount *mp, int waitfor)
 {
        struct msdosfsmount *pmp = VFSTOMSDOSFS(mp);
        struct scaninfo scaninfo;
@@ -800,7 +797,6 @@ msdosfs_sync(struct mount *mp, int waitfor, struct thread *td)
         */
        scaninfo.allerror = 0;
        scaninfo.rescan = 1;
-       scaninfo.td = td;
        while (scaninfo.rescan) {
                scaninfo.rescan = 0;
                vmntvnodescan(mp, VMSC_GETVP|VMSC_NOWAIT, NULL, msdosfs_sync_scan, &scaninfo);
@@ -810,10 +806,10 @@ msdosfs_sync(struct mount *mp, int waitfor, struct thread *td)
         * Flush filesystem control info.
         */
        if (waitfor != MNT_LAZY) {
-               vn_lock(pmp->pm_devvp, LK_EXCLUSIVE | LK_RETRY, td);
-               if ((error = VOP_FSYNC(pmp->pm_devvp, waitfor, td)) != 0)
+               vn_lock(pmp->pm_devvp, LK_EXCLUSIVE | LK_RETRY);
+               if ((error = VOP_FSYNC(pmp->pm_devvp, waitfor)) != 0)
                        scaninfo.allerror = error;
-               VOP_UNLOCK(pmp->pm_devvp, 0, td);
+               VOP_UNLOCK(pmp->pm_devvp, 0);
        }
        return (scaninfo.allerror);
 }
@@ -832,7 +828,7 @@ msdosfs_sync_scan(struct mount *mp, struct vnode *vp, void *data)
            (RB_EMPTY(&vp->v_rbdirty_tree) || info->waitfor == MNT_LAZY))) {
                return(0);
        }
-       if ((error = VOP_FSYNC(vp, info->waitfor, info->td)) != 0)
+       if ((error = VOP_FSYNC(vp, info->waitfor)) != 0)
                info->allerror = error;
        return(0);
 }