Date: Tue, 10 Apr 2007 11:47:45 GMT From: Robert Watson <rwatson@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 117829 for review Message-ID: <200704101147.l3ABljl8079600@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=117829 Change 117829 by rwatson@rwatson_cinnamon_afs on 2007/04/10 11:47:36 Integrate additional changes from Arla vendor branch, 2007/04/07 CVS export. Affected files ... .. //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs.h#2 integrate .. //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_blocks_locl.h#2 integrate .. //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_dev.h#2 integrate .. //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_fs.h#2 integrate .. //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_locl.h#3 integrate .. //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_msg_locl.h#2 integrate .. //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_node.h#2 integrate .. //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_vfsops-bsd.h#3 integrate Differences ... ==== //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs.h#2 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. */ -/* $Id: nnpfs.h,v 1.10 2006/10/31 12:40:08 tol Exp $ */ +/* $Id: nnpfs.h,v 1.12 2007/03/28 12:05:46 tol Exp $ */ #ifndef _bsd_nnpfs_h #define _bsd_nnpfs_h 1 @@ -83,7 +83,6 @@ #define CHANNEL_CLOSING 0x10 struct mount *mp; struct nnpfs_node *root; - int fd; struct nnpfs_nodelist_head nodehead; struct nh_node_list freehead; /* char device */ @@ -108,11 +107,15 @@ * This is sort of a substitute for GIANT, and we should split it * up. The node lists are good candidates for a separate lock. */ -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__FreeBSD__) struct { int recurse; nnpfs_mutex_t lock; +#if defined(__APPLE__) thread_t locker; +#else + d_thread_t *locker; +#endif } lock; #else nnpfs_mutex_t dev_lock; ==== //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_blocks_locl.h#2 (text+ko) ==== @@ -31,7 +31,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -/* $Id: nnpfs_blocks_locl.h,v 1.2 2006/10/24 16:33:13 tol Exp $ */ +/* $Id: nnpfs_blocks_locl.h,v 1.3 2007/01/24 17:05:31 tol Exp $ */ typedef struct nnpfs_cache_handle { /* use bitmasks. not good when one needs one 'handle' per block */ @@ -115,4 +115,4 @@ struct vnode **vp); void -nnpfs_block_close(struct vnode *, int); +nnpfs_block_close(struct nnpfs_node *node, struct vnode *vp, int rw); ==== //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_dev.h#2 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. */ -/* $Id: nnpfs_dev.h,v 1.25 2006/10/24 16:33:15 tol Exp $ */ +/* $Id: nnpfs_dev.h,v 1.26 2007/03/28 12:05:47 tol Exp $ */ #ifndef _nnpfs_dev_h #define _nnpfs_dev_h @@ -96,24 +96,26 @@ #endif int -nnpfs_message_send(int fd, struct nnpfs_message_header * message, u_int size); +nnpfs_message_send(struct nnpfs *chan, struct nnpfs_message_header * message, u_int size); int -nnpfs_message_rpc(int fd, struct nnpfs_message_header * message, u_int size, +nnpfs_message_rpc(struct nnpfs *nnpfsp, + struct nnpfs_message_header *message, u_int size, d_thread_t *proc); int -nnpfs_message_rpc_async(int fd, struct nnpfs_message_header * message, u_int size, +nnpfs_message_rpc_async(struct nnpfs *nnpfsp, + struct nnpfs_message_header *message, u_int size, d_thread_t *proc); int -nnpfs_message_receive(int fd, +nnpfs_message_receive(struct nnpfs *nnpfsp, struct nnpfs_message_header *message, u_int size, d_thread_t *p); int -nnpfs_message_wakeup(int fd, +nnpfs_message_wakeup(struct nnpfs *chan, struct nnpfs_message_wakeup *message, u_int size, d_thread_t *p); ==== //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_fs.h#2 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. */ -/* $Id: nnpfs_fs.h,v 1.30 2006/10/24 16:33:16 tol Exp $ */ +/* $Id: nnpfs_fs.h,v 1.33 2007/03/14 16:44:30 tol Exp $ */ #ifndef _nnpfs_h #define _nnpfs_h @@ -61,12 +61,19 @@ #define NNPFS_FROM_XNODE(xp) NNPFS_FROM_VNODE(XNODE_TO_VNODE(xp)) +#ifdef __FreeBSD__ +extern struct vop_vector nnpfs_vnodeops; +#else extern struct vnodeops nnpfs_vnodeops; +extern vop_t **nnpfs_vnodeop_p; +#endif int nnpfs_new_node(struct nnpfs *, struct nnpfs_msg_node *, char *, struct nnpfs_node **, d_thread_t *, int); void nnpfs_free_node(struct nnpfs *nnpfsp, struct nnpfs_node *node); int nnpfs_free_all_nodes(struct nnpfs *, int, int); +void nnpfs_release_cachevn(struct nnpfs_node *node); +void nnpfs_release_data(struct nnpfs_node *node); int nnpfs_dnlc_enter(struct vnode *, nnpfs_componentname *, struct vnode *); int nnpfs_dnlc_enter_name(struct vnode *, char *, struct vnode *); ==== //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_locl.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. */ -/* $Id: nnpfs_locl.h,v 1.110 2007/01/08 13:09:37 tol Exp $ */ +/* $Id: nnpfs_locl.h,v 1.113 2007/03/06 16:01:56 tol Exp $ */ #ifdef HAVE_CONFIG_H #include <config.h> @@ -77,6 +77,9 @@ #ifdef HAVE_SYS_STATVFS_H #include <sys/statvfs.h> #endif +#ifdef HAVE_SYS_STAT_H +#include <sys/stat.h> +#endif #include <sys/vnode.h> #ifdef __APPLE__ #include <sys/vnode_if.h> @@ -157,6 +160,11 @@ #include <sys/kauth.h> #endif +#ifdef __FreeBSD__ +#include <sys/bio.h> +#include <sys/buf.h> +#endif + #if defined(__FreeBSD__) #define nnpfs_assert(x) \ do { if(!(x)) panic("nnpfs_assert(" #x ") failed"); } while(0); @@ -205,8 +213,16 @@ #define nnpfs_tsleep(chan, pri, msg) \ tsleep((chan), (pri), (msg), 0) +#if defined(__FreeBSD__) +#define nnpfs_msleep(chan, mtx, pri, msg) \ + msleep((chan), (mtx), (pri), (msg), 0) +#elif defined(__NetBSD__) +#define nnpfs_msleep(chan, mtx, pri, msg) \ + ltsleep((chan), (pri), (msg), 0, (mtx)) /* XXX */ +#else #define nnpfs_msleep(chan, mtx, pri, msg) \ tsleep((chan), (pri), (msg), 0) /* XXX */ +#endif #endif /* !__APPLE__ */ @@ -239,16 +255,10 @@ #if defined(__FreeBSD_version) || defined(__DragonFly__) -#if __FreeBSD_version < 400000 +#if __FreeBSD_version < 600006 # error This version is unsupported -#elif __FreeBSD_version < 440001 || (__FreeBSD_version >= 500000 && __FreeBSD_version < 500023) -typedef struct proc d_thread_t; -#elif __FreeBSD_version == 500023 -# define HAVE_FREEBSD_THREAD -typedef struct thread d_thread_t; -#elif __FreeBSD_version >= 500024 || defined(__DragonFly__) -# define HAVE_FREEBSD_THREAD #endif +#define HAVE_FREEBSD_THREAD typedef d_thread_t syscall_d_thread_t; #define syscall_thread_to_thread(x) (x) #else /* !__FreeBSD_version || __DragonFly__ */ @@ -461,6 +471,12 @@ #define NNPFS_LOCKLEAF 0 #endif +#ifdef MPSAFE +#define NNPFS_MPSAFE MPSAFE +#else +#define NNPFS_MPSAFE 0 +#endif + #if defined(HAVE_SYS_MUTEX_H) && !defined(OpenBSD) #define nnpfs_interlock_lock(interlock) mtx_lock(interlock); #define nnpfs_interlock_unlock(interlock) mtx_unlock(interlock); ==== //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_msg_locl.h#2 (text+ko) ==== @@ -31,67 +31,67 @@ * SUCH DAMAGE. */ -/* $Id: nnpfs_msg_locl.h,v 1.9 2006/10/24 16:33:18 tol Exp $ */ +/* $Id: nnpfs_msg_locl.h,v 1.10 2007/03/28 12:05:47 tol Exp $ */ #ifndef _nnpfs_msg_locl_h #define _nnpfs_msg_locl_h int -nnpfs_message_installroot(int fd, +nnpfs_message_installroot(struct nnpfs *nnpfsp, struct nnpfs_message_installroot * message, u_int size, d_thread_t *p); int -nnpfs_message_installnode(int fd, +nnpfs_message_installnode(struct nnpfs *nnpfsp, struct nnpfs_message_installnode * message, u_int size, d_thread_t *p); int -nnpfs_message_installattr(int fd, +nnpfs_message_installattr(struct nnpfs *nnpfsp, struct nnpfs_message_installattr * message, u_int size, d_thread_t *p); int -nnpfs_message_installdata(int fd, +nnpfs_message_installdata(struct nnpfs *nnpfsp, struct nnpfs_message_installdata * message, u_int size, d_thread_t *p); int -nnpfs_message_invalidnode(int fd, +nnpfs_message_invalidnode(struct nnpfs *nnpfsp, struct nnpfs_message_invalidnode * message, u_int size, d_thread_t *p); int -nnpfs_message_updatefid(int fd, +nnpfs_message_updatefid(struct nnpfs *nnpfsp, struct nnpfs_message_updatefid * message, u_int size, d_thread_t *p); int -nnpfs_message_gc(int fd, +nnpfs_message_gc(struct nnpfs *nnpfsp, struct nnpfs_message_gc *message, u_int size, d_thread_t *p); int -nnpfs_message_version(int fd, +nnpfs_message_version(struct nnpfs *nnpfsp, struct nnpfs_message_version *message, u_int size, d_thread_t *p); int -nnpfs_message_delete_node(int fd, +nnpfs_message_delete_node(struct nnpfs *nnpfsp, struct nnpfs_message_delete_node *message, u_int size, d_thread_t *p); int -nnpfs_message_installquota(int fd, +nnpfs_message_installquota(struct nnpfs *nnpfsp, struct nnpfs_message_installquota *message, u_int size, d_thread_t *p); ==== //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_node.h#2 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. */ -/* $Id: nnpfs_node.h,v 1.45 2006/10/24 16:33:19 tol Exp $ */ +/* $Id: nnpfs_node.h,v 1.47 2007/03/06 16:01:56 tol Exp $ */ #ifndef _nnpfs_xnode_h #define _nnpfs_xnode_h @@ -113,8 +113,13 @@ #else +#if defined(__FreeBSD__) && __FreeBSD_version >= 600000 +#define nnpfs_vrecycle(vp, foo, bar) vrecycle(vp, bar) +#else +#define nnpfs_vrecycle(vp, foo, bar) vrecycle(vp, foo, bar) +#endif + #define nnpfs_vrele(vp) vrele(vp) -#define nnpfs_vrecycle(vp, foo, bar) vrecycle(vp, foo, bar) #define nnpfs_vput(vp) vput(vp) #define nnpfs_vref(vp) VREF(vp) #define nnpfs_vletgo(vn) nnpfs_vrele(vn) @@ -193,6 +198,7 @@ struct vnode *vn; uint32_t index; struct nnpfs_cache_handle data; + struct vnode *cache_vn; struct nnpfs_vfs_vattr attr; uint64_t daemon_length; #ifdef __APPLE__ @@ -206,11 +212,15 @@ nnpfs_pag_t id[NNPFS_MAXRIGHTS]; nnpfs_rights rights[NNPFS_MAXRIGHTS]; nnpfs_rights anonrights; + +#ifndef __FreeBSD__ #if (defined(HAVE_KERNEL_LOCKMGR) || defined(HAVE_KERNEL_DEBUGLOCKMGR)) && !defined(__APPLE__) nnpfs_vnode_lock lock; #else int vnlocks; #endif +#endif /* !__FreeBSD__ */ + #ifdef HAVE_KERNEL_LF_ADVLOCK #ifdef __DragonFly__ struct lockf lockf; @@ -274,8 +284,12 @@ #ifndef HAVE_VOP_T +#if defined(__FreeBSD_version) && __FreeBSD_version > 600006 +typedef struct vop_vector vop_t; +#else typedef int vop_t (void *); #endif +#endif #ifdef LK_INTERLOCK #define HAVE_LK_INTERLOCK ==== //depot/projects/arla/sys/fs/nnpfs/nnpfs/nnpfs_vfsops-bsd.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. */ -/* $Id: nnpfs_vfsops-bsd.h,v 1.24 2006/09/01 14:37:28 tol Exp $ */ +/* $Id: nnpfs_vfsops-bsd.h,v 1.25 2007/03/06 16:01:56 tol Exp $ */ #ifndef _nnpfs_vfsops_bsd_h #define _nnpfs_vfsops_bsd_h @@ -87,7 +87,7 @@ int nnpfs_statfs(struct mount *mp, nnpfs_statvfs *sbp, d_thread_t *p); -#ifdef __DragonFly__ +#if defined(__DragonFly__) || (defined(__FreeBSD_version) && __FreeBSD_version > 600006) int nnpfs_sync(struct mount *mp, int waitfor, d_thread_t *p); #else
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200704101147.l3ABljl8079600>