Add some missing #include's from the last commit.
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 6 Jun 2005 15:35:09 +0000 (15:35 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 6 Jun 2005 15:35:09 +0000 (15:35 +0000)
sys/vfs/gnu/ext2fs/ext2_linux_balloc.c
sys/vfs/gnu/ext2fs/ext2_linux_ialloc.c
sys/vfs/gnu/ext2fs/ext2_vfsops.c
sys/vfs/gnu/ext2fs/ext2_vnops.c
sys/vfs/smbfs/smbfs_node.c
sys/vfs/smbfs/smbfs_node.h
sys/vfs/smbfs/smbfs_vfsops.c
sys/vfs/smbfs/smbfs_vnops.c

index 0ca14ac..a090c0b 100644 (file)
@@ -5,7 +5,7 @@
  *  University of Utah, Department of Computer Science
  *
  * $FreeBSD: src/sys/gnu/ext2fs/ext2_linux_balloc.c,v 1.11.2.3 2001/08/14 18:03:19 gallatin Exp $
- * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_linux_balloc.c,v 1.4 2003/08/07 21:17:41 dillon Exp $
+ * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_linux_balloc.c,v 1.5 2005/06/06 15:35:06 dillon Exp $
  */
 /*
  *  linux/fs/ext2/balloc.c
@@ -36,6 +36,7 @@
 #include <sys/mount.h>
 #include <sys/vnode.h>
 #include <sys/buf2.h>
+#include <sys/thread2.h>
 
 #include <vfs/ufs/quota.h>
 #include <vfs/ufs/ufsmount.h>
index a2aaef5..630756b 100644 (file)
@@ -5,7 +5,7 @@
  *  University of Utah, Department of Computer Science
  *
  * $FreeBSD: src/sys/gnu/ext2fs/ext2_linux_ialloc.c,v 1.13.2.2 2001/08/14 18:03:19 gallatin Exp $
- * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_linux_ialloc.c,v 1.5 2005/06/06 15:09:37 drhodus Exp $
+ * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_linux_ialloc.c,v 1.6 2005/06/06 15:35:06 dillon Exp $
  */
 /*
  *  linux/fs/ext2/ialloc.c
@@ -46,6 +46,7 @@
 #include "fs.h"
 #include <sys/stat.h>
 #include <sys/buf2.h>
+#include <sys/thread2.h>
 
 #ifdef __i386__
 #include "i386-bitops.h"
index 043703c..613e17e 100644 (file)
@@ -38,7 +38,7 @@
  *
  *     @(#)ffs_vfsops.c        8.8 (Berkeley) 4/18/94
  *     $FreeBSD: src/sys/gnu/ext2fs/ext2_vfsops.c,v 1.63.2.7 2002/07/01 00:18:51 iedowse Exp $
- *     $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_vfsops.c,v 1.28 2005/04/19 17:54:46 dillon Exp $
+ *     $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_vfsops.c,v 1.29 2005/06/06 15:35:06 dillon Exp $
  */
 
 #include "opt_quota.h"
@@ -57,6 +57,7 @@
 #include <sys/malloc.h>
 #include <sys/stat.h>
 #include <sys/buf2.h>
+#include <sys/thread2.h>
 
 #include <vfs/ufs/quota.h>
 #include <vfs/ufs/ufsmount.h>
index 4985837..d6a3217 100644 (file)
@@ -44,7 +44,7 @@
  *     @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95
  *     @(#)ext2_vnops.c        8.7 (Berkeley) 2/3/94
  * $FreeBSD: src/sys/gnu/ext2fs/ext2_vnops.c,v 1.51.2.2 2003/01/02 17:26:18 bde Exp $
- * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_vnops.c,v 1.21 2005/06/06 15:09:37 drhodus Exp $
+ * $DragonFly: src/sys/vfs/gnu/ext2fs/ext2_vnops.c,v 1.22 2005/06/06 15:35:06 dillon Exp $
  */
 
 #include "opt_quota.h"
@@ -67,6 +67,7 @@
 #include <vm/vm_zone.h>
 #include <vm/vnode_pager.h>
 #include <sys/buf2.h>
+#include <sys/thread2.h>
 
 #include <sys/signalvar.h>
 #include <vfs/ufs/dir.h>
index a383f09..71b1632 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/fs/smbfs/smbfs_node.c,v 1.2.2.3 2003/01/17 08:20:26 tjr Exp $
- * $DragonFly: src/sys/vfs/smbfs/smbfs_node.c,v 1.16 2004/12/17 00:18:35 dillon Exp $
+ * $DragonFly: src/sys/vfs/smbfs/smbfs_node.c,v 1.17 2005/06/06 15:35:09 dillon Exp $
  */
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -346,16 +346,16 @@ smbfs_inactive(struct vop_inactive_args *ap)
        struct smb_cred scred;
        int error;
 
-       KKASSERT(td->td_proc);
-       cred = td->td_proc->p_ucred;
-
        SMBVDEBUG("%s: %d\n", VTOSMB(vp)->n_name, vp->v_usecount);
        if (np->n_opencount) {
                error = smbfs_vinvalbuf(vp, V_SAVE, td, 1);
+               cred = np->n_cached_cred;
+               np->n_cached_cred = NULL;
                smb_makescred(&scred, td, cred);
                error = smbfs_smb_close(np->n_mount->sm_share, np->n_fid, 
                   &np->n_mtime, &scred);
                np->n_opencount = 0;
+               crfree(cred);
        }
        return (0);
 }
index d1ffca2..1ea2399 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/fs/smbfs/smbfs_node.h,v 1.1.2.2 2003/01/17 08:20:26 tjr Exp $
- * $DragonFly: src/sys/vfs/smbfs/smbfs_node.h,v 1.4 2004/08/28 19:02:28 dillon Exp $
+ * $DragonFly: src/sys/vfs/smbfs/smbfs_node.h,v 1.5 2005/06/06 15:35:09 dillon Exp $
  */
 #ifndef _FS_SMBFS_NODE_H_
 #define _FS_SMBFS_NODE_H_
@@ -61,6 +61,7 @@ struct smbnode {
        long                    n_ino;
        int                     n_dosattr;
        int                     n_opencount;
+       struct ucred            *n_cached_cred; /* cred used to open file */
        u_int16_t               n_fid;          /* file handle */
        int                     n_rwstate;      /* granted access mode */
        u_char                  n_nmlen;
index bb40cd8..8f4f11e 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/fs/smbfs/smbfs_vfsops.c,v 1.2.2.5 2003/01/17 08:20:26 tjr Exp $
- * $DragonFly: src/sys/vfs/smbfs/smbfs_vfsops.c,v 1.20 2005/04/20 17:01:56 dillon Exp $
+ * $DragonFly: src/sys/vfs/smbfs/smbfs_vfsops.c,v 1.21 2005/06/06 15:35:09 dillon Exp $
  */
 #include "opt_netsmb.h"
 #ifndef NETSMB
@@ -144,8 +144,10 @@ smbfs_mount(struct mount *mp, char *path, caddr_t data, struct thread *td)
        int error;
        char *pc, *pe;
 
-       KKASSERT(td->td_proc);
-       cred = td->td_proc->p_ucred;
+       if (td->td_proc)
+           cred = td->td_proc->p_ucred;
+       else
+           cred = proc0.p_ucred;
 
        if (data == NULL) {
                printf("missing data argument\n");
@@ -254,8 +256,10 @@ smbfs_unmount(struct mount *mp, int mntflags, struct thread *td)
        struct ucred *cred;
        int error, flags;
 
-       KKASSERT(td->td_proc);
-       cred = td->td_proc->p_ucred;
+       if (td->td_proc)
+           cred = td->td_proc->p_ucred;
+       else
+           cred = proc0.p_ucred;
 
        SMBVDEBUG("smbfs_unmount: flags=%04x\n", mntflags);
        flags = 0;
@@ -307,9 +311,6 @@ smbfs_root(struct mount *mp, struct vnode **vpp)
        struct smb_cred scred;
        int error;
 
-       KKASSERT(td->td_proc);
-       cred = td->td_proc->p_ucred;
-
        if (smp == NULL) {
                SMBERROR("smp == NULL (bug in umount)\n");
                return EINVAL;
@@ -318,6 +319,11 @@ smbfs_root(struct mount *mp, struct vnode **vpp)
                *vpp = SMBTOV(smp->sm_root);
                return vget(*vpp, LK_EXCLUSIVE | LK_RETRY, td);
        }
+       if (td->td_proc)
+               cred = td->td_proc->p_ucred;
+       else
+               cred = proc0.p_ucred;
+
        smb_makescred(&scred, td, cred);
        error = smbfs_smb_lookup(NULL, NULL, 0, &fattr, &scred);
        if (error)
@@ -388,8 +394,10 @@ smbfs_statfs(struct mount *mp, struct statfs *sbp, struct thread *td)
        struct ucred *cred;
        int error = 0;
 
-       KKASSERT(td->td_proc);
-       cred = td->td_proc->p_ucred;
+       if (td->td_proc)
+           cred = td->td_proc->p_ucred;
+       else
+           cred = proc0.p_ucred;
 
        if (np == NULL)
                return EINVAL;
index 55e8659..5995612 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/fs/smbfs/smbfs_vnops.c,v 1.2.2.8 2003/04/04 08:57:23 tjr Exp $
- * $DragonFly: src/sys/vfs/smbfs/smbfs_vnops.c,v 1.22 2005/02/15 08:32:18 joerg Exp $
+ * $DragonFly: src/sys/vfs/smbfs/smbfs_vnops.c,v 1.23 2005/06/06 15:35:09 dillon Exp $
  */
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -178,6 +178,8 @@ smbfs_open(struct vop_open_args *ap)
                return EACCES;
        }
        if (vp->v_type == VDIR) {
+               if (np->n_opencount == 0)
+                       np->n_cached_cred = crhold(ap->a_cred);
                np->n_opencount++;
                return 0;
        }
@@ -216,6 +218,7 @@ smbfs_open(struct vop_open_args *ap)
                error = smbfs_smb_open(np, accmode, &scred);
        }
        if (!error) {
+               np->n_cached_cred = crhold(ap->a_cred);
                np->n_opencount++;
        }
        smbfs_attr_cacheremove(vp);
@@ -258,6 +261,8 @@ smbfs_closel(struct vop_close_args *ap)
                error = smbfs_smb_close(np->n_mount->sm_share, np->n_fid, 
                           &np->n_mtime, &scred);
        }
+       crfree(np->n_cached_cred);
+       np->n_cached_cred = NULL;
        smbfs_attr_cacheremove(vp);
        return error;
 }