Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > e13bdbccf28aef9f5083a287bdaf7b69 > files > 14

openafs.SLx-1.4.3-0.rc2.36.src.rpm

diff -ur openafs-1.4.2fc4.orig/src/afs/LINUX/osi_module.c openafs-1.4.2fc4/src/afs/LINUX/osi_module.c
--- openafs-1.4.2fc4.orig/src/afs/LINUX/osi_module.c	2006-09-16 21:19:36.000000000 +0200
+++ openafs-1.4.2fc4/src/afs/LINUX/osi_module.c	2006-09-21 10:29:21.000000000 +0200
@@ -423,9 +423,7 @@
     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
+    rcu_read_lock();
     /* search backward thru the circular list */
 #ifdef DEFINED_PREV_TASK
     for (q = current; p = q; q = prev_task(p)) {
@@ -433,16 +431,12 @@
     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
+	rcu_read_unlock();
 	    return p->addr_limit.seg;
 	}
     }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
-    read_unlock(&tasklist_lock);
-#endif
+    rcu_read_unlock();
     return 0;
 #endif
 }
diff -ur openafs-1.4.2fc4.orig/src/afs/LINUX/osi_probe.c openafs-1.4.2fc4/src/afs/LINUX/osi_probe.c
--- openafs-1.4.2fc4.orig/src/afs/LINUX/osi_probe.c	2006-08-15 00:13:59.000000000 +0200
+++ openafs-1.4.2fc4/src/afs/LINUX/osi_probe.c	2006-09-21 10:28:30.000000000 +0200
@@ -510,9 +510,6 @@
     /* symbol in section to try scanning */
 #if defined(AFS_SPARC64_LINUX20_ENV) || defined(AFS_S390_LINUX20_ENV) || defined(AFS_S390X_LINUX20_ENV)
     (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
@@ -533,10 +530,6 @@
     (unsigned long)(&init_mm),
     0x1fffff,
     0x30000,
-#elif defined(AFS_AMD64_LINUX20_ENV)
-    (unsigned long)(&tasklist_lock) - 0x30000,
-    0,
-    0x6000,
 #elif defined(AFS_PPC64_LINUX26_ENV)
     (unsigned long)(&do_signal),
     0xfff,
diff -ur openafs-1.4.2fc4.orig/src/afs/afs_osi.c openafs-1.4.2fc4/src/afs/afs_osi.c
--- openafs-1.4.2fc4.orig/src/afs/afs_osi.c	2006-05-22 21:08:45.000000000 +0200
+++ openafs-1.4.2fc4/src/afs/afs_osi.c	2006-09-21 10:30:03.000000000 +0200
@@ -805,13 +805,11 @@
 #endif
 
 #if defined(AFS_LINUX22_ENV)
-extern rwlock_t tasklist_lock __attribute__((weak));
 void
 afs_osi_TraverseProcTable()
 {
     struct task_struct *p;
-    if (&tasklist_lock)
-       read_lock(&tasklist_lock);
+    rcu_read_lock();
 #ifdef DEFINED_FOR_EACH_PROCESS
     for_each_process(p) if (p->pid) {
 #ifdef STRUCT_TASK_STRUCT_HAS_EXIT_STATE
@@ -835,8 +833,7 @@
 	afs_GCPAGs_perproc_func(p);
     }
 #endif
-    if (&tasklist_lock)
-       read_unlock(&tasklist_lock);
+    rcu_read_unlock();
 }
 #endif
 
diff -ur openafs-1.4.2fc4.orig/src/rx/LINUX/rx_knet.c openafs-1.4.2fc4/src/rx/LINUX/rx_knet.c
--- openafs-1.4.2fc4.orig/src/rx/LINUX/rx_knet.c	2006-03-02 07:41:23.000000000 +0100
+++ openafs-1.4.2fc4/src/rx/LINUX/rx_knet.c	2006-09-21 10:27:50.000000000 +0200
@@ -200,18 +200,15 @@
 
     return code;
 }
-extern rwlock_t tasklist_lock __attribute__((weak));
 void
 osi_StopListener(void)
 {
     struct task_struct *listener;
     extern int rxk_ListenerPid;
 
-    if (&tasklist_lock)
-      read_lock(&tasklist_lock);
+    rcu_read_lock();
     listener = find_task_by_pid(rxk_ListenerPid);
-    if (&tasklist_lock)
-       read_unlock(&tasklist_lock);
+    rcu_read_unlock();
     while (rxk_ListenerPid) {
 	flush_signals(listener);
 	force_sig(SIGKILL, listener);