openbsd-20021115
authorJim Rees <rees@umich.edu>
Fri, 15 Nov 2002 17:19:40 +0000 (17:19 +0000)
committerJim Rees <rees@umich.edu>
Fri, 15 Nov 2002 17:19:40 +0000 (17:19 +0000)
Fix yesterday's damage:
  Put afs_vnop_fid.o back in the nonfs module
  Put back VN_HOLD for Darwin in VNOPS/afs_vnop_remove.c (from kolya)
More prototypes
Re-organize OBSD/osi_machdep.h

src/afs/OBSD/osi_inode.h
src/afs/OBSD/osi_machdep.h
src/afs/OBSD/osi_vfsops.c
src/afs/OBSD/osi_vnodeops.c
src/afs/VNOPS/afs_vnop_fid.c
src/afs/VNOPS/afs_vnop_remove.c
src/afs/afs_dcache.c
src/afs/afs_prototypes.h
src/libafs/Makefile.common.in
src/libafs/MakefileProto.OBSD.in

index 33e808a..34de3f2 100644 (file)
@@ -7,4 +7,4 @@
  * directory or online at http://www.openafs.org/dl/license10.html
  */
 
-/* Id: $ */
+/* $Id$ */
index bbcdce5..5450bab 100644 (file)
  * afs_osi.h.
  */
 
-/* Id: $ */
+/* $Id$ */
 
 #ifndef _OSI_MACHDEP_H_
 #define _OSI_MACHDEP_H_
 
 #include <sys/lock.h>
 
-#define getpid()               curproc
 extern struct simplelock afs_rxglobal_lock;
 
-/* 
- * Time related macros
- */
-extern struct timeval time;
-#define osi_Time() (time.tv_sec)
-#define        afs_hz      hz
-
 #define M_AFSFID       (M_TEMP-1)
 #define M_AFSBUFHDR    (M_TEMP-2)
 #define M_AFSBUFFER    (M_TEMP-3)
 #define M_AFSGENERIC   (M_TEMP-4)
 
-#define PAGESIZE 8192
-
-#define        AFS_UCRED       ucred
-#define        AFS_PROC        struct proc
+/* vfs */
+#define osi_vfs                mount
+#define osi_vfs_bsize  mnt_stat.f_bsize
+#define osi_vfs_fsid   mnt_stat.f_fsid
+#define vfs_bsize      mnt_stat.f_bsize
+#define vfs_fsid       mnt_stat.f_fsid
+#define vfs_vnodecovered mnt_vnodecovered
+#define v_vfsp         v_mount
 
+/* vnode */
 #define SetAfsVnode(vn) /* nothing; done in getnewvnode() */
-#define        IsAfsVnode(vn)      ((vn)->v_op == afs_vnodeop_p)
-
-#define p_rcred         p_ucred
-
+#define        IsAfsVnode(vn)  ((vn)->v_op == afs_vnodeop_p)
 #define AFS_HOLD(vp)   afs_nbsd_ref(vp)
 #define AFS_RELE(vp)   afs_nbsd_rele(vp)
+#define VN_HOLD(vp)    afs_vget((vp), 0)
 #define osi_vnhold(avc, r) afs_vget(AFSTOV(avc), 0)
+#define va_nodeid      va_fileid
+#define vnode_t                struct vnode
+#define vSetType(vc, type)     AFSTOV(vc)->v_type = (type)
+#define vSetVfsp(vc, vfsp)     AFSTOV(vc)->v_mount = (vfsp)
+#define vType(vc)              (vc)->v->v_type
 
+/* uio */
 #define afsio_iov      uio_iov
 #define afsio_iovcnt   uio_iovcnt
 #define afsio_offset   uio_offset
 #define afsio_resid    uio_resid
 #define afsio_seg      uio_segflg
-#define AFS_KALLOC(s)  afs_nbsd_Alloc(s)
-#define AFS_KFREE(p, s)        afs_nbsd_Free((p), (s))
 #define AFS_UIOSYS     UIO_SYSSPACE
 #define AFS_UIOUSER    UIO_USERSPACE
-#define afs_bufferpages bufpages
+
+/* malloc */
+#define AFS_KALLOC(s)  afs_nbsd_Alloc(s)
+#define AFS_KFREE(p, s)        afs_nbsd_Free((p), (s))
+
+/* proc, cred */
+#define        AFS_PROC        struct proc
+#define        AFS_UCRED       ucred
 #define afs_suser()    afs_osi_suser(osi_curcred()) 
+#define getpid()       curproc
 #define osi_curcred()  (curproc->p_cred->pc_ucred)
-#define osi_curproc()  (curproc)
+#define osi_curproc()  curproc
+#define p_rcred         p_ucred
+
+/* time */
+extern struct timeval time;
+#define        afs_hz          hz
 #define osi_GetTime(x) microtime(x)
-#define osi_vfs        mount
-#define osi_vfs_bsize  mnt_stat.f_bsize
-#define osi_vfs_fsid   mnt_stat.f_fsid
-#define printk printf                  /* for RX version of xdr_* */
+#define osi_Time()     (time.tv_sec)
+
+/* other */
+#define afs_bufferpages bufpages
+#define PAGESIZE       8192
+#define printk         printf  /* for RX version of xdr_* */
 #define setgroups      sys_setgroups
 #define UVM
-#define va_nodeid      va_fileid
-#define vfs_bsize      mnt_stat.f_bsize
-#define vfs_fsid       mnt_stat.f_fsid
-#define vfs_vnodecovered mnt_vnodecovered
-#define vnode_t                struct vnode
-#define vSetType(vc, type)     AFSTOV(vc)->v_type = (type)
-#define vSetVfsp(vc, vfsp)     AFSTOV(vc)->v_mount = (vfsp)
-#define vType(vc)              (vc)->v->v_type
-#define v_vfsp         v_mount
 
 /* This is not always in scope yet */
 struct vcache;
index a7fbbcf..6d85df2 100644 (file)
@@ -106,8 +106,12 @@ RCSID("$Header$");
 #include <sys/syscall.h>
 #include <sys/syscallargs.h>
 
+/* from /usr/src/sys/kern/vfs_subr.c */
+extern void insmntque(struct vnode *, struct mount *);
+
 #define NBSD_DONTFOLLOW_LINK 0
 #define NBSD_FOLLOW_LINK 1
+
 static int lkmid = -1;
 static int afs_badcall(struct proc *p, void *xx, register_t *yy);
 
index 0775855..14411f9 100644 (file)
@@ -168,7 +168,7 @@ struct vnodeopv_entry_desc afs_vnodeop_entries[] = {
        { &vop_setattr_desc, afs_nbsd_setattr },        /* setattr */
        { &vop_read_desc, afs_nbsd_read },              /* read */
        { &vop_write_desc, afs_nbsd_write },            /* write */
-       { &vop_ioctl_desc, afs_nbsd_ioctl }, /* XXX ioctl */
+       { &vop_ioctl_desc, afs_nbsd_ioctl },            /* XXX ioctl */
        { &vop_select_desc, afs_nbsd_select },          /* select */
        { &vop_fsync_desc, afs_nbsd_fsync },            /* fsync */
        { &vop_remove_desc, afs_nbsd_remove },          /* remove */
index 1a62ce7..8086a01 100644 (file)
@@ -19,7 +19,7 @@
 
 RCSID("$Header$");
 
-#if !defined(AFS_DUX40_ENV) && !defined(AFS_LINUX20_ENV) && !defined(AFS_DARWIN_ENV)
+#if !defined(AFS_DUX40_ENV) && !defined(AFS_LINUX20_ENV) && !defined(AFS_DARWIN_ENV) && !defined(AFS_OBSD_ENV)
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
 #include "afs/afs_stats.h" /* statistics */
@@ -117,9 +117,7 @@ struct fid **fidpp;
        SizeOfSmallFid = sizeof(addr);
 #endif /* defined(AFS_SGI61_ENV) && (_MIPS_SZPTR == 64) */
        addr[0] = (long)avc;
-#if defined(AFS_OBSD_ENV)
-       osi_vnhold(avc, 0);
-#elif !defined(AFS_AIX41_ENV)
+#ifndef AFS_AIX41_ENV
        /* No post processing, so don't hold ref count. */
        VN_HOLD(AFSTOV(avc));
 #endif
index e94c717..95d17c9 100644 (file)
@@ -430,7 +430,7 @@ int afs_remunlink(register struct vcache *avc, register int doit)
            cred = avc->uncred;
            avc->uncred = NULL;
 
-#if defined(AFS_DARWIN_ENV)
+#ifdef AFS_DARWIN_ENV
            /* this is called by vrele (via VOP_INACTIVE) when the refcount
               is 0. we can't just call VN_HOLD since vref will panic.
               we can't just call osi_vnhold because a later AFS_RELE will call
@@ -440,15 +440,8 @@ int afs_remunlink(register struct vcache *avc, register int doit)
               refcounts and hope nobody else can touch the file now */
            osi_Assert(VREFCOUNT(avc) == 0);
            VREFCOUNT_SET(avc, 1);
-#elif defined(AFS_OBSD_ENV)
-           /*
-            * I suspect OpenBSD has the same problem as Darwin, but I'm
-            * going to be brave and try it this way for now.
-            */
-           osi_vnhold(avc, 0);
-#else
-           VN_HOLD(AFSTOV(avc));
 #endif
+           VN_HOLD(AFSTOV(avc));
 
            /* We'll only try this once. If it fails, just release the vnode.
             * Clear after doing hold so that NewVCache doesn't find us yet.
index ed9b20a..2636c74 100644 (file)
@@ -84,11 +84,6 @@ afs_int32  afs_dcentries;            /* In-memory dcache entries */
 
 int dcacheDisabled = 0;
 
-extern struct dcache *afs_UFSGetDSlot();
-extern struct volume *afs_UFSGetVolSlot();
-extern int osi_UFSTruncate(), afs_osi_Read(), afs_osi_Write(), osi_UFSClose();
-extern int afs_UFSRead(), afs_UFSWrite();
-extern int afs_UFSHandleLink();
 static int afs_UFSCacheFetchProc(), afs_UFSCacheStoreProc();
 struct afs_cacheOps afs_UfsCacheOps = {
     osi_UFSOpen,
index 2c9a8bd..1c5bc21 100644 (file)
@@ -352,7 +352,6 @@ extern void shutdown_mariner(void);
 
 
 /* afs_memcache.c */
-extern void *afs_MemCacheOpen(ino_t blkno);
 extern int afs_InitMemCache(int size, int blkSize, int flags);
 extern int afs_MemCacheClose(char *file);
 extern void *afs_MemCacheOpen(ino_t blkno);
@@ -819,6 +818,8 @@ extern afs_int32 nihints;
 extern afs_int32 usedihint;
 extern int afs_MemRead(register struct vcache *avc, struct uio *auio, struct AFS_UCRED *acred, 
         daddr_t albn, struct buf **abpp, int noLock);
+extern int afs_UFSRead(register struct vcache *avc, struct uio *auio,
+       struct AFS_UCRED *acred, daddr_t albn, struct buf **abpp, int noLock);
 
 
 /* VNOPS/afs_vnop_readdir.c */
@@ -837,6 +838,7 @@ extern int afsrename();
 
 /* VNOPS/afs_vnop_symlink.c */
 extern int afs_MemHandleLink(register struct vcache *avc, struct vrequest *areq);
+extern int afs_UFSHandleLink(register struct vcache *avc, struct vrequest *areq);
 
 /* VNOPS/afs_vnop_flock.c */
 extern afs_int32 lastWarnTime;
@@ -873,7 +875,6 @@ extern struct volume *afs_GetVolume(struct VenusFid *afid, struct vrequest *areq
         afs_int32 locktype);
 extern struct volume *afs_GetVolumeByName(register char *aname, afs_int32 acell, 
         int agood, struct vrequest *areq, afs_int32 locktype);
-
 extern struct volume *afs_UFSGetVolSlot(void);
 extern void afs_CheckVolumeNames(int flags);
 
index 327fa8a..a533ec1 100644 (file)
@@ -105,6 +105,7 @@ AFSAOBJS = \
        afs_vnop_attrs.o \
        afs_vnop_create.o \
        afs_vnop_dirops.o \
+       afs_vnop_fid.o \
        afs_vnop_flock.o \
        afs_vnop_link.o \
        afs_vnop_lookup.o \
@@ -158,7 +159,6 @@ AFSNFSOBJS = \
        afs_nfsdisp.o   \
        afs_call_nfs.o \
        afs_pioctl_nfs.o \
-       afs_vnop_fid.o \
        $(AFS_OS_NFSOBJS)
 
 AFSNONFSOBJS = \
index 3efd407..2803c0e 100644 (file)
@@ -8,7 +8,7 @@ include @TOP_OBJDIR@/src/config/Makefile.config
 # System specific build commands and flags
 KSRC = /usr/src/sys
 KDEFS=-Wall -nostdinc -I/usr/include \
-       -DLKM -DDIAGNOSTIC -DFIFO -DNFSCLIENT -DMFS -DFFS -D_KERNEL -DI386_CPU -DI486_CPU -DI586_CPU \
+       -DLKM -DDIAGNOSTIC -DFIFO -DNFSCLIENT -DMFS -DFFS -D_KERNEL -DI586_CPU -DI686_CPU \
        -I${KSRC}/sys
 DBUG = -O2
 DEFINES= -DAFSDEBUG -DKERNEL -DAFS -DVICE -DNFS -DUFS -DINET -DQUOTA -DGETMOUNT
@@ -68,9 +68,8 @@ setup:
 
 
 # Below this line are targets when in the COMMON directory:
-LIBAFS = libafs.o
+LIBAFS = libafs.nfs.o
 LIBAFSNONFS = libafs.o
-#LIBAFSNONFS = libafs.nonfs.o
 
 INST_LIBAFS = ${DESTDIR}${afskerneldir}/${LIBAFS}
 INST_LIBAFSNONFS = ${DESTDIR}${afskerneldir}/${LIBAFSNONFS}
@@ -79,12 +78,9 @@ DEST_LIBAFS = ${DEST}/root.client/bin/${LIBAFS}
 DEST_LIBAFSNONFS = ${DEST}/root.client/bin/${LIBAFSNONFS}
 
 
-# libafs:      $(LIBAFS) $(LIBAFSNONFS)
 libafs:        $(LIBAFSNONFS)
-       touch libafs
-# install_libafs:      $(INST_LIBAFS) $(INST_LIBAFSNONFS)
+       ls -l libafs.o
 install_libafs:        $(INST_LIBAFSNONFS)
-# dest_libafs: $(DEST_LIBAFS) $(DEST_LIBAFSNONFS)
 dest_libafs:   $(DEST_LIBAFSNONFS)
 
 $(INST_LIBAFS): $(LIBAFS)