Remove the thread argument from ffs_flushfiles(), ffs_mountfs(),
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 6 May 2006 16:20:19 +0000 (16:20 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 6 May 2006 16:20:19 +0000 (16:20 +0000)
softdep_flushfiles(), ffs_reload(), ufs_quotaon(), and ufs_quotaoff().

sys/vfs/mfs/mfs_vfsops.c
sys/vfs/ufs/ffs_extern.h
sys/vfs/ufs/ffs_softdep.c
sys/vfs/ufs/ffs_softdep_stub.c
sys/vfs/ufs/ffs_vfsops.c
sys/vfs/ufs/quota.h
sys/vfs/ufs/ufs_quota.c
sys/vfs/ufs/ufs_vfsops.c

index 07f0d4c..edb3c15 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)mfs_vfsops.c        8.11 (Berkeley) 6/19/95
  * $FreeBSD: src/sys/ufs/mfs/mfs_vfsops.c,v 1.81.2.3 2001/07/04 17:35:21 tegge Exp $
- * $DragonFly: src/sys/vfs/mfs/mfs_vfsops.c,v 1.29 2006/05/04 18:32:23 dillon Exp $
+ * $DragonFly: src/sys/vfs/mfs/mfs_vfsops.c,v 1.30 2006/05/06 16:20:18 dillon Exp $
  */
 
 
@@ -285,7 +285,7 @@ mfs_mount(struct mount *mp, char *path, caddr_t data, struct thread *td)
                        flags = WRITECLOSE;
                        if (mp->mnt_flag & MNT_FORCE)
                                flags |= FORCECLOSE;
-                       err = ffs_flushfiles(mp, flags, td);
+                       err = ffs_flushfiles(mp, flags);
                        if (err)
                                goto error_1;
                }
@@ -362,7 +362,7 @@ mfs_mount(struct mount *mp, char *path, caddr_t data, struct thread *td)
        bzero( mp->mnt_stat.f_mntfromname + size, MNAMELEN - size);
 
        vx_unlock(devvp);
-       if ((err = ffs_mountfs(devvp, mp, td, M_MFSNODE)) != 0) { 
+       if ((err = ffs_mountfs(devvp, mp, M_MFSNODE)) != 0) { 
                mfsp->mfs_active = 0;
                goto error_2;
        }
index 7c282c6..7d137ec 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)ffs_extern.h        8.6 (Berkeley) 3/30/95
  * $FreeBSD: src/sys/ufs/ffs/ffs_extern.h,v 1.30 2000/01/09 22:40:02 mckusick Exp $
- * $DragonFly: src/sys/vfs/ufs/ffs_extern.h,v 1.11 2006/05/06 02:43:14 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ffs_extern.h,v 1.12 2006/05/06 16:20:19 dillon Exp $
  */
 
 #ifndef _VFS_UFS_EXTERN_H
@@ -79,13 +79,12 @@ ufs_daddr_t ffs_blkpref(struct inode *, ufs_daddr_t, int, ufs_daddr_t *);
 int    ffs_bmap(struct vop_bmap_args *);
 void   ffs_clrblock(struct fs *, u_char *, ufs_daddr_t);
 int    ffs_fhtovp(struct mount *, struct fid *, struct vnode **);
-int    ffs_flushfiles(struct mount *, int, struct thread *);
+int    ffs_flushfiles(struct mount *, int);
 void   ffs_fragacct(struct fs *, int, int32_t [], int);
 int    ffs_freefile( struct vnode *, ino_t, int );
 int    ffs_isblock(struct fs *, u_char *, ufs_daddr_t);
 int    ffs_isfreeblock(struct fs *, unsigned char *, ufs_daddr_t);
-int    ffs_mountfs(struct vnode *, struct mount *, struct thread *,
-            struct malloc_type *);
+int    ffs_mountfs(struct vnode *, struct mount *, struct malloc_type *);
 int    ffs_mountroot(void);
 int    ffs_reallocblks(struct vop_reallocblks_args *);
 int    ffs_realloccg(struct inode *,
@@ -107,7 +106,7 @@ int ffs_vptofh(struct vnode *, struct fid *);
  */
 void   softdep_initialize(void);
 int    softdep_mount(struct vnode *, struct mount *, struct fs *);
-int    softdep_flushfiles(struct mount *, int, struct thread *);
+int    softdep_flushfiles(struct mount *, int);
 void   softdep_update_inodeblock(struct inode *, struct buf *, int);
 void   softdep_load_inodeblock(struct inode *);
 void   softdep_freefile(struct vnode *, ino_t, int);
index 5cb4e8a..1b204e4 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     from: @(#)ffs_softdep.c 9.59 (McKusick) 6/21/00
  * $FreeBSD: src/sys/ufs/ffs/ffs_softdep.c,v 1.57.2.11 2002/02/05 18:46:53 dillon Exp $
- * $DragonFly: src/sys/vfs/ufs/ffs_softdep.c,v 1.42 2006/05/06 02:43:14 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ffs_softdep.c,v 1.43 2006/05/06 16:20:19 dillon Exp $
  */
 
 /*
@@ -778,7 +778,7 @@ softdep_move_dependencies(oldbp, newbp)
  * Purge the work list of all items associated with a particular mount point.
  */
 int
-softdep_flushfiles(struct mount *oldmnt, int flags, struct thread *td)
+softdep_flushfiles(struct mount *oldmnt, int flags)
 {
        struct vnode *devvp;
        int error, loopcnt;
@@ -793,7 +793,7 @@ softdep_flushfiles(struct mount *oldmnt, int flags, struct thread *td)
        }
        softdep_worklist_busy = -1;
 
-       if ((error = ffs_flushfiles(oldmnt, flags, td)) != 0) {
+       if ((error = ffs_flushfiles(oldmnt, flags)) != 0) {
                softdep_worklist_busy = 0;
                if (softdep_worklist_req)
                        wakeup(&softdep_worklist_req);
@@ -813,7 +813,7 @@ softdep_flushfiles(struct mount *oldmnt, int flags, struct thread *td)
                         * Do another flush in case any vnodes were brought in
                         * as part of the cleanup operations.
                         */
-                       if ((error = ffs_flushfiles(oldmnt, flags, td)) != 0)
+                       if ((error = ffs_flushfiles(oldmnt, flags)) != 0)
                                break;
                        /*
                         * If we still found nothing to do, we are really done.
index 735759a..cde53bc 100644 (file)
@@ -33,7 +33,7 @@
  *
  *     from: @(#)ffs_softdep_stub.c    9.1 (McKusick) 7/10/97
  * $FreeBSD: src/sys/ufs/ffs/ffs_softdep_stub.c,v 1.7.2.1 2000/12/28 11:01:45 ps Exp $
- * $DragonFly: src/sys/vfs/ufs/ffs_softdep_stub.c,v 1.7 2005/04/15 19:08:32 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ffs_softdep_stub.c,v 1.8 2006/05/06 16:20:19 dillon Exp $
  */
 
 /* 
@@ -56,7 +56,7 @@
 #include "ufs_extern.h"
 
 int
-softdep_flushfiles(struct mount *oldmnt, int flags, thread_t td)
+softdep_flushfiles(struct mount *oldmnt, int flags)
 {
        panic("softdep_flushfiles called");
 }
index 2686905..daee51e 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)ffs_vfsops.c        8.31 (Berkeley) 5/20/95
  * $FreeBSD: src/sys/ufs/ffs/ffs_vfsops.c,v 1.117.2.10 2002/06/23 22:34:52 iedowse Exp $
- * $DragonFly: src/sys/vfs/ufs/ffs_vfsops.c,v 1.41 2006/05/06 02:43:14 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ffs_vfsops.c,v 1.42 2006/05/06 16:20:19 dillon Exp $
  */
 
 #include "opt_quota.h"
@@ -65,7 +65,7 @@
 static MALLOC_DEFINE(M_FFSNODE, "FFS node", "FFS vnode private part");
 
 static int     ffs_sbupdate (struct ufsmount *, int);
-static int     ffs_reload (struct mount *,struct ucred *,struct thread *);
+static int     ffs_reload (struct mount *, struct ucred *);
 static int     ffs_oldfscompat (struct fs *);
 static int     ffs_mount (struct mount *, char *, caddr_t, struct thread *);
 static int     ffs_init (struct vfsconf *);
@@ -164,7 +164,7 @@ ffs_mount(struct mount *mp,         /* mount struct pointer */
                        return (error);
                }
 
-               if( ( error = ffs_mountfs(rootvp, mp, td, M_FFSNODE)) != 0) {
+               if( ( error = ffs_mountfs(rootvp, mp, M_FFSNODE)) != 0) {
                        /* fs specific cleanup (if any)*/
                        goto error_1;
                }
@@ -208,14 +208,14 @@ ffs_mount(struct mount *mp,               /* mount struct pointer */
                        if (mp->mnt_flag & MNT_FORCE)
                                flags |= FORCECLOSE;
                        if (mp->mnt_flag & MNT_SOFTDEP) {
-                               error = softdep_flushfiles(mp, flags, td);
+                               error = softdep_flushfiles(mp, flags);
                        } else {
-                               error = ffs_flushfiles(mp, flags, td);
+                               error = ffs_flushfiles(mp, flags);
                        }
                        ronly = 1;
                }
                if (!error && (mp->mnt_flag & MNT_RELOAD)) {
-                       error = ffs_reload(mp, NULL, td);
+                       error = ffs_reload(mp, NULL);
                }
                if (error) {
                        goto error_1;
@@ -360,7 +360,7 @@ ffs_mount(struct mount *mp,         /* mount struct pointer */
                                &size);                         /* real size*/
                bzero( mp->mnt_stat.f_mntfromname + size, MNAMELEN - size);
 
-               error = ffs_mountfs(devvp, mp, td, M_FFSNODE);
+               error = ffs_mountfs(devvp, mp, M_FFSNODE);
        }
        if (error) {
                goto error_2;
@@ -433,13 +433,12 @@ struct scaninfo {
        int rescan;
        struct fs *fs;
        struct vnode *devvp;
-       thread_t td;
        int waitfor;
        int allerror;
 };
 
 static int
-ffs_reload(struct mount *mp, struct ucred *cred, struct thread *td)
+ffs_reload(struct mount *mp, struct ucred *cred)
 {
        struct vnode *devvp;
        void *space;
@@ -542,7 +541,6 @@ ffs_reload(struct mount *mp, struct ucred *cred, struct thread *td)
        scaninfo.rescan = 0;
        scaninfo.fs = fs;
        scaninfo.devvp = devvp;
-       scaninfo.td = td;
        while (error == 0 && scaninfo.rescan) {
                scaninfo.rescan = 0;
                error = vmntvnodescan(mp, VMSC_GETVX, 
@@ -589,8 +587,7 @@ ffs_reload_scan2(struct mount *mp, struct vnode *vp, void *data)
  * Common code for mount and mountroot
  */
 int
-ffs_mountfs(struct vnode *devvp, struct mount *mp, struct thread *td,
-           struct malloc_type *malloctype)
+ffs_mountfs(struct vnode *devvp, struct mount *mp, struct malloc_type *mtype)
 {
        struct ufsmount *ump;
        struct buf *bp;
@@ -677,7 +674,7 @@ ffs_mountfs(struct vnode *devvp, struct mount *mp, struct thread *td,
        }
        ump = malloc(sizeof *ump, M_UFSMNT, M_WAITOK);
        bzero((caddr_t)ump, sizeof *ump);
-       ump->um_malloctype = malloctype;
+       ump->um_malloctype = mtype;
        ump->um_i_effnlink_valid = 1;
        ump->um_fs = malloc((u_long)fs->fs_sbsize, M_UFSMNT,
            M_WAITOK);
@@ -836,10 +833,10 @@ ffs_unmount(struct mount *mp, int mntflags, struct thread *td)
                flags |= FORCECLOSE;
        }
        if (mp->mnt_flag & MNT_SOFTDEP) {
-               if ((error = softdep_flushfiles(mp, flags, td)) != 0)
+               if ((error = softdep_flushfiles(mp, flags)) != 0)
                        return (error);
        } else {
-               if ((error = ffs_flushfiles(mp, flags, td)) != 0)
+               if ((error = ffs_flushfiles(mp, flags)) != 0)
                        return (error);
        }
        ump = VFSTOUFS(mp);
@@ -871,7 +868,7 @@ ffs_unmount(struct mount *mp, int mntflags, struct thread *td)
  * Flush out all the files in a filesystem.
  */
 int
-ffs_flushfiles(struct mount *mp, int flags, struct thread *td)
+ffs_flushfiles(struct mount *mp, int flags)
 {
        struct ufsmount *ump;
        int error;
@@ -887,7 +884,7 @@ ffs_flushfiles(struct mount *mp, int flags, struct thread *td)
                for (i = 0; i < MAXQUOTAS; i++) {
                        if (ump->um_quotas[i] == NULLVP)
                                continue;
-                       ufs_quotaoff(td, mp, i);
+                       ufs_quotaoff(mp, i);
                }
                /*
                 * Here we fall through to vflush again to ensure
index 9143e31..014dbe6 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)quota.h     8.3 (Berkeley) 8/19/94
  * $FreeBSD: src/sys/ufs/ufs/quota.h,v 1.15.2.1 2003/02/27 12:04:13 das Exp $
- * $DragonFly: src/sys/vfs/ufs/quota.h,v 1.6 2006/04/03 02:02:37 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/quota.h,v 1.7 2006/05/06 16:20:19 dillon Exp $
  */
 
 #ifndef _VFS_UFS_QUOTA_H_
@@ -186,8 +186,8 @@ void        ufs_dqrele(struct vnode *, struct ufs_dquot *);
 int    ufs_getinoquota(struct inode *);
 int    ufs_getquota(struct mount *, u_long, int, caddr_t);
 int    ufs_qsync(struct mount *mp);
-int    ufs_quotaoff(struct thread *, struct mount *, int);
-int    ufs_quotaon(struct thread *, struct mount *, int, caddr_t);
+int    ufs_quotaoff(struct mount *, int);
+int    ufs_quotaon(struct ucred *, struct mount *, int, caddr_t);
 int    ufs_setquota(struct mount *, u_long, int, caddr_t);
 int    ufs_setuse(struct mount *, u_long, int, caddr_t);
 int    ufs_quotactl(struct mount *, int, uid_t, caddr_t, struct thread *);
index 3512ad3..0e34f0d 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)ufs_quota.c 8.5 (Berkeley) 5/20/95
  * $FreeBSD: src/sys/ufs/ufs/ufs_quota.c,v 1.27.2.3 2002/01/15 10:33:32 phk Exp $
- * $DragonFly: src/sys/vfs/ufs/ufs_quota.c,v 1.21 2006/05/06 02:43:14 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ufs_quota.c,v 1.22 2006/05/06 16:20:19 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -361,7 +361,6 @@ ufs_chkdquot(struct inode *ip)
  */
 
 struct scaninfo {
-       thread_t td;
        int rescan;
        int type;
 };
@@ -372,19 +371,15 @@ struct scaninfo {
 static int ufs_quotaon_scan(struct mount *mp, struct vnode *vp, void *data);
 
 int
-ufs_quotaon(struct thread *td, struct mount *mp, int type, caddr_t fname)
+ufs_quotaon(struct ucred *cred, struct mount *mp, int type, caddr_t fname)
 {
        struct ufsmount *ump = VFSTOUFS(mp);
        struct vnode *vp, **vpp;
        struct ufs_dquot *dq;
        int error;
        struct nlookupdata nd;
-       struct ucred *cred;
        struct scaninfo scaninfo;
 
-       KKASSERT(td->td_proc);
-       cred = td->td_proc->p_ucred;
-
        vpp = &ump->um_quotas[type];
        error = nlookup_init(&nd, fname, UIO_USERSPACE, NLC_FOLLOW|NLC_LOCKVP);
        if (error == 0)
@@ -401,7 +396,7 @@ ufs_quotaon(struct thread *td, struct mount *mp, int type, caddr_t fname)
 
        VOP_UNLOCK(vp, 0);
        if (*vpp != vp)
-               ufs_quotaoff(td, mp, type);
+               ufs_quotaoff(mp, type);
        ump->um_qflags[type] |= QTF_OPENING;
        mp->mnt_flag |= MNT_QUOTA;
        vp->v_flag |= VSYSTEM;
@@ -427,7 +422,6 @@ ufs_quotaon(struct thread *td, struct mount *mp, int type, caddr_t fname)
         * NB: only need to add dquot's for inodes being modified.
         */
        scaninfo.rescan = 1;
-       scaninfo.td = td;
        while (scaninfo.rescan) {
                scaninfo.rescan = 0;
                error = vmntvnodescan(mp, VMSC_GETVP,
@@ -437,7 +431,7 @@ ufs_quotaon(struct thread *td, struct mount *mp, int type, caddr_t fname)
        }
        ump->um_qflags[type] &= ~QTF_OPENING;
        if (error)
-               ufs_quotaoff(td, mp, type);
+               ufs_quotaoff(mp, type);
        return (error);
 }
 
@@ -460,17 +454,13 @@ ufs_quotaon_scan(struct mount *mp, struct vnode *vp, void *data)
 static int ufs_quotaoff_scan(struct mount *mp, struct vnode *vp, void *data);
 
 int
-ufs_quotaoff(struct thread *td, struct mount *mp, int type)
+ufs_quotaoff(struct mount *mp, int type)
 {
        struct vnode *qvp;
        struct ufsmount *ump = VFSTOUFS(mp);
-       struct ucred *cred;
        int error;
        struct scaninfo scaninfo;
 
-       KKASSERT(td->td_proc);
-       cred = td->td_proc->p_ucred;
-
        if ((qvp = ump->um_quotas[type]) == NULLVP)
                return (0);
        ump->um_qflags[type] |= QTF_CLOSING;
@@ -480,7 +470,6 @@ ufs_quotaoff(struct thread *td, struct mount *mp, int type)
         * deleting any references to quota file being closed.
         */
        scaninfo.rescan = 1;
-       scaninfo.td = td;
        scaninfo.type = type;
        while (scaninfo.rescan) {
                scaninfo.rescan = 0;
@@ -647,7 +636,6 @@ int
 ufs_qsync(struct mount *mp)
 {
        struct ufsmount *ump = VFSTOUFS(mp);
-       struct thread *td = curthread;          /* XXX */
        struct scaninfo scaninfo;
        int i;
 
@@ -665,7 +653,6 @@ ufs_qsync(struct mount *mp)
         * synchronizing any modified ufs_dquot structures.
         */
        scaninfo.rescan = 1;
-       scaninfo.td = td;
        while (scaninfo.rescan) {
                scaninfo.rescan = 0;
                vmntvnodescan(mp, VMSC_GETVP|VMSC_NOWAIT,
index 3a3514e..4d36c24 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)ufs_vfsops.c        8.8 (Berkeley) 5/20/95
  * $FreeBSD: src/sys/ufs/ufs/ufs_vfsops.c,v 1.17.2.3 2001/10/14 19:08:16 iedowse Exp $
- * $DragonFly: src/sys/vfs/ufs/ufs_vfsops.c,v 1.13 2006/05/05 21:27:58 dillon Exp $
+ * $DragonFly: src/sys/vfs/ufs/ufs_vfsops.c,v 1.14 2006/05/06 16:20:19 dillon Exp $
  */
 
 #include "opt_quota.h"
@@ -81,11 +81,12 @@ ufs_quotactl(struct mount *mp, int cmds, uid_t uid, caddr_t arg,
 #ifndef QUOTA
        return (EOPNOTSUPP);
 #else
-       struct proc *p = td->td_proc;
+       struct ucred *cred;
        int cmd, type, error;
 
-       if (p == NULL)
+       if (td->td_proc == NULL)
                return (EOPNOTSUPP);
+       cred = td->td_proc->p_ucred;
 
        type = cmds & SUBCMDMASK;
        cmd = cmds >> SUBCMDSHIFT;
@@ -93,10 +94,10 @@ ufs_quotactl(struct mount *mp, int cmds, uid_t uid, caddr_t arg,
        if (uid == -1) {
                switch(type) {
                        case USRQUOTA:
-                               uid = p->p_ucred->cr_ruid;
+                               uid = cred->cr_ruid;
                                break;
                        case GRPQUOTA:
-                               uid = p->p_ucred->cr_rgid;
+                               uid = cred->cr_rgid;
                                break;
                        default:
                                return (EINVAL);
@@ -107,11 +108,11 @@ ufs_quotactl(struct mount *mp, int cmds, uid_t uid, caddr_t arg,
        case Q_SYNC:
                break;
        case Q_GETQUOTA:
-               if (uid == p->p_ucred->cr_ruid)
+               if (uid == cred->cr_ruid)
                        break;
                /* fall through */
        default:
-               if ((error = suser_cred(p->p_ucred, PRISON_ROOT)) != 0)
+               if ((error = suser_cred(cred, PRISON_ROOT)) != 0)
                        return (error);
        }
 
@@ -124,11 +125,11 @@ ufs_quotactl(struct mount *mp, int cmds, uid_t uid, caddr_t arg,
        switch (cmd) {
 
        case Q_QUOTAON:
-               error = ufs_quotaon(td, mp, type, arg);
+               error = ufs_quotaon(cred, mp, type, arg);
                break;
 
        case Q_QUOTAOFF:
-               error = ufs_quotaoff(td, mp, type);
+               error = ufs_quotaoff(mp, type);
                break;
 
        case Q_SETQUOTA: