Index: openafs/src/WINNT/install/NSIS/OpenAFS.nsi
diff -c openafs/src/WINNT/install/NSIS/OpenAFS.nsi:1.69.2.21 openafs/src/WINNT/install/NSIS/OpenAFS.nsi:1.69.2.22
*** openafs/src/WINNT/install/NSIS/OpenAFS.nsi:1.69.2.21	Tue Jan 16 12:21:31 2007
--- openafs/src/WINNT/install/NSIS/OpenAFS.nsi	Fri Feb  2 10:38:16 2007
***************
*** 532,538 ****
    File "${AFS_CLIENT_BUILDDIR}\aklog.exe"
    File "${AFS_CLIENT_BUILDDIR}\afscreds.exe"
    !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.dll" "$INSTDIR\Client\Program\afs_shl_ext.dll" "$INSTDIR"
!   File "${AFS_CLIENT_BUILDDIR}\afsd_service.exe"
    File "${AFS_CLIENT_BUILDDIR}\symlink.exe"
    File "${AFS_DESTDIR}\bin\kpasswd.exe"
    File "${AFS_SERVER_BUILDDIR}\pts.exe"
--- 532,538 ----
    File "${AFS_CLIENT_BUILDDIR}\aklog.exe"
    File "${AFS_CLIENT_BUILDDIR}\afscreds.exe"
    !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.dll" "$INSTDIR\Client\Program\afs_shl_ext.dll" "$INSTDIR"
!   !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afsd_service.exe" "$INSTDIR\Client\Program\afsd_service.exe" "$INSTDIR"
    File "${AFS_CLIENT_BUILDDIR}\symlink.exe"
    File "${AFS_DESTDIR}\bin\kpasswd.exe"
    File "${AFS_SERVER_BUILDDIR}\pts.exe"
Index: openafs/src/afs/afs_call.c
diff -c openafs/src/afs/afs_call.c:1.74.2.16 openafs/src/afs/afs_call.c:1.74.2.17
*** openafs/src/afs/afs_call.c:1.74.2.16	Thu Dec 28 16:32:08 2006
--- openafs/src/afs/afs_call.c	Thu Feb  8 20:07:54 2007
***************
*** 11,17 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.16 2006/12/28 21:32:08 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
--- 11,17 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.17 2007/02/09 01:07:54 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
***************
*** 279,285 ****
  
  #if defined(AFS_LINUX24_ENV) && defined(COMPLETION_H_EXISTS)
  struct afsd_thread_info {
! #if !defined(INIT_WORK_HAS_DATA)
      struct work_struct tq;
  #endif
      unsigned long parm;
--- 279,285 ----
  
  #if defined(AFS_LINUX24_ENV) && defined(COMPLETION_H_EXISTS)
  struct afsd_thread_info {
! #if defined(AFS_LINUX26_ENV) && !defined(INIT_WORK_HAS_DATA)
      struct work_struct tq;
  #endif
      unsigned long parm;
***************
*** 414,426 ****
  }
  
  void
! #if !defined(INIT_WORK_HAS_DATA)
  afsd_launcher(struct work_struct *work)
  #else
  afsd_launcher(void *rock)
  #endif
  {
! #if !defined(INIT_WORK_HAS_DATA)
      struct afsd_thread_info *rock = container_of(work, struct afsd_thread_info, tq);
  #endif
  
--- 414,426 ----
  }
  
  void
! #if defined(AFS_LINUX26_ENV) && !defined(INIT_WORK_HAS_DATA)
  afsd_launcher(struct work_struct *work)
  #else
  afsd_launcher(void *rock)
  #endif
  {
! #if defined(AFS_LINUX26_ENV) && !defined(INIT_WORK_HAS_DATA)
      struct afsd_thread_info *rock = container_of(work, struct afsd_thread_info, tq);
  #endif
  
Index: openafs/src/afs/afs_callback.c
diff -c openafs/src/afs/afs_callback.c:1.27.2.7 openafs/src/afs/afs_callback.c:1.27.2.8
*** openafs/src/afs/afs_callback.c:1.27.2.7	Thu Jan 11 22:29:44 2007
--- openafs/src/afs/afs_callback.c	Fri Feb  2 22:25:18 2007
***************
*** 17,23 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_callback.c,v 1.27.2.7 2007/01/12 03:29:44 shadow Exp $");
  
  #include "afs/sysincludes.h"	/*Standard vendor system headers */
  #include "afsincludes.h"	/*AFS-based standard headers */
--- 17,23 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_callback.c,v 1.27.2.8 2007/02/03 03:25:18 shadow Exp $");
  
  #include "afs/sysincludes.h"	/*Standard vendor system headers */
  #include "afsincludes.h"	/*AFS-based standard headers */
***************
*** 136,143 ****
      a_result->lock.readersReading = tvc->lock.readers_reading;
      a_result->lock.numWaiting = tvc->lock.num_waiting;
  #if defined(INSTRUMENT_LOCKS)
!     a_result->lock.pid_last_reader = tvc->lock.pid_last_reader;
!     a_result->lock.pid_writer = tvc->lock.pid_writer;
      a_result->lock.src_indicator = tvc->lock.src_indicator;
  #else
      /* On osf20 , the vcache does not maintain these three fields */
--- 136,143 ----
      a_result->lock.readersReading = tvc->lock.readers_reading;
      a_result->lock.numWaiting = tvc->lock.num_waiting;
  #if defined(INSTRUMENT_LOCKS)
!     a_result->lock.pid_last_reader = MyPidxx2Pid(tvc->lock.pid_last_reader);
!     a_result->lock.pid_writer = MyPidxx2Pid(tvc->lock.pid_writer);
      a_result->lock.src_indicator = tvc->lock.src_indicator;
  #else
      /* On osf20 , the vcache does not maintain these three fields */
***************
*** 222,229 ****
      a_result->lock.readersReading = tvc->lock.readers_reading;
      a_result->lock.numWaiting = tvc->lock.num_waiting;
  #if defined(INSTRUMENT_LOCKS)
!     a_result->lock.pid_last_reader = tvc->lock.pid_last_reader;
!     a_result->lock.pid_writer = tvc->lock.pid_writer;
      a_result->lock.src_indicator = tvc->lock.src_indicator;
  #else
      /* On osf20 , the vcache does not maintain these three fields */
--- 222,229 ----
      a_result->lock.readersReading = tvc->lock.readers_reading;
      a_result->lock.numWaiting = tvc->lock.num_waiting;
  #if defined(INSTRUMENT_LOCKS)
!     a_result->lock.pid_last_reader = MyPidxx2Pid(tvc->lock.pid_last_reader);
!     a_result->lock.pid_writer = MyPidxx2Pid(tvc->lock.pid_writer);
      a_result->lock.src_indicator = tvc->lock.src_indicator;
  #else
      /* On osf20 , the vcache does not maintain these three fields */
Index: openafs/src/afs/afs_osi.c
diff -c openafs/src/afs/afs_osi.c:1.48.2.10 openafs/src/afs/afs_osi.c:1.48.2.11
*** openafs/src/afs/afs_osi.c:1.48.2.10	Thu Dec 28 16:50:58 2006
--- openafs/src/afs/afs_osi.c	Thu Feb  8 20:30:32 2007
***************
*** 11,17 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_osi.c,v 1.48.2.10 2006/12/28 21:50:58 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
--- 11,17 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_osi.c,v 1.48.2.11 2007/02/09 01:30:32 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
***************
*** 811,823 ****
  afs_osi_TraverseProcTable()
  {
  #if !defined(LINUX_KEYRING_SUPPORT)
-     extern rwlock_t tasklist_lock __attribute__((weak));
      struct task_struct *p;
  
      if (&tasklist_lock)
         read_lock(&tasklist_lock);
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
      else
  	rcu_read_lock();
  #endif
  
--- 811,828 ----
  afs_osi_TraverseProcTable()
  {
  #if !defined(LINUX_KEYRING_SUPPORT)
      struct task_struct *p;
  
+ #ifdef EXPORTED_TASKLIST_LOCK
+     extern rwlock_t tasklist_lock __attribute__((weak));
+ 
      if (&tasklist_lock)
         read_lock(&tasklist_lock);
+ #endif
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+ #ifdef EXPORTED_TASKLIST_LOCK
      else
+ #endif
  	rcu_read_lock();
  #endif
  
***************
*** 844,853 ****
--- 849,862 ----
  	afs_GCPAGs_perproc_func(p);
      }
  #endif
+ #ifdef EXPORTED_TASKLIST_LOCK
      if (&tasklist_lock)
         read_unlock(&tasklist_lock);
+ #endif
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+ #ifdef EXPORTED_TASKLIST_LOCK
      else
+ #endif
  	rcu_read_unlock();
  #endif
  #endif
Index: openafs/src/afs/afs_osi.h
diff -c openafs/src/afs/afs_osi.h:1.22.2.18 openafs/src/afs/afs_osi.h:1.22.2.19
*** openafs/src/afs/afs_osi.h:1.22.2.18	Thu Nov  9 18:26:25 2006
--- openafs/src/afs/afs_osi.h	Thu Feb  8 17:41:20 2007
***************
*** 212,219 ****
--- 212,223 ----
  /* should use curthread, but 'ps' can't display it */
  #define osi_ThreadUnique()	curproc
  #else
+ #ifdef AFS_LINUX_ENV
+ #define osi_ThreadUnique()	(current->pid)
+ #else
  #define osi_ThreadUnique()	getpid()
  #endif
+ #endif
  
  
  
Index: openafs/src/afs/afs_osi_pag.c
diff -c openafs/src/afs/afs_osi_pag.c:1.21.2.9 openafs/src/afs/afs_osi_pag.c:1.21.2.10
*** openafs/src/afs/afs_osi_pag.c:1.21.2.9	Mon Jan 15 10:52:45 2007
--- openafs/src/afs/afs_osi_pag.c	Thu Feb  8 19:32:04 2007
***************
*** 23,29 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_osi_pag.c,v 1.21.2.9 2007/01/15 15:52:45 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
--- 23,29 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_osi_pag.c,v 1.21.2.10 2007/02/09 00:32:04 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
***************
*** 590,604 ****
  #if defined(AFS_LINUX26_ENV) && defined(LINUX_KEYRING_SUPPORT)
      if (pag == NOPAG) {
  	struct key *key;
! 	afs_uint32 pag, newpag;
  
  	key = request_key(&key_type_afs_pag, "_pag", NULL);
  	if (!IS_ERR(key)) {
  	    if (key_validate(key) == 0 && key->uid == 0) {	/* also verify in the session keyring? */
! 
! 		pag = (afs_uint32) key->payload.value;
! 		if (((pag >> 24) & 0xff) == 'A')
! 		    __setpag(&cred, pag, &newpag, 0);
  	    }
  	    key_put(key);
  	} 
--- 590,605 ----
  #if defined(AFS_LINUX26_ENV) && defined(LINUX_KEYRING_SUPPORT)
      if (pag == NOPAG) {
  	struct key *key;
! 	afs_uint32 upag, newpag;
  
  	key = request_key(&key_type_afs_pag, "_pag", NULL);
  	if (!IS_ERR(key)) {
  	    if (key_validate(key) == 0 && key->uid == 0) {	/* also verify in the session keyring? */
! 		upag = (afs_uint32) key->payload.value;
! 		if (((upag >> 24) & 0xff) == 'A') {
! 		    __setpag(&cred, upag, &newpag, 0);
! 		    pag = (afs_int32) upag;
! 		}
  	    }
  	    key_put(key);
  	} 
Index: openafs/src/afs/afs_volume.c
diff -c openafs/src/afs/afs_volume.c:1.26.2.6 openafs/src/afs/afs_volume.c:1.26.2.7
*** openafs/src/afs/afs_volume.c:1.26.2.6	Mon Dec 18 21:35:27 2006
--- openafs/src/afs/afs_volume.c	Thu Jan 25 06:24:30 2007
***************
*** 19,25 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_volume.c,v 1.26.2.6 2006/12/19 02:35:27 shadow Exp $");
  
  #include "afs/stds.h"
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
--- 19,25 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/afs_volume.c,v 1.26.2.7 2007/01/25 11:24:30 shadow Exp $");
  
  #include "afs/stds.h"
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
***************
*** 682,695 ****
      } while (afs_Analyze(tconn, code, NULL, &treq, -1,	/* no op code for this */
  			 SHARED_LOCK, tcell));
  
-     /* RT 48959 - unclear if this should really go */
- #if 0
      if (code) {
  	/* If the client has yet to contact this cell and contact failed due
  	 * to network errors, mark the VLDB servers as back up.
  	 * That the client tried and failed can be determined from the
  	 * fact that there was a downtime incident, but CHasVolRef is not set.
  	 */
  	if (areq->networkError && !(tcell->states & CHasVolRef)) {
  	    int i;
  	    struct server *sp;
--- 682,695 ----
      } while (afs_Analyze(tconn, code, NULL, &treq, -1,	/* no op code for this */
  			 SHARED_LOCK, tcell));
  
      if (code) {
  	/* If the client has yet to contact this cell and contact failed due
  	 * to network errors, mark the VLDB servers as back up.
  	 * That the client tried and failed can be determined from the
  	 * fact that there was a downtime incident, but CHasVolRef is not set.
  	 */
+     /* RT 48959 - unclear if this should really go */
+ #if 0
  	if (areq->networkError && !(tcell->states & CHasVolRef)) {
  	    int i;
  	    struct server *sp;
***************
*** 701,712 ****
  		    afs_MarkServerUpOrDown(sap, 0);
  	    }
  	}
  	afs_CopyError(&treq, areq);
  	osi_FreeLargeSpace(tbuffer);
  	afs_PutCell(tcell, READ_LOCK);
  	return NULL;
      }
- #endif
      /*
       * Check to see if this cell has not yet referenced a volume.  If
       * it hasn't, it's just about to change its status, and we need to mark
--- 701,712 ----
  		    afs_MarkServerUpOrDown(sap, 0);
  	    }
  	}
+ #endif
  	afs_CopyError(&treq, areq);
  	osi_FreeLargeSpace(tbuffer);
  	afs_PutCell(tcell, READ_LOCK);
  	return NULL;
      }
      /*
       * Check to see if this cell has not yet referenced a volume.  If
       * it hasn't, it's just about to change its status, and we need to mark
Index: openafs/src/afs/lock.h
diff -c openafs/src/afs/lock.h:1.13.2.6 openafs/src/afs/lock.h:1.13.2.7
*** openafs/src/afs/lock.h:1.13.2.6	Fri Jan 12 11:31:40 2007
--- openafs/src/afs/lock.h	Fri Feb  2 22:25:18 2007
***************
*** 89,95 ****
  #if defined(AFS_SUN57_ENV)
  typedef kthread_t * afs_lock_tracker_t;
  #define MyPidxx (curthread)
! #define MyPidxx2Pid(x) (ttoproc(x)->p_pid)
  #elif defined(AFS_SUN5_ENV) || defined(AFS_OBSD_ENV)
  typedef unsigned int afs_lock_tracker_t;
  #define MyPidxx (curproc->p_pid)
--- 89,95 ----
  #if defined(AFS_SUN57_ENV)
  typedef kthread_t * afs_lock_tracker_t;
  #define MyPidxx (curthread)
! #define MyPidxx2Pid(x) (x ? ttoproc(x)->p_pid : 0)
  #elif defined(AFS_SUN5_ENV) || defined(AFS_OBSD_ENV)
  typedef unsigned int afs_lock_tracker_t;
  #define MyPidxx (curproc->p_pid)
***************
*** 104,110 ****
  #if defined(AFS_HPUX101_ENV)
  typedef struct proc * afs_lock_tracker_t;
  #define MyPidxx (u.u_procp)
! #define MyPidxx2Pid(x) ((afs_int32)p_pid(x))
  #else
  #if defined(AFS_SGI64_ENV)
  #if defined(AFS_SGI65_ENV)
--- 104,110 ----
  #if defined(AFS_HPUX101_ENV)
  typedef struct proc * afs_lock_tracker_t;
  #define MyPidxx (u.u_procp)
! #define MyPidxx2Pid(x) (x ? (afs_int32)p_pid(x) : 0)
  #else
  #if defined(AFS_SGI64_ENV)
  #if defined(AFS_SGI65_ENV)
***************
*** 120,126 ****
  #ifdef AFS_LINUX20_ENV
  typedef struct task_struct * afs_lock_tracker_t;
  #define MyPidxx (current)
! #define MyPidxx2Pid(x) ((x)->pid)
  #else
  #if defined(AFS_DARWIN_ENV)
  #if defined(AFS_DARWIN80_ENV)
--- 120,126 ----
  #ifdef AFS_LINUX20_ENV
  typedef struct task_struct * afs_lock_tracker_t;
  #define MyPidxx (current)
! #define MyPidxx2Pid(x) (x? (x)->pid : 0)
  #else
  #if defined(AFS_DARWIN_ENV)
  #if defined(AFS_DARWIN80_ENV)
Index: openafs/src/afs/LINUX/osi_machdep.h
diff -c openafs/src/afs/LINUX/osi_machdep.h:1.22.2.16 openafs/src/afs/LINUX/osi_machdep.h:1.22.2.17
*** openafs/src/afs/LINUX/osi_machdep.h:1.22.2.16	Mon Jan 15 10:52:46 2007
--- openafs/src/afs/LINUX/osi_machdep.h	Thu Feb  8 17:41:20 2007
***************
*** 28,33 ****
--- 28,43 ----
  
  #undef getuerror
  
+ #ifdef STRUCT_TASK_STRUCT_HAS_TGID
+ #define getpid() current->tgid
+ #ifdef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
+ #define getppid() current->real_parent->tgid
+ #elif defined(STRUCT_TASK_STRUCT_HAS_PARENT)
+ #define getppid() current->parent->tgid
+ #else
+ #define getppid() current->p_opptr->tgid
+ #endif
+ #else /* !STRUCT_TASK_STRUCT_HAS_TGID */
  #define getpid() current->pid
  #ifdef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
  #define getppid() current->real_parent->pid
***************
*** 36,41 ****
--- 46,52 ----
  #else
  #define getppid() current->p_opptr->pid
  #endif
+ #endif /* STRUCT_TASK_STRUCT_HAS_TGID */
  
  #ifdef RECALC_SIGPENDING_TAKES_VOID
  #define RECALC_SIGPENDING(X) recalc_sigpending()
Index: openafs/src/afs/LINUX/osi_module.c
diff -c openafs/src/afs/LINUX/osi_module.c:1.52.2.25 openafs/src/afs/LINUX/osi_module.c:1.52.2.26
*** openafs/src/afs/LINUX/osi_module.c:1.52.2.25	Sat Sep 16 15:19:36 2006
--- openafs/src/afs/LINUX/osi_module.c	Thu Feb  8 20:30:33 2007
***************
*** 15,21 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_module.c,v 1.52.2.25 2006/09/16 19:19:36 shadow Exp $");
  
  #include <linux/module.h> /* early to avoid printf->printk mapping */
  #include "afs/sysincludes.h"
--- 15,21 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_module.c,v 1.52.2.26 2007/02/09 01:30:33 shadow Exp $");
  
  #include <linux/module.h> /* early to avoid printf->printk mapping */
  #include "afs/sysincludes.h"
***************
*** 423,429 ****
      struct task_struct *p, *q;
  
      /* search backward thru the circular list */
! #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
      read_lock(&tasklist_lock);
  #endif
      /* search backward thru the circular list */
--- 423,429 ----
      struct task_struct *p, *q;
  
      /* search backward thru the circular list */
! #if defined(EXPORTED_TASKLIST_LOCK) 
      read_lock(&tasklist_lock);
  #endif
      /* search backward thru the circular list */
***************
*** 433,446 ****
      for (p = current; p; p = p->prev_task) {
  #endif
  	if (p->pid == 1) {
! #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
  	    read_unlock(&tasklist_lock);
  #endif
  	    return p->addr_limit.seg;
  	}
      }
  
! #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
      read_unlock(&tasklist_lock);
  #endif
      return 0;
--- 433,446 ----
      for (p = current; p; p = p->prev_task) {
  #endif
  	if (p->pid == 1) {
! #if defined(EXPORTED_TASKLIST_LOCK) 
  	    read_unlock(&tasklist_lock);
  #endif
  	    return p->addr_limit.seg;
  	}
      }
  
! #if defined(EXPORTED_TASKLIST_LOCK) 
      read_unlock(&tasklist_lock);
  #endif
      return 0;
Index: openafs/src/afs/LINUX/osi_probe.c
diff -c openafs/src/afs/LINUX/osi_probe.c:1.1.2.16 openafs/src/afs/LINUX/osi_probe.c:1.1.2.20
*** openafs/src/afs/LINUX/osi_probe.c:1.1.2.16	Thu Nov  9 18:14:29 2006
--- openafs/src/afs/LINUX/osi_probe.c	Tue Feb 13 17:54:20 2007
***************
*** 247,253 ****
  extern asmlinkage long sys_open (const char *, int, int) __attribute__((weak));
  #endif
  extern asmlinkage long sys_ioctl(unsigned int, unsigned int, unsigned long) __attribute__((weak));
- extern rwlock_t tasklist_lock __attribute__((weak));
  
  
  /* Structures used to control probing.  We put all the details of which
--- 247,252 ----
***************
*** 515,521 ****
      (unsigned long)&sys_close,
  #elif defined(AFS_AMD64_LINUX20_ENV)
      /* On this platform, it's in a different section! */
!     (unsigned long)&tasklist_lock,
  #else
      (unsigned long)&init_mm,
  #endif
--- 514,520 ----
      (unsigned long)&sys_close,
  #elif defined(AFS_AMD64_LINUX20_ENV)
      /* On this platform, it's in a different section! */
!     (unsigned long)&generic_ro_fops,
  #else
      (unsigned long)&init_mm,
  #endif
***************
*** 537,543 ****
      0x1fffff,
      0x30000,
  #elif defined(AFS_AMD64_LINUX20_ENV)
!     (unsigned long)(&tasklist_lock) - 0x30000,
      0,
      0x6000,
  #elif defined(AFS_PPC64_LINUX26_ENV)
--- 536,542 ----
      0x1fffff,
      0x30000,
  #elif defined(AFS_AMD64_LINUX20_ENV)
!     (unsigned long)(&generic_ro_fops) - 0x30000,
      0,
      0x6000,
  #elif defined(AFS_PPC64_LINUX26_ENV)
***************
*** 556,564 ****
  
  #ifdef AFS_LINUX26_ENV
      (unsigned long)scsi_command_size,
!     (unsigned long)scsi_command_size,
      0x3ffff,
!     0x30000,
  #else
      0, 0, 0, 0,
  #endif
--- 555,563 ----
  
  #ifdef AFS_LINUX26_ENV
      (unsigned long)scsi_command_size,
!     (unsigned long)scsi_command_size - 0x10000,
      0x3ffff,
!     0x40000,
  #else
      0, 0, 0, 0,
  #endif
***************
*** 654,662 ****
  
  #ifdef AFS_LINUX26_ENV
      (unsigned long)scsi_command_size,
!     (unsigned long)scsi_command_size,
      0x3ffff,
!     0x30000,
  #else
      0, 0, 0, 0,
  #endif
--- 653,661 ----
  
  #ifdef AFS_LINUX26_ENV
      (unsigned long)scsi_command_size,
!     (unsigned long)scsi_command_size - 0x10000,
      0x3ffff,
!     0x40000,
  #else
      0, 0, 0, 0,
  #endif
***************
*** 793,801 ****
  
  #ifdef AFS_LINUX26_ENV
      (unsigned long)scsi_command_size,
!     (unsigned long)scsi_command_size,
      0x3ffff,
!     0x30000,
  #else
      0, 0, 0, 0,
  #endif
--- 792,800 ----
  
  #ifdef AFS_LINUX26_ENV
      (unsigned long)scsi_command_size,
!     (unsigned long)scsi_command_size - 0x10000,
      0x3ffff,
!     0x40000,
  #else
      0, 0, 0, 0,
  #endif
***************
*** 888,896 ****
  
  #ifdef AFS_LINUX26_ENV
      (unsigned long)scsi_command_size,
!     (unsigned long)scsi_command_size,
      0x3ffff,
!     0x30000,
  #else
      0, 0, 0, 0,
  #endif
--- 887,895 ----
  
  #ifdef AFS_LINUX26_ENV
      (unsigned long)scsi_command_size,
!     (unsigned long)scsi_command_size - 0x10000,
      0x3ffff,
!     0x40000,
  #else
      0, 0, 0, 0,
  #endif
Index: openafs/src/afs/LINUX/osi_vfsops.c
diff -c openafs/src/afs/LINUX/osi_vfsops.c:1.29.2.22 openafs/src/afs/LINUX/osi_vfsops.c:1.29.2.23
*** openafs/src/afs/LINUX/osi_vfsops.c:1.29.2.22	Thu Dec 28 16:32:08 2006
--- openafs/src/afs/LINUX/osi_vfsops.c	Thu Feb  8 20:25:48 2007
***************
*** 16,22 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.29.2.22 2006/12/28 21:32:08 shadow Exp $");
  
  #define __NO_VERSION__		/* don't define kernel_version in module.h */
  #include <linux/module.h> /* early to avoid printf->printk mapping */
--- 16,22 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.29.2.23 2007/02/09 01:25:48 shadow Exp $");
  
  #define __NO_VERSION__		/* don't define kernel_version in module.h */
  #include <linux/module.h> /* early to avoid printf->printk mapping */
***************
*** 416,422 ****
  
      AFS_STATCNT(afs_statfs);
  
!     statp->f_type = 0;		/* Can we get a real type sometime? */
  #if defined(STATFS_TAKES_DENTRY)
      statp->f_bsize = dentry->d_sb->s_blocksize;
  #else
--- 416,423 ----
  
      AFS_STATCNT(afs_statfs);
  
!     /* hardcode in case that which is giveth is taken away */
!     statp->f_type = 0x5346414F;
  #if defined(STATFS_TAKES_DENTRY)
      statp->f_bsize = dentry->d_sb->s_blocksize;
  #else
Index: openafs/src/afs/LINUX/osi_vnodeops.c
diff -c openafs/src/afs/LINUX/osi_vnodeops.c:1.81.2.47 openafs/src/afs/LINUX/osi_vnodeops.c:1.81.2.50
*** openafs/src/afs/LINUX/osi_vnodeops.c:1.81.2.47	Thu Nov  9 19:08:55 2006
--- openafs/src/afs/LINUX/osi_vnodeops.c	Thu Feb  8 20:38:17 2007
***************
*** 22,28 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.47 2006/11/10 00:08:55 shadow Exp $");
  
  #include "afs/sysincludes.h"
  #include "afsincludes.h"
--- 22,28 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.50 2007/02/09 01:38:17 shadow Exp $");
  
  #include "afs/sysincludes.h"
  #include "afsincludes.h"
***************
*** 101,107 ****
  afs_linux_write(struct file *fp, const char *buf, size_t count, loff_t * offp)
  {
      ssize_t code = 0;
-     int code2 = 0;
      struct vcache *vcp = VTOAFS(fp->f_dentry->d_inode);
      struct vrequest treq;
      cred_t *credp = crref();
--- 101,106 ----
***************
*** 472,495 ****
      AFS_GUNLOCK();
  
  #ifdef AFS_LINUX24_ENV
!     if (code == 0 && (cmd == F_SETLK || cmd == F_SETLKW)) {
  #ifdef AFS_LINUX26_ENV
!        struct file_lock flp2;
!        flp2 = *flp;
!        flp2.fl_flags &=~ FL_SLEEP;
!        code = posix_lock_file(fp, &flp2);
  #else
!        code = posix_lock_file(fp, flp, 0);
  #endif 
!        osi_Assert(code != -EAGAIN); /* there should be no conflicts */
!        if (code) {
!            struct AFS_FLOCK flock2;
!            flock2 = flock;
!            flock2.l_type = F_UNLCK;
!            AFS_GLOCK();
!            afs_lockctl(vcp, &flock2, F_SETLK, credp);
!            AFS_GUNLOCK();
!        }
      }
  #endif
      /* Convert flock back to Linux's file_lock */
--- 471,492 ----
      AFS_GUNLOCK();
  
  #ifdef AFS_LINUX24_ENV
!     if ((code == 0 || flp->fl_type == F_UNLCK) && 
!         (cmd == F_SETLK || cmd == F_SETLKW)) {
  #ifdef AFS_LINUX26_ENV
! 	flp->fl_flags &=~ FL_SLEEP;
! 	code = posix_lock_file(fp, flp);
  #else
! 	code = posix_lock_file(fp, flp, 0);
  #endif 
! 	if (code && flp->fl_type != F_UNLCK) {
! 	    struct AFS_FLOCK flock2;
! 	    flock2 = flock;
! 	    flock2.l_type = F_UNLCK;
! 	    AFS_GLOCK();
! 	    afs_lockctl(vcp, &flock2, F_SETLK, credp);
! 	    AFS_GUNLOCK();
! 	}
      }
  #endif
      /* Convert flock back to Linux's file_lock */
***************
*** 503,508 ****
--- 500,556 ----
  
  }
  
+ #ifdef STRUCT_FILE_OPERATIONS_HAS_FLOCK
+ static int
+ afs_linux_flock(struct file *fp, int cmd, struct file_lock *flp) {
+     int code = 0;
+     struct vcache *vcp = VTOAFS(FILE_INODE(fp));
+     cred_t *credp = crref();
+     struct AFS_FLOCK flock;
+     /* Convert to a lock format afs_lockctl understands. */
+     memset((char *)&flock, 0, sizeof(flock));
+     flock.l_type = flp->fl_type;
+     flock.l_pid = flp->fl_pid;
+     flock.l_whence = 0;
+     flock.l_start = 0;
+     flock.l_len = OFFSET_MAX;
+ 
+     /* Safe because there are no large files, yet */
+ #if defined(F_GETLK64) && (F_GETLK != F_GETLK64)
+     if (cmd == F_GETLK64)
+ 	cmd = F_GETLK;
+     else if (cmd == F_SETLK64)
+ 	cmd = F_SETLK;
+     else if (cmd == F_SETLKW64)
+ 	cmd = F_SETLKW;
+ #endif /* F_GETLK64 && F_GETLK != F_GETLK64 */
+ 
+     AFS_GLOCK();
+     code = afs_lockctl(vcp, &flock, cmd, credp);
+     AFS_GUNLOCK();
+ 
+     if ((code == 0 || flp->fl_type == F_UNLCK) && 
+         (cmd == F_SETLK || cmd == F_SETLKW)) {
+ 	flp->fl_flags &=~ FL_SLEEP;
+ 	code = flock_lock_file_wait(fp, flp);
+ 	if (code && flp->fl_type != F_UNLCK) {
+ 	    struct AFS_FLOCK flock2;
+ 	    flock2 = flock;
+ 	    flock2.l_type = F_UNLCK;
+ 	    AFS_GLOCK();
+ 	    afs_lockctl(vcp, &flock2, F_SETLK, credp);
+ 	    AFS_GUNLOCK();
+ 	}
+     }
+     /* Convert flock back to Linux's file_lock */
+     flp->fl_type = flock.l_type;
+     flp->fl_pid = flock.l_pid;
+ 
+     crfree(credp);
+     return -code;
+ }
+ #endif
+ 
  /* afs_linux_flush
   * essentially the same as afs_fsync() but we need to get the return
   * code for the sys_close() here, not afs_linux_release(), so call
***************
*** 594,599 ****
--- 642,650 ----
    .release =	afs_linux_release,
    .fsync =	afs_linux_fsync,
    .lock =	afs_linux_lock,
+ #ifdef STRUCT_FILE_OPERATIONS_HAS_FLOCK
+   .flock =	afs_linux_flock,
+ #endif
  };
  
  
Index: openafs/src/afs/VNOPS/afs_vnop_flock.c
diff -c openafs/src/afs/VNOPS/afs_vnop_flock.c:1.24.2.7 openafs/src/afs/VNOPS/afs_vnop_flock.c:1.24.2.8
*** openafs/src/afs/VNOPS/afs_vnop_flock.c:1.24.2.7	Tue Oct 24 09:42:16 2006
--- openafs/src/afs/VNOPS/afs_vnop_flock.c	Mon Feb 12 20:36:11 2007
***************
*** 16,22 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_flock.c,v 1.24.2.7 2006/10/24 13:42:16 rees Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
--- 16,22 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_flock.c,v 1.24.2.8 2007/02/13 01:36:11 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
***************
*** 547,552 ****
--- 547,556 ----
  	af->l_len = 0;		/* since some systems indicate it as EOF */
  #endif
  #endif
+     /* Java VMs ask for l_len=(long)-1 regardless of OS/CPU; bottom 32 bits
+      * sometimes get masked off by OS */
+     if ((af->l_len >> 32) == 0x7fffffff)
+ 	af->l_len = 0;
      /* next line makes byte range locks always succeed,
       * even when they should block */
      if (af->l_whence != 0 || af->l_start != 0 || af->l_len != 0) {
Index: openafs/src/aklog/aklog_main.c
diff -c openafs/src/aklog/aklog_main.c:1.1.2.14 openafs/src/aklog/aklog_main.c:1.1.2.15
*** openafs/src/aklog/aklog_main.c:1.1.2.14	Tue Aug 29 15:19:05 2006
--- openafs/src/aklog/aklog_main.c	Sat Feb 10 08:56:54 2007
***************
*** 1,5 ****
  /* 
!  * $Id: aklog_main.c,v 1.1.2.14 2006/08/29 19:19:05 shadow Exp $
   *
   * Copyright 1990,1991 by the Massachusetts Institute of Technology
   * For distribution and copying rights, see the file "mit-copyright.h"
--- 1,5 ----
  /* 
!  * $Id: aklog_main.c,v 1.1.2.15 2007/02/10 13:56:54 jaltman Exp $
   *
   * Copyright 1990,1991 by the Massachusetts Institute of Technology
   * For distribution and copying rights, see the file "mit-copyright.h"
***************
*** 7,13 ****
  
  #if !defined(lint) && !defined(SABER)
  static char *rcsid =
! 	"$Id: aklog_main.c,v 1.1.2.14 2006/08/29 19:19:05 shadow Exp $";
  #endif /* lint || SABER */
  
  #include <afsconfig.h>
--- 7,13 ----
  
  #if !defined(lint) && !defined(SABER)
  static char *rcsid =
! 	"$Id: aklog_main.c,v 1.1.2.15 2007/02/10 13:56:54 jaltman Exp $";
  #endif /* lint || SABER */
  
  #include <afsconfig.h>
***************
*** 158,164 ****
   * Other prototypes
   */
  
! extern char *afs_realm_of_cell(krb5_context, struct afsconf_cell *);
  static int isdir(char *, unsigned char *);
  static krb5_error_code get_credv5(krb5_context context, char *, char *,
  				  char *, krb5_creds **);
--- 158,164 ----
   * Other prototypes
   */
  
! extern char *afs_realm_of_cell(krb5_context, struct afsconf_cell *, int);
  static int isdir(char *, unsigned char *);
  static krb5_error_code get_credv5(krb5_context context, char *, char *,
  				  char *, krb5_creds **);
***************
*** 496,515 ****
  	    }
  	}
  	else {
! 	    char *realm = afs_realm_of_cell(context, &ak_cellconfig);
  
! 	    if (!realm) {
  		fprintf(stderr, 
  			"%s: Couldn't figure out realm for cell %s.\n",
  			progname, cell_to_use);
  		exit(AKLOG_MISC);
  	    }
  
! 	    strcpy(realm_of_cell, realm);
  
  	    if (dflag) {
! 		printf("We've deduced that we need to authenticate to"
! 		       " realm %s.\n", realm_of_cell);
  	    }
  	}
  
--- 496,519 ----
  	    }
  	}
  	else {
! 	    char *afs_realm = afs_realm_of_cell(context, &ak_cellconfig, FALSE);
  
! 	    if (!afs_realm) {
  		fprintf(stderr, 
  			"%s: Couldn't figure out realm for cell %s.\n",
  			progname, cell_to_use);
  		exit(AKLOG_MISC);
  	    }
  
! 	    strcpy(realm_of_cell, afs_realm);
  
  	    if (dflag) {
! 		if (realm_of_cell[0])
! 		    printf("We've deduced that we need to authenticate to"
! 			   " realm %s.\n", realm_of_cell);
! 		else
! 		    printf("We've deduced that we need to authenticate "
! 			   "using referrals.\n");
  	    }
  	}
  
***************
*** 563,580 ****
  	 */
  
  	if (dflag) {
! 	    printf("Getting tickets: %s/%s@%s\n", name,
  		   primary_instance, realm_of_cell);
  	}
  
  	status = get_credv5(context, name, primary_instance, realm_of_cell,
  			    &v5cred);
  
  	if (status == KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN || status == KRB5KRB_ERR_GENERIC) {
  	    if (try_secondary) {
  		if (dflag) {
  		    printf("Principal not found, trying alternate "
! 			   "service name: %s/%s@%s\n", name,
  			    secondary_instance, realm_of_cell);
  		}
  		status = get_credv5(context, name, secondary_instance,
--- 567,616 ----
  	 */
  
  	if (dflag) {
! 	    printf("Getting tickets: %s%s%s@%s\n", name,
! 		   primary_instance[0] ? "/" : "", 
  		   primary_instance, realm_of_cell);
  	}
  
  	status = get_credv5(context, name, primary_instance, realm_of_cell,
  			    &v5cred);
  
+ 	if ((status == KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN || status == KRB5KRB_ERR_GENERIC) &&
+ 	    !realm_of_cell[0]) {
+ 	    char *afs_realm = afs_realm_of_cell(context, &ak_cellconfig, TRUE);
+ 
+ 	    if (!afs_realm) {
+ 		fprintf(stderr, 
+ 			"%s: Couldn't figure out realm for cell %s.\n",
+ 			progname, cell_to_use);
+ 		exit(AKLOG_MISC);
+ 	    }
+ 
+ 	    strcpy(realm_of_cell, afs_realm);
+ 
+ 	    if (strcasecmp(cell_to_use, realm_of_cell) == 0) {
+ 		try_secondary = 1;
+ 		secondary_instance[0] = '\0';
+ 	    }
+ 
+ 	    if (dflag) {
+ 		printf("We've deduced that we need to authenticate to"
+ 			" realm %s.\n", realm_of_cell);
+ 		printf("Getting tickets: %s%s%s@%s\n", name,
+ 			primary_instance[0] ? "/" : "", 
+ 			primary_instance, realm_of_cell);
+ 	    }
+ 
+ 	    status = get_credv5(context, name, primary_instance, realm_of_cell,
+ 				 &v5cred);
+ 
+ 	}
  	if (status == KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN || status == KRB5KRB_ERR_GENERIC) {
  	    if (try_secondary) {
  		if (dflag) {
  		    printf("Principal not found, trying alternate "
! 			   "service name: %s%s%s@%s\n", name,
! 			    secondary_instance[0] ? "/" : "",
  			    secondary_instance, realm_of_cell);
  		}
  		status = get_credv5(context, name, secondary_instance,
***************
*** 779,786 ****
  			    error_message(status), username, cell_to_use,
  			    status);
  		} else {
! 		    printf("created cross-cell entry for %s at %s\n",
! 			   username, cell_to_use);
  		    sprintf(username, "AFS ID %d", (int) id);
  		}
  	    }
--- 815,822 ----
  			    error_message(status), username, cell_to_use,
  			    status);
  		} else {
! 		    printf("created cross-cell entry for %s (Id %d) at %s\n",
! 			   username, id, cell_to_use);
  		    sprintf(username, "AFS ID %d", (int) id);
  		}
  	    }
Index: openafs/src/aklog/krb_util.c
diff -c openafs/src/aklog/krb_util.c:1.1.2.4 openafs/src/aklog/krb_util.c:1.1.2.5
*** openafs/src/aklog/krb_util.c:1.1.2.4	Fri Jul 15 12:11:24 2005
--- openafs/src/aklog/krb_util.c	Sat Feb 10 08:56:54 2007
***************
*** 11,17 ****
  
  #ifndef lint
  static char rcsid_send_to_kdc_c[] =
! "$Id: krb_util.c,v 1.1.2.4 2005/07/15 16:11:24 rra Exp $";
  #endif /* lint */
  
  #if 0
--- 11,17 ----
  
  #ifndef lint
  static char rcsid_send_to_kdc_c[] =
! "$Id: krb_util.c,v 1.1.2.5 2007/02/10 13:56:54 jaltman Exp $";
  #endif /* lint */
  
  #if 0
***************
*** 40,46 ****
  
  #define S_AD_SZ sizeof(struct sockaddr_in)
  
! char *afs_realm_of_cell(krb5_context context, struct afsconf_cell *cellconfig)
  {
      static char krbrlm[REALM_SZ+1];
  	char **hrealms = 0;
--- 40,46 ----
  
  #define S_AD_SZ sizeof(struct sockaddr_in)
  
! char *afs_realm_of_cell(krb5_context context, struct afsconf_cell *cellconfig, int fallback)
  {
      static char krbrlm[REALM_SZ+1];
  	char **hrealms = 0;
***************
*** 48,60 ****
  
      if (!cellconfig)
  	return 0;
!     if (retval = krb5_get_host_realm(context,
! 				cellconfig->hostName[0], &hrealms))
! 		return 0; 
  	if(!hrealms[0]) return 0;
  	strcpy(krbrlm, hrealms[0]);
  
  	if (hrealms) krb5_free_host_realm(context, hrealms);
!     
      return krbrlm;
  }
--- 48,73 ----
  
      if (!cellconfig)
  	return 0;
! 
!     if (fallback) {
! 	char * p;
! 	p = strchr(cellconfig->hostName[0], '.');
! 	if (p++)
! 	    strcpy(krbrlm, p);
! 	else
! 	    strcpy(krbrlm, cellconfig->name);
! 	for (p=krbrlm; *p; p++) {
! 	    if (islower(*p)) 
! 		*p = toupper(*p);
! 	}
!     } else {
! 	if (retval = krb5_get_host_realm(context,
! 					 cellconfig->hostName[0], &hrealms))
! 	    return 0; 
  	if(!hrealms[0]) return 0;
  	strcpy(krbrlm, hrealms[0]);
  
  	if (hrealms) krb5_free_host_realm(context, hrealms);
!     }
      return krbrlm;
  }
Index: openafs/src/cf/linux-test1.m4
diff -c openafs/src/cf/linux-test1.m4:1.3.2.6 openafs/src/cf/linux-test1.m4:1.3.2.8
*** openafs/src/cf/linux-test1.m4:1.3.2.6	Thu Jan  4 17:25:58 2007
--- openafs/src/cf/linux-test1.m4	Fri Feb  9 13:29:37 2007
***************
*** 9,14 ****
--- 9,19 ----
  obj-m += conftest.o
  _ACEOF
      cat >conftest.dir/conftest.c <<\_ACEOF &&
+ /* confdefs.h */
+ _ACEOF
+     cat confdefs.h >>conftest.dir/conftest.c &&
+     cat >>conftest.dir/conftest.c <<\_ACEOF &&
+ /* end confdefs.h */
  #include <linux/module.h>
  $1
  
***************
*** 46,52 ****
  #               [ACTION-IF-SUCCESS], [ACTION-IF-FAILURE])
  #
  AC_DEFUN([AC_TRY_KBUILD], [
!   if test -f $LINUX_KERNEL_PATH/scripts/Makefile.build; then
      AC_TRY_KBUILD26([$1], [$2], [$3], [$4])
    else
      AC_TRY_KBUILD24([$1], [$2], [$3], [$4])
--- 51,57 ----
  #               [ACTION-IF-SUCCESS], [ACTION-IF-FAILURE])
  #
  AC_DEFUN([AC_TRY_KBUILD], [
!   if test $AFS_SYSKVERS -ge 26 ; then
      AC_TRY_KBUILD26([$1], [$2], [$3], [$4])
    else
      AC_TRY_KBUILD24([$1], [$2], [$3], [$4])
***************
*** 54,59 ****
  
  AC_DEFUN([LINUX_KERNEL_COMPILE_WORKS], [
    AC_MSG_CHECKING([for linux kernel module build works])
!   AC_TRY_KBUILD([],[],:,AC_MSG_RESULT(no)
      AC_MSG_FAILURE([Fix problem or use --disable-kernel-module...]))
    AC_MSG_RESULT(yes)])
--- 59,67 ----
  
  AC_DEFUN([LINUX_KERNEL_COMPILE_WORKS], [
    AC_MSG_CHECKING([for linux kernel module build works])
!   AC_TRY_KBUILD(
! [#include <linux/sched.h>
! #include <linux/fs.h>],
!     [],:,AC_MSG_RESULT(no)
      AC_MSG_FAILURE([Fix problem or use --disable-kernel-module...]))
    AC_MSG_RESULT(yes)])
Index: openafs/src/cf/linux-test4.m4
diff -c openafs/src/cf/linux-test4.m4:1.20.2.23 openafs/src/cf/linux-test4.m4:1.20.2.27
*** openafs/src/cf/linux-test4.m4:1.20.2.23	Thu Jan  4 16:43:54 2007
--- openafs/src/cf/linux-test4.m4	Thu Feb  8 20:30:33 2007
***************
*** 1,3 ****
--- 1,17 ----
+ AC_DEFUN([LINUX_EXPORTS_TASKLIST_LOCK], [
+   AC_MSG_CHECKING([for exported tasklist_lock])
+   AC_CACHE_VAL([ac_cv_linux_exports_tasklist_lock], [
+     AC_TRY_KBUILD(
+ [
+ #include <linux/sched.h>],
+ [
+ extern rwlock_t tasklist_lock __attribute__((weak)); 
+ ],
+       ac_cv_linux_exports_tasklist_lock=yes,
+       ac_cv_linux_exports_tasklist_lock=no)])
+   AC_MSG_RESULT($ac_cv_linux_exports_tasklist_lock)])
+ 
+ 
  AC_DEFUN([LINUX_CONFIG_H_EXISTS], [
    AC_MSG_CHECKING([for linux/config.h existance])
    AC_CACHE_VAL([ac_cv_linux_config_h_exists], [
***************
*** 333,338 ****
--- 347,364 ----
    AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_parent)])
  
  
+ AC_DEFUN([LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_TGID], [
+   AC_MSG_CHECKING([for tgid in struct task_struct])
+   AC_CACHE_VAL([ac_cv_linux_sched_struct_task_struct_has_tgid], [
+     AC_TRY_KBUILD(
+ [#include <linux/sched.h>],
+ [struct task_struct _tsk;
+ printk("%d\n", _tsk.tgid);],
+       ac_cv_linux_sched_struct_task_struct_has_tgid=yes,
+       ac_cv_linux_sched_struct_task_struct_has_tgid=no)])
+   AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_tgid)])
+ 
+ 
  AC_DEFUN([LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT], [
    AC_MSG_CHECKING([for real_parent in struct task_struct])
    AC_CACHE_VAL([ac_cv_linux_sched_struct_task_struct_has_real_parent], [
***************
*** 562,568 ****
    AC_MSG_CHECKING([whether refrigerator takes PF_FREEZE])
    AC_CACHE_VAL([ac_cv_linux_func_refrigerator_takes_pf_freeze], [
      AC_TRY_KBUILD(
! [#include <linux/sched.h>],
  [refrigerator(PF_FREEZE);],
        ac_cv_linux_func_refrigerator_takes_pf_freeze=yes,
        ac_cv_linux_func_refrigerator_takes_pf_freeze=no)])
--- 588,597 ----
    AC_MSG_CHECKING([whether refrigerator takes PF_FREEZE])
    AC_CACHE_VAL([ac_cv_linux_func_refrigerator_takes_pf_freeze], [
      AC_TRY_KBUILD(
! [#include <linux/sched.h>
! #ifdef FREEZER_H_EXISTS
! #include <linux/freezer.h>
! #endif],
  [refrigerator(PF_FREEZE);],
        ac_cv_linux_func_refrigerator_takes_pf_freeze=yes,
        ac_cv_linux_func_refrigerator_takes_pf_freeze=no)])
***************
*** 758,760 ****
--- 787,800 ----
        ac_cv_linux_init_work_has_data=no)])
    AC_MSG_RESULT($ac_cv_linux_init_work_has_data)])
  
+ 
+ AC_DEFUN([LINUX_FS_STRUCT_FOP_HAS_FLOCK], [
+   AC_MSG_CHECKING([for flock in struct file_operations])
+   AC_CACHE_VAL([ac_cv_linux_fs_struct_fop_has_flock], [
+     AC_TRY_KBUILD(
+ [#include <linux/fs.h>],
+ [struct file_operations _fop;
+ _fop.flock(NULL, 0, NULL);],
+       ac_cv_linux_fs_struct_fop_has_flock=yes,
+       ac_cv_linux_fs_struct_fop_has_flock=no)])
+   AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_flock)])
Index: openafs/src/config/Makefile.in
diff -c openafs/src/config/Makefile.in:1.14.2.2 openafs/src/config/Makefile.in:1.14.2.4
*** openafs/src/config/Makefile.in:1.14.2.2	Mon Dec 18 23:21:47 2006
--- openafs/src/config/Makefile.in	Fri Feb  9 13:44:39 2007
***************
*** 23,29 ****
  
  Makefile.version: ${srcdir}/Makefile.version-CML Makefile.version-NOCML
  	$(RM) -f Makefile.version
- 	$(CP) Makefile.version-NOCML.in Makefile.version.in
  	if	[ -r SRC/../CML/state ] ; \
  	then	$(CP) ${srcdir}/Makefile.version-CML Makefile.version ; \
  	else	$(CP) Makefile.version-NOCML Makefile.version ; \
--- 23,28 ----
***************
*** 102,108 ****
  	${DESTDIR}${includedir}/afs/debug.h
  
  clean:
! 	$(RM) -f *.o config mkvers core xprt AFS_component_version_number.c param.h.new
  
  dest: ${DEST}/include/afs/param.h \
  	${DEST}/include/afs/stds.h \
--- 101,107 ----
  	${DESTDIR}${includedir}/afs/debug.h
  
  clean:
! 	$(RM) -f *.o config mkvers core xprt AFS_component_version_number.c param.h.new Makefile.version.in
  
  dest: ${DEST}/include/afs/param.h \
  	${DEST}/include/afs/stds.h \
Index: openafs/src/config/NTMakefile.amd64_w2k
diff -c openafs/src/config/NTMakefile.amd64_w2k:1.1.2.45 openafs/src/config/NTMakefile.amd64_w2k:1.1.2.46
*** openafs/src/config/NTMakefile.amd64_w2k:1.1.2.45	Fri Jan  5 15:18:07 2007
--- openafs/src/config/NTMakefile.amd64_w2k	Tue Feb 13 13:23:48 2007
***************
*** 80,86 ****
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=4
! AFSPRODUCT_VER_PATCH=300
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
--- 80,86 ----
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=4
! AFSPRODUCT_VER_PATCH=301
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
Index: openafs/src/config/NTMakefile.i386_nt40
diff -c openafs/src/config/NTMakefile.i386_nt40:1.46.2.60 openafs/src/config/NTMakefile.i386_nt40:1.46.2.61
*** openafs/src/config/NTMakefile.i386_nt40:1.46.2.60	Fri Jan  5 15:18:07 2007
--- openafs/src/config/NTMakefile.i386_nt40	Tue Feb 13 13:23:48 2007
***************
*** 80,86 ****
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=4
! AFSPRODUCT_VER_PATCH=300
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
--- 80,86 ----
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=4
! AFSPRODUCT_VER_PATCH=301
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
Index: openafs/src/config/NTMakefile.i386_w2k
diff -c openafs/src/config/NTMakefile.i386_w2k:1.1.2.47 openafs/src/config/NTMakefile.i386_w2k:1.1.2.48
*** openafs/src/config/NTMakefile.i386_w2k:1.1.2.47	Fri Jan  5 15:18:07 2007
--- openafs/src/config/NTMakefile.i386_w2k	Tue Feb 13 13:23:48 2007
***************
*** 80,86 ****
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=4
! AFSPRODUCT_VER_PATCH=300
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
--- 80,86 ----
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=4
! AFSPRODUCT_VER_PATCH=301
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
Index: openafs/src/config/afs_sysnames.h
diff -c openafs/src/config/afs_sysnames.h:1.50.2.26 openafs/src/config/afs_sysnames.h:1.50.2.27
*** openafs/src/config/afs_sysnames.h:1.50.2.26	Thu Dec 28 16:59:45 2006
--- openafs/src/config/afs_sysnames.h	Thu Feb  8 20:14:38 2007
***************
*** 239,244 ****
--- 239,245 ----
  #define SYS_NAME_ID_i386_obsd37		2606
  #define SYS_NAME_ID_i386_obsd38		2607
  #define SYS_NAME_ID_i386_obsd39		2608
+ #define SYS_NAME_ID_i386_obsd40         2609
  
  #define SYS_NAME_ID_amd64_linux2        2700
  #define SYS_NAME_ID_amd64_linux22       2701
Index: openafs/src/config/param.amd64_linux24.h
diff -c openafs/src/config/param.amd64_linux24.h:1.3.2.4 openafs/src/config/param.amd64_linux24.h:1.3.2.5
*** openafs/src/config/param.amd64_linux24.h:1.3.2.4	Thu Nov  9 18:18:31 2006
--- openafs/src/config/param.amd64_linux24.h	Tue Feb 13 14:12:46 2007
***************
*** 87,92 ****
--- 87,93 ----
  #endif
  #endif /* KERNEL */
  
+ #define USE_UCONTEXT           /* should be in afsconfig.h */
  
  #endif /* _PARAM_AMD64_LINUX20_H_ */
  
***************
*** 157,162 ****
--- 158,164 ----
  #define CMSERVERPREF
  #endif
  
+ #define USE_UCONTEXT           /* should be in afsconfig.h */
  
  #endif /* AFS_PARAM_H */
  
Index: openafs/src/config/param.i386_obsd40.h
diff -c /dev/null openafs/src/config/param.i386_obsd40.h:1.1.4.2
*** /dev/null	Tue Feb 13 21:27:07 2007
--- openafs/src/config/param.i386_obsd40.h	Thu Feb  8 20:14:38 2007
***************
*** 0 ****
--- 1,68 ----
+ /*
+  * Jim Rees, University of Michigan CITI
+  */
+ 
+ #ifndef	AFS_PARAM_H
+ #define	AFS_PARAM_H
+ 
+ #ifndef IGNORE_STDS_H
+ #include <sys/param.h>
+ #endif
+ 
+ #define SYS_NAME		"i386_obsd40"
+ #define SYS_NAME_ID		SYS_NAME_ID_i386_obsd40
+ 
+ #define AFS_XBSD_ENV		1	/* {Free,Open,Net}BSD */
+ #define AFS_X86_XBSD_ENV	1
+ 
+ #define AFS_NAMEI_ENV		1	/* User space interface to file system */
+ #define AFS_64BIT_ENV		1
+ #define AFS_64BIT_CLIENT	1
+ #define AFS_64BIT_IOPS_ENV	1	/* Needed for NAMEI */
+ #define AFS_OBSD_ENV		1
+ #define AFS_OBSD34_ENV		1
+ #define AFS_OBSD35_ENV		1
+ #define AFS_OBSD36_ENV		1
+ #define AFS_OBSD37_ENV		1
+ #define AFS_OBSD38_ENV		1
+ #define AFS_OBSD39_ENV		1
+ #define AFS_OBSD40_ENV		1
+ #define AFS_NONFSTRANS		1
+ #define AFS_VM_RDWR_ENV		1
+ #define AFS_VFS_ENV		1
+ #define AFS_VFSINCL_ENV		1
+ 
+ #define FTRUNC O_TRUNC
+ 
+ #define AFS_SYSCALL		208
+ #define AFS_MOUNT_AFS		"afs"
+ 
+ #define RXK_LISTENER_ENV	1
+ #define AFS_GCPAGS	        0	/* if nonzero, garbage collect PAGs */
+ #define AFS_USE_GETTIMEOFDAY    1	/* use gettimeofday to implement rx clock */
+ 
+ #define AFSLITTLE_ENDIAN	1
+ 
+ #ifndef IGNORE_STDS_H
+ #include <afs/afs_sysnames.h>
+ #endif
+ 
+ /* Extra kernel definitions (from kdefs file) */
+ #ifdef _KERNEL
+ #define AFS_GLOBAL_SUNLOCK	1
+ #define	AFS_SHORTGID		0	/* are group id's short? */
+ 
+ #if	!defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__)
+ enum vcexcl { NONEXCL, EXCL };
+ 
+ #ifndef MIN
+ #define MIN(A,B) ((A) < (B) ? (A) : (B))
+ #endif
+ #ifndef MAX
+ #define MAX(A,B) ((A) > (B) ? (A) : (B))
+ #endif
+ 
+ #endif /* ! ASSEMBLER & ! __LANGUAGE_ASSEMBLY__ */
+ #endif /* _KERNEL */
+ 
+ #endif /* AFS_PARAM_H */
Index: openafs/src/kauth/.cvsignore
diff -c openafs/src/kauth/.cvsignore:1.1 openafs/src/kauth/.cvsignore:1.1.14.1
*** openafs/src/kauth/.cvsignore:1.1	Mon Sep 10 16:14:18 2001
--- openafs/src/kauth/.cvsignore	Mon Jan 22 12:41:03 2007
***************
*** 20,22 ****
--- 20,23 ----
  kpasswd
  kpwvalid
  rebuild
+ ka-forwarder
Index: openafs/src/libafs/afs.ppc_darwin_70.plist.in
diff -c openafs/src/libafs/afs.ppc_darwin_70.plist.in:1.2.2.17 openafs/src/libafs/afs.ppc_darwin_70.plist.in:1.2.2.18
*** openafs/src/libafs/afs.ppc_darwin_70.plist.in:1.2.2.17	Mon Jan 15 23:16:19 2007
--- openafs/src/libafs/afs.ppc_darwin_70.plist.in	Mon Feb 12 20:49:35 2007
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc1</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.4.3fc1</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kernel.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc2</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.4.3fc2</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kernel.bsd</key>
Index: openafs/src/libafs/afs.ppc_darwin_80.plist.in
diff -c openafs/src/libafs/afs.ppc_darwin_80.plist.in:1.1.2.12 openafs/src/libafs/afs.ppc_darwin_80.plist.in:1.1.2.13
*** openafs/src/libafs/afs.ppc_darwin_80.plist.in:1.1.2.12	Mon Jan 15 23:16:19 2007
--- openafs/src/libafs/afs.ppc_darwin_80.plist.in	Mon Feb 12 20:49:35 2007
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc1</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.4.3fc1</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc2</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.4.3fc2</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/libafs/afs.ppc_darwin_90.plist.in
diff -c openafs/src/libafs/afs.ppc_darwin_90.plist.in:1.1.2.11 openafs/src/libafs/afs.ppc_darwin_90.plist.in:1.1.2.12
*** openafs/src/libafs/afs.ppc_darwin_90.plist.in:1.1.2.11	Mon Jan 15 23:16:19 2007
--- openafs/src/libafs/afs.ppc_darwin_90.plist.in	Mon Feb 12 20:49:35 2007
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc1</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.4.3fc1</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc2</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.4.3fc2</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/libafs/afs.x86_darwin_80.plist.in
diff -c openafs/src/libafs/afs.x86_darwin_80.plist.in:1.1.2.11 openafs/src/libafs/afs.x86_darwin_80.plist.in:1.1.2.12
*** openafs/src/libafs/afs.x86_darwin_80.plist.in:1.1.2.11	Mon Jan 15 23:16:19 2007
--- openafs/src/libafs/afs.x86_darwin_80.plist.in	Mon Feb 12 20:49:35 2007
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc1</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.4.3fc1</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc2</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.4.3fc2</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/libafs/afs.x86_darwin_90.plist.in
diff -c openafs/src/libafs/afs.x86_darwin_90.plist.in:1.1.2.11 openafs/src/libafs/afs.x86_darwin_90.plist.in:1.1.2.12
*** openafs/src/libafs/afs.x86_darwin_90.plist.in:1.1.2.11	Mon Jan 15 23:16:19 2007
--- openafs/src/libafs/afs.x86_darwin_90.plist.in	Mon Feb 12 20:49:35 2007
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc1</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.4.3fc1</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc2</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.4.3fc2</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/packaging/MacOS/OpenAFS.Info.plist
diff -c openafs/src/packaging/MacOS/OpenAFS.Info.plist:1.2.2.27 openafs/src/packaging/MacOS/OpenAFS.Info.plist:1.2.2.28
*** openafs/src/packaging/MacOS/OpenAFS.Info.plist:1.2.2.27	Mon Jan 15 23:16:21 2007
--- openafs/src/packaging/MacOS/OpenAFS.Info.plist	Mon Feb 12 20:49:35 2007
***************
*** 3,15 ****
  <plist version="1.0">
  <dict>
  	<key>CFBundleGetInfoString</key>
! 	<string>OpenAFS 1.4.3fc1</string>
  	<key>CFBundleIdentifier</key>
  	<string>org.openafs.OpenAFS.pkg</string>
  	<key>CFBundleName</key>
  	<string>OpenAFS</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc1</string>
  	<key>IFMajorVersion</key>
  	<integer>1</integer>
  	<key>IFMinorVersion</key>
--- 3,15 ----
  <plist version="1.0">
  <dict>
  	<key>CFBundleGetInfoString</key>
! 	<string>OpenAFS 1.4.3fc2</string>
  	<key>CFBundleIdentifier</key>
  	<string>org.openafs.OpenAFS.pkg</string>
  	<key>CFBundleName</key>
  	<string>OpenAFS</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.4.3fc2</string>
  	<key>IFMajorVersion</key>
  	<integer>1</integer>
  	<key>IFMinorVersion</key>
Index: openafs/src/packaging/MacOS/OpenAFS.info
diff -c openafs/src/packaging/MacOS/OpenAFS.info:1.1.4.40 openafs/src/packaging/MacOS/OpenAFS.info:1.1.4.41
*** openafs/src/packaging/MacOS/OpenAFS.info:1.1.4.40	Mon Jan 15 23:16:21 2007
--- openafs/src/packaging/MacOS/OpenAFS.info	Mon Feb 12 20:49:35 2007
***************
*** 1,5 ****
  Title OpenAFS
! Version 1.4.3fc1
  Description The OpenAFS distributed filesystem. This package installs an almost-ready-to-run client for OpenAFS. see http://www.openafs.org for more information.
  DefaultLocation /
  Diskname (null)
--- 1,5 ----
  Title OpenAFS
! Version 1.4.3fc2
  Description The OpenAFS distributed filesystem. This package installs an almost-ready-to-run client for OpenAFS. see http://www.openafs.org for more information.
  DefaultLocation /
  Diskname (null)
Index: openafs/src/platform/.cvsignore
diff -c /dev/null openafs/src/platform/.cvsignore:1.1.10.2
*** /dev/null	Tue Feb 13 21:27:07 2007
--- openafs/src/platform/.cvsignore	Mon Jan 22 12:41:06 2007
***************
*** 0 ****
--- 1 ----
+ Makefile
Index: openafs/src/platform/AIX/.cvsignore
diff -c /dev/null openafs/src/platform/AIX/.cvsignore:1.1.10.2
*** /dev/null	Tue Feb 13 21:27:07 2007
--- openafs/src/platform/AIX/.cvsignore	Mon Jan 22 12:41:07 2007
***************
*** 0 ****
--- 1 ----
+ Makefile
Index: openafs/src/platform/DARWIN/.cvsignore
diff -c /dev/null openafs/src/platform/DARWIN/.cvsignore:1.1.10.2
*** /dev/null	Tue Feb 13 21:27:07 2007
--- openafs/src/platform/DARWIN/.cvsignore	Mon Jan 22 12:41:08 2007
***************
*** 0 ****
--- 1 ----
+ Makefile
Index: openafs/src/platform/FBSD/.cvsignore
diff -c /dev/null openafs/src/platform/FBSD/.cvsignore:1.1.10.2
*** /dev/null	Tue Feb 13 21:27:07 2007
--- openafs/src/platform/FBSD/.cvsignore	Mon Jan 22 12:41:09 2007
***************
*** 0 ****
--- 1 ----
+ Makefile
Index: openafs/src/platform/HPUX/.cvsignore
diff -c /dev/null openafs/src/platform/HPUX/.cvsignore:1.1.10.2
*** /dev/null	Tue Feb 13 21:27:07 2007
--- openafs/src/platform/HPUX/.cvsignore	Mon Jan 22 12:41:10 2007
***************
*** 0 ****
--- 1 ----
+ Makefile
Index: openafs/src/platform/IRIX/.cvsignore
diff -c /dev/null openafs/src/platform/IRIX/.cvsignore:1.1.10.2
*** /dev/null	Tue Feb 13 21:27:07 2007
--- openafs/src/platform/IRIX/.cvsignore	Mon Jan 22 12:41:11 2007
***************
*** 0 ****
--- 1 ----
+ Makefile
Index: openafs/src/platform/LINUX/.cvsignore
diff -c /dev/null openafs/src/platform/LINUX/.cvsignore:1.1.10.2
*** /dev/null	Tue Feb 13 21:27:07 2007
--- openafs/src/platform/LINUX/.cvsignore	Mon Jan 22 12:41:13 2007
***************
*** 0 ****
--- 1 ----
+ Makefile
Index: openafs/src/platform/NBSD/.cvsignore
diff -c /dev/null openafs/src/platform/NBSD/.cvsignore:1.1.10.2
*** /dev/null	Tue Feb 13 21:27:07 2007
--- openafs/src/platform/NBSD/.cvsignore	Mon Jan 22 12:41:14 2007
***************
*** 0 ****
--- 1 ----
+ Makefile
Index: openafs/src/platform/OBSD/.cvsignore
diff -c /dev/null openafs/src/platform/OBSD/.cvsignore:1.1.10.2
*** /dev/null	Tue Feb 13 21:27:07 2007
--- openafs/src/platform/OBSD/.cvsignore	Mon Jan 22 12:41:15 2007
***************
*** 0 ****
--- 1 ----
+ Makefile
Index: openafs/src/platform/SOLARIS/.cvsignore
diff -c /dev/null openafs/src/platform/SOLARIS/.cvsignore:1.3.10.2
*** /dev/null	Tue Feb 13 21:27:07 2007
--- openafs/src/platform/SOLARIS/.cvsignore	Mon Jan 22 12:41:17 2007
***************
*** 0 ****
--- 1,3 ----
+ AFS_component_version_number.c
+ Makefile
+ fs_conv_sol26
Index: openafs/src/rx/rx_kcommon.c
diff -c openafs/src/rx/rx_kcommon.c:1.44.2.14 openafs/src/rx/rx_kcommon.c:1.44.2.15
*** openafs/src/rx/rx_kcommon.c:1.44.2.14	Thu Nov  9 19:16:29 2006
--- openafs/src/rx/rx_kcommon.c	Thu Feb  8 19:20:28 2007
***************
*** 15,21 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx_kcommon.c,v 1.44.2.14 2006/11/10 00:16:29 shadow Exp $");
  
  #include "rx/rx_kcommon.h"
  
--- 15,21 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx_kcommon.c,v 1.44.2.15 2007/02/09 00:20:28 shadow Exp $");
  
  #include "rx/rx_kcommon.h"
  
***************
*** 524,530 ****
  int
  rxi_GetcbiInfo(void)
  {
!     int i, j, different = 0;
      int rxmtu, maxmtu;
      afs_uint32 ifinaddr;
      afs_uint32 addrs[ADDRSPERSITE];
--- 524,530 ----
  int
  rxi_GetcbiInfo(void)
  {
!     int i, j, different = 0, num = ADDRSPERSITE;
      int rxmtu, maxmtu;
      afs_uint32 ifinaddr;
      afs_uint32 addrs[ADDRSPERSITE];
***************
*** 533,539 ****
      memset((void *)addrs, 0, sizeof(addrs));
      memset((void *)mtus, 0, sizeof(mtus));
  
!     for (i = 0; i < afs_cb_interface.numberOfInterfaces; i++) {
  	if (!afs_cb_interface.mtu[i])
  	    afs_cb_interface.mtu[i] = htonl(1500);
  	rxmtu = (ntohl(afs_cb_interface.mtu[i]) - RX_IPUDP_SIZE);
--- 533,541 ----
      memset((void *)addrs, 0, sizeof(addrs));
      memset((void *)mtus, 0, sizeof(mtus));
  
!     if (afs_cb_interface.numberOfInterfaces < num)
! 	num = afs_cb_interface.numberOfInterfaces;
!     for (i = 0; i < num; i++) {
  	if (!afs_cb_interface.mtu[i])
  	    afs_cb_interface.mtu[i] = htonl(1500);
  	rxmtu = (ntohl(afs_cb_interface.mtu[i]) - RX_IPUDP_SIZE);
Index: openafs/src/shlibafsrpc/.cvsignore
diff -c openafs/src/shlibafsrpc/.cvsignore:1.2 openafs/src/shlibafsrpc/.cvsignore:1.2.2.1
*** openafs/src/shlibafsrpc/.cvsignore:1.2	Thu Jun 19 12:29:00 2003
--- openafs/src/shlibafsrpc/.cvsignore	Mon Jan 22 12:41:19 2007
***************
*** 1,2 ****
  Makefile
! libafsrpc.so.1.0
--- 1,2 ----
  Makefile
! libafsrpc.so.1.1
Index: openafs/src/vol/fssync.c
diff -c openafs/src/vol/fssync.c:1.26.2.4 openafs/src/vol/fssync.c:1.26.2.6
*** openafs/src/vol/fssync.c:1.26.2.4	Thu Jul 21 01:08:03 2005
--- openafs/src/vol/fssync.c	Thu Feb  8 18:59:47 2007
***************
*** 48,56 ****
  
  #include <afsconfig.h>
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/Attic/fssync.c,v 1.26.2.4 2005/07/21 05:08:03 shadow Exp $");
  
  #include <sys/types.h>
  #include <stdio.h>
--- 48,57 ----
  
  #include <afsconfig.h>
  #include <afs/param.h>
+ #include <afs/afsutil.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/Attic/fssync.c,v 1.26.2.6 2007/02/08 23:59:47 shadow Exp $");
  
  #include <sys/types.h>
  #include <stdio.h>
***************
*** 94,99 ****
--- 95,104 ----
  #include "volume.h"
  #include "partition.h"
  
+ #ifdef USE_UNIX_SOCKETS
+ #include <sys/un.h>
+ #endif
+ 
  /*@printflike@*/ extern void Log(const char *format, ...);
  
  #ifdef osi_Assert
***************
*** 159,165 ****
--- 164,174 ----
  int
  FSYNC_clientInit(void)
  {
+ #ifdef USE_UNIX_SOCKETS
+     struct sockaddr_un addr;
+ #else /* USE_UNIX_SOCKETS */
      struct sockaddr_in addr;
+ #endif /* USE_UNIX_SOCKETS */
      /* I can't believe the following is needed for localhost connections!! */
      static time_t backoff[] =
  	{ 3, 3, 3, 5, 5, 5, 7, 15, 16, 24, 32, 40, 48, 0 };
***************
*** 260,265 ****
--- 269,291 ----
  #endif /* AFS_PTHREAD_ENV */
  }
  
+ #ifdef USE_UNIX_SOCKETS
+ static int
+ getport(struct sockaddr_un *addr)
+ {
+     int sd;
+     char tbuffer[AFSDIR_PATH_MAX]; 
+ 
+     strcompose(tbuffer, AFSDIR_PATH_MAX, AFSDIR_SERVER_LOCAL_DIRPATH, "/",
+                "fssync.sock", NULL);
+ 
+     memset(addr, 0, sizeof(*addr));
+     addr->sun_family = AF_UNIX;
+     strncpy(addr->sun_path, tbuffer, (sizeof(struct sockaddr_un) - sizeof(short)));
+     assert((sd = socket(AF_UNIX, SOCK_STREAM, 0)) >= 0);
+     return sd;
+ }
+ #else  /* USE_UNIX_SOCKETS */
  static int
  getport(struct sockaddr_in *addr)
  {
***************
*** 276,288 ****
--- 302,319 ----
  
      return sd;
  }
+ #endif
  
  static fd_set FSYNC_readfds;
  
  static void
  FSYNC_sync()
  {
+ #ifdef USE_UNIX_SOCKETS
+     struct sockaddr_un addr;
+ #else  /* USE_UNIX_SOCKETS */
      struct sockaddr_in addr;
+ #endif /* USE_UNIX_SOCKETS */
      int on = 1;
      extern VInit;
      int code;
***************
*** 290,295 ****
--- 321,329 ----
  #ifdef AFS_PTHREAD_ENV
      int tid;
  #endif
+ #ifdef USE_UNIX_SOCKETS
+     char tbuffer[AFSDIR_PATH_MAX]; 
+ #endif
  
  #ifndef AFS_NT40_ENV
      (void)signal(SIGPIPE, SIG_IGN);
***************
*** 304,309 ****
--- 338,350 ----
      Log("Set thread id %d for FSYNC_sync\n", tid);
  #endif /* AFS_PTHREAD_ENV */
  
+ #ifdef USE_UNIX_SOCKETS
+     strcompose(tbuffer, AFSDIR_PATH_MAX, AFSDIR_SERVER_LOCAL_DIRPATH, "/",
+                "fssync.sock", NULL);
+     /* ignore errors */
+     remove(tbuffer);
+ #endif /* USE_UNIX_SOCKETS */
+ 
      while (!VInit) {
  	/* Let somebody else run until level > 0.  That doesn't mean that 
  	 * all volumes have been attached. */
