]> granicus.if.org Git - spl/commitdiff
Required missing symbols for FC11 kernels (2.6.29.4-167.fc11.x86_64)
authorBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 31 Jul 2009 19:44:34 +0000 (12:44 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 31 Jul 2009 19:44:34 +0000 (12:44 -0700)
patches/fc11-spl-export-symbols.patch [new file with mode: 0644]

diff --git a/patches/fc11-spl-export-symbols.patch b/patches/fc11-spl-export-symbols.patch
new file mode 100644 (file)
index 0000000..726aabd
--- /dev/null
@@ -0,0 +1,94 @@
+Required missing symbols for FC11 kernels (2.6.29.4-167.fc11.x86_64)
+
+* get_vmalloc_info()
+There is no clean API in the kernel for modules to check the virtual
+memory state of the system.  This information is available in user
+space under /proc/meminfo and the details for every virtual memory
+node are available under /proc/vmallocinfo.
+
+* groups_search()
+This support is easily replicated if the symbol is not provided by the
+kernel.  However exporting the symbol from the kernel is preferable.
+This is required by the solaris credential API.
+
+* task_curr()
+This symbol is used by the solaris adaptive mutex implementation.  If
+unavailable then all solaris mutexs behave strictly like linux style
+semaphones.  If available then the mutex may spin for a short while,
+rather than sleep, if the holder of the lock is currently executing.
+
+* first_online_pgdat()
+* next_online_pgdat()
+* next_zone()
+Required helper functions for the zone iterators for_each_zone() and
+for_each_populated_zone().  These symbols were previously available
+in 2.6.17 kernels, marked unused in 2.6.18 kernels, and removed as
+of the 2.6.19 kernel series.  The information is available in user
+space under /proc/zoneinfo.
+
+diff --git a/fs/proc/mmu.c b/fs/proc/mmu.c
+index 8ae221d..081c7b5 100644
+--- a/fs/proc/mmu.c
++++ b/fs/proc/mmu.c
+@@ -58,3 +58,4 @@ void get_vmalloc_info(struct vmalloc_info *vmi)
+               read_unlock(&vmlist_lock);
+       }
+ }
++EXPORT_SYMBOL(get_vmalloc_info);
+diff --git a/kernel/groups.c b/kernel/groups.c
+index 2b45b2e..24b62f8 100644
+--- a/kernel/groups.c
++++ b/kernel/groups.c
+@@ -153,6 +153,7 @@ int groups_search(const struct group_info *group_info, gid_t grp)
+       }
+       return 0;
+ }
++EXPORT_SYMBOL(groups_search);
+ /**
+  * set_groups - Change a group subscription in a set of credentials
+diff --git a/kernel/sched.c b/kernel/sched.c
+index 1b59e26..8728c52 100644
+--- a/kernel/sched.c
++++ b/kernel/sched.c
+@@ -1883,10 +1883,11 @@ static void deactivate_task(struct rq *rq, struct task_struct *p, int sleep)
+  * task_curr - is this task currently executing on a CPU?
+  * @p: the task in question.
+  */
+-inline int task_curr(const struct task_struct *p)
++task_curr(const struct task_struct *p)
+ {
+       return cpu_curr(task_cpu(p)) == p;
+ }
++EXPORT_SYMBOL(task_curr);
+ static inline void __set_task_cpu(struct task_struct *p, unsigned int cpu)
+ {
+diff --git a/mm/mmzone.c b/mm/mmzone.c
+index f5b7d17..1468a22 100644
+--- a/mm/mmzone.c
++++ b/mm/mmzone.c
+@@ -14,6 +14,7 @@ struct pglist_data *first_online_pgdat(void)
+ {
+       return NODE_DATA(first_online_node);
+ }
++EXPORT_SYMBOL(first_online_pgdat);
+ struct pglist_data *next_online_pgdat(struct pglist_data *pgdat)
+ {
+@@ -23,6 +24,7 @@ struct pglist_data *next_online_pgdat(struct pglist_data *pgdat)
+               return NULL;
+       return NODE_DATA(nid);
+ }
++EXPORT_SYMBOL(next_online_pgdat);
+ /*
+  * next_zone - helper magic for for_each_zone()
+@@ -42,6 +44,7 @@ struct zone *next_zone(struct zone *zone)
+       }
+       return zone;
+ }
++EXPORT_SYMBOL(next_zone);
+ static inline int zref_in_nodemask(struct zoneref *zref, nodemask_t *nodes)
+ {