linux-gcpags-support-20020625
authorDerrick Brashear <shadow@dementia.org>
Tue, 25 Jun 2002 16:25:43 +0000 (16:25 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 25 Jun 2002 16:25:43 +0000 (16:25 +0000)
might even work

15 files changed:
src/afs/LINUX/osi_machdep.h
src/afs/LINUX/osi_sysctl.c
src/afs/afs_osi.c
src/config/param.alpha_linux_22.h
src/config/param.alpha_linux_24.h
src/config/param.i386_linux22.h
src/config/param.i386_linux24.h
src/config/param.ia64_linux24.h
src/config/param.parisc_linux24.h
src/config/param.ppc_linux22.h
src/config/param.ppc_linux24.h
src/config/param.s390_linux22.h
src/config/param.s390_linux24.h
src/config/param.sparc_linux22.h
src/config/param.sparc_linux24.h

index 91c3229..b378a23 100644 (file)
@@ -108,6 +108,7 @@ typedef struct cred {               /* maps to task field: */
     int cr_ngroups;
 } cred_t;
 #define AFS_UCRED cred
+#define AFS_PROC struct task_struct
 #define crhold(c) (c)->cr_ref++
 
 /* UIO manipulation */
index e75603b..1479ca1 100644 (file)
@@ -34,6 +34,9 @@ static ctl_table afs_sysctl_table[] = {
         {3, "hm_retry_int",
          &hm_retry_int, sizeof(afs_int32), 0644, NULL,
          &proc_dointvec},
+        {4, "GCPAGs",
+         &afs_gcpags, sizeof(afs_int32), 0644, NULL,
+         &proc_dointvec},
        {0}
 };
 
index d536f20..51f3659 100644 (file)
@@ -799,6 +799,22 @@ void afs_osi_TraverseProcTable()
 }   
 #endif
 
+#if defined(AFS_LINUX22_ENV)
+void afs_osi_TraverseProcTable()
+{   
+    struct task_struct *p;
+    for_each_task(p) if (p->pid) {
+        if (p->state & TASK_ZOMBIE)
+            continue;
+#if 0
+        if (p->flags & )
+            continue;
+#endif
+       afs_GCPAGs_perproc_func(p);
+    }
+}   
+#endif
+
 /* return a pointer (sometimes a static copy ) to the cred for a
  * given AFS_PROC.
  * subsequent calls may overwrite the previously returned value.
@@ -980,6 +996,31 @@ const struct AFS_UCRED *afs_osi_proc2cred(AFS_PROC *pr)
     
     return rv;
 }  
+#elif defined(AFS_LINUX22_ENV)
+const struct AFS_UCRED *afs_osi_proc2cred(AFS_PROC *pr)
+{   
+    struct AFS_UCRED *rv=NULL;
+    static struct AFS_UCRED cr;
+
+    if(pr == NULL) {
+       return NULL;
+    }
+   
+    if ((pr->state == TASK_RUNNING) ||
+       (pr->state == TASK_INTERRUPTIBLE) ||
+       (pr->state == TASK_UNINTERRUPTIBLE) ||
+       (pr->state == TASK_STOPPED)) {
+       read_lock(&tasklist_lock);
+       cr.cr_ref=1;
+       cr.cr_uid=pr->uid;
+       cr.cr_ngroups=pr->ngroups;
+       memcpy(cr.cr_groups, pr->groups, NGROUPS * sizeof(gid_t));
+       read_unlock(&tasklist_lock);  
+       rv = &cr;
+    }
+    
+    return rv;
+}  
 #else
 const struct AFS_UCRED *afs_osi_proc2cred(AFS_PROC *pr)
 {
index f9b0acc..252d68f 100644 (file)
@@ -51,7 +51,7 @@
 
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
 
 /* Machine / Operating system information */
 #define SYS_NAME       "alpha_linux_22"
index 5c64253..2bf32a9 100644 (file)
@@ -53,7 +53,7 @@
 
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
 
 /* Machine / Operating system information */
 #define SYS_NAME       "alpha_linux_24"
index 4a71304..0a845bc 100644 (file)
@@ -58,7 +58,8 @@
 
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
+
 
 /* Machine / Operating system information */
 #define SYS_NAME       "i386_linux22"
index 9a2d872..2d4ab16 100644 (file)
@@ -52,7 +52,7 @@
 #include <afs/afs_sysnames.h>
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
 
 #define AFSLITTLE_ENDIAN    1
 #define AFS_HAVE_FFS        1       /* Use system's ffs. */
index 5918766..63e5f45 100644 (file)
@@ -56,7 +56,7 @@
 
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
 
 /* Machine / Operating system information */
 #define SYS_NAME       "ia64_linux24"
index 1ff56bf..1c181bf 100644 (file)
@@ -45,8 +45,7 @@
 
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
-
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
 
 /* Machine / Operating system information */
 #define SYS_NAME       "parisc_linux24"
index f68aacd..e1a48cc 100644 (file)
@@ -46,8 +46,7 @@
 
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
-
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
 
 /* Machine / Operating system information */
 #define SYS_NAME       "ppc_linux22"
index 8d3991b..c5161af 100644 (file)
@@ -47,8 +47,7 @@
 
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
-
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
 
 /* Machine / Operating system information */
 #define SYS_NAME       "ppc_linux24"
index 5cb40fd..1dcb8fe 100644 (file)
@@ -52,7 +52,7 @@
 
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
 
 /* Machine / Operating system information */
 #define SYS_NAME       "s390_linux22"
index c71fed9..c80aebb 100644 (file)
@@ -52,7 +52,7 @@
 
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
 
 /* Machine / Operating system information */
 #define SYS_NAME       "s390_linux24"
index 2e916be..56cf4b5 100644 (file)
@@ -48,7 +48,7 @@
 
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
 
 /* Machine / Operating system information */
 #define SYS_NAME       "sparc_linux22"
index 37a046e..3dcdc53 100644 (file)
@@ -50,7 +50,7 @@
 
 #define AFS_USERSPACE_IP_ADDR 1
 #define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
+#define AFS_GCPAGS       2 /* Set to Userdisabled, allow sysctl to override */
 
 /* Machine / Operating system information */
 #define SYS_NAME       "sparc_linux24"