mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	Linux-2.6.33 compat, .ctl_name removed from struct ctl_table
As of linux-2.6.33 the ctl_name member of the ctl_table struct has been entirely removed. The upstream code has been updated to depend entirely on the the procname member. To handle this all references to ctl_name are wrapped in a CTL_NAME macro which simply expands to nothing for newer kernels. Older kernels are supported by having it expand to .ctl_name = X just as before.
This commit is contained in:
		
							parent
							
								
									fd921c2e0c
								
							
						
					
					
						commit
						79a3bf130b
					
				| @ -36,6 +36,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [ | |||||||
| 	SPL_AC_PATH_IN_NAMEIDATA | 	SPL_AC_PATH_IN_NAMEIDATA | ||||||
| 	SPL_AC_TASK_CURR | 	SPL_AC_TASK_CURR | ||||||
| 	SPL_AC_CTL_UNNUMBERED | 	SPL_AC_CTL_UNNUMBERED | ||||||
|  | 	SPL_AC_CTL_NAME | ||||||
| 	SPL_AC_FLS64 | 	SPL_AC_FLS64 | ||||||
| 	SPL_AC_DEVICE_CREATE | 	SPL_AC_DEVICE_CREATE | ||||||
| 	SPL_AC_5ARGS_DEVICE_CREATE | 	SPL_AC_5ARGS_DEVICE_CREATE | ||||||
| @ -641,6 +642,25 @@ AC_DEFUN([SPL_AC_CTL_UNNUMBERED], | |||||||
| 	]) | 	]) | ||||||
| ]) | ]) | ||||||
| 
 | 
 | ||||||
|  | dnl # | ||||||
|  | dnl # 2.6.33 API change, | ||||||
|  | dnl # Removed .ctl_name from struct ctl_table. | ||||||
|  | dnl # | ||||||
|  | AC_DEFUN([SPL_AC_CTL_NAME], [ | ||||||
|  | 	AC_MSG_CHECKING([whether struct ctl_table has ctl_name]) | ||||||
|  | 	SPL_LINUX_TRY_COMPILE([ | ||||||
|  | 		#include <linux/sysctl.h> | ||||||
|  | 	],[ | ||||||
|  | 		struct ctl_table ctl; | ||||||
|  | 		ctl.ctl_name = 0; | ||||||
|  | 	],[ | ||||||
|  | 		AC_MSG_RESULT(yes) | ||||||
|  | 		AC_DEFINE(HAVE_CTL_NAME, 1, [struct ctl_table has ctl_name]) | ||||||
|  | 	],[ | ||||||
|  | 		AC_MSG_RESULT(no) | ||||||
|  | 	]) | ||||||
|  | ]) | ||||||
|  | 
 | ||||||
| dnl # | dnl # | ||||||
| dnl # 2.6.16 API change. | dnl # 2.6.16 API change. | ||||||
| dnl # Check if 'fls64()' is available | dnl # Check if 'fls64()' is available | ||||||
|  | |||||||
							
								
								
									
										132
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										132
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @ -12360,6 +12360,72 @@ $as_echo "no" >&6; } | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | 	rm -Rf build | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	{ $as_echo "$as_me:$LINENO: checking whether struct ctl_table has ctl_name" >&5 | ||||||
|  | $as_echo_n "checking whether struct ctl_table has ctl_name... " >&6; } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | cat >conftest.c <<_ACEOF | ||||||
|  | /* confdefs.h.  */ | ||||||
|  | _ACEOF | ||||||
|  | cat confdefs.h >>conftest.$ac_ext | ||||||
|  | cat >>conftest.$ac_ext <<_ACEOF | ||||||
|  | /* end confdefs.h.  */ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 		#include <linux/sysctl.h> | ||||||
|  | 
 | ||||||
|  | int | ||||||
|  | main (void) | ||||||
|  | { | ||||||
|  | 
 | ||||||
|  | 		struct ctl_table ctl; | ||||||
|  | 		ctl.ctl_name = 0; | ||||||
|  | 
 | ||||||
|  |   ; | ||||||
|  |   return 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | _ACEOF | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	rm -Rf build && mkdir -p build | ||||||
|  | 	echo "obj-m := conftest.o" >build/Makefile | ||||||
|  | 	if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build' | ||||||
|  |   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 | ||||||
|  |   (eval $ac_try) 2>&5 | ||||||
|  |   ac_status=$? | ||||||
|  |   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 | ||||||
|  |   (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o' | ||||||
|  |   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 | ||||||
|  |   (eval $ac_try) 2>&5 | ||||||
|  |   ac_status=$? | ||||||
|  |   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 | ||||||
|  |   (exit $ac_status); }; }; then | ||||||
|  | 
 | ||||||
|  | 		{ $as_echo "$as_me:$LINENO: result: yes" >&5 | ||||||
|  | $as_echo "yes" >&6; } | ||||||
|  | 
 | ||||||
|  | cat >>confdefs.h <<\_ACEOF | ||||||
|  | #define HAVE_CTL_NAME 1 | ||||||
|  | _ACEOF | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | else | ||||||
|  |   $as_echo "$as_me: failed program was:" >&5 | ||||||
|  | sed 's/^/| /' conftest.$ac_ext >&5 | ||||||
|  | 
 | ||||||
|  | 		{ $as_echo "$as_me:$LINENO: result: no" >&5 | ||||||
|  | $as_echo "no" >&6; } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| 	rm -Rf build | 	rm -Rf build | ||||||
| @ -15757,6 +15823,72 @@ $as_echo "no" >&6; } | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | 	rm -Rf build | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	{ $as_echo "$as_me:$LINENO: checking whether struct ctl_table has ctl_name" >&5 | ||||||
|  | $as_echo_n "checking whether struct ctl_table has ctl_name... " >&6; } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | cat >conftest.c <<_ACEOF | ||||||
|  | /* confdefs.h.  */ | ||||||
|  | _ACEOF | ||||||
|  | cat confdefs.h >>conftest.$ac_ext | ||||||
|  | cat >>conftest.$ac_ext <<_ACEOF | ||||||
|  | /* end confdefs.h.  */ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 		#include <linux/sysctl.h> | ||||||
|  | 
 | ||||||
|  | int | ||||||
|  | main (void) | ||||||
|  | { | ||||||
|  | 
 | ||||||
|  | 		struct ctl_table ctl; | ||||||
|  | 		ctl.ctl_name = 0; | ||||||
|  | 
 | ||||||
|  |   ; | ||||||
|  |   return 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | _ACEOF | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	rm -Rf build && mkdir -p build | ||||||
|  | 	echo "obj-m := conftest.o" >build/Makefile | ||||||
|  | 	if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build' | ||||||
|  |   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 | ||||||
|  |   (eval $ac_try) 2>&5 | ||||||
|  |   ac_status=$? | ||||||
|  |   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 | ||||||
|  |   (exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o' | ||||||
|  |   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 | ||||||
|  |   (eval $ac_try) 2>&5 | ||||||
|  |   ac_status=$? | ||||||
|  |   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 | ||||||
|  |   (exit $ac_status); }; }; then | ||||||
|  | 
 | ||||||
|  | 		{ $as_echo "$as_me:$LINENO: result: yes" >&5 | ||||||
|  | $as_echo "yes" >&6; } | ||||||
|  | 
 | ||||||
|  | cat >>confdefs.h <<\_ACEOF | ||||||
|  | #define HAVE_CTL_NAME 1 | ||||||
|  | _ACEOF | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | else | ||||||
|  |   $as_echo "$as_me: failed program was:" >&5 | ||||||
|  | sed 's/^/| /' conftest.$ac_ext >&5 | ||||||
|  | 
 | ||||||
|  | 		{ $as_echo "$as_me:$LINENO: result: no" >&5 | ||||||
|  | $as_echo "no" >&6; } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| 	rm -Rf build | 	rm -Rf build | ||||||
|  | |||||||
| @ -36,6 +36,12 @@ | |||||||
| #define spl_unregister_sysctl_table(t)	unregister_sysctl_table(t) | #define spl_unregister_sysctl_table(t)	unregister_sysctl_table(t) | ||||||
| #endif /* CONFIG_SYSCTL */ | #endif /* CONFIG_SYSCTL */ | ||||||
| 
 | 
 | ||||||
|  | #ifdef HAVE_CTL_NAME | ||||||
|  | #define CTL_NAME(cname)                 .ctl_name = (cname), | ||||||
|  | #else | ||||||
|  | #define CTL_NAME(cname) | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| extern struct proc_dir_entry *proc_spl_kstat; | extern struct proc_dir_entry *proc_spl_kstat; | ||||||
| struct proc_dir_entry *proc_dir_entry_find(struct proc_dir_entry *root, | struct proc_dir_entry *proc_dir_entry_find(struct proc_dir_entry *root, | ||||||
| 					   const char *str); | 					   const char *str); | ||||||
|  | |||||||
| @ -52,6 +52,7 @@ static struct proc_dir_entry *proc_spl_kmem_slab = NULL; | |||||||
| #endif /* DEBUG_KMEM */ | #endif /* DEBUG_KMEM */ | ||||||
| struct proc_dir_entry *proc_spl_kstat = NULL; | struct proc_dir_entry *proc_spl_kstat = NULL; | ||||||
| 
 | 
 | ||||||
|  | #ifdef HAVE_CTL_NAME | ||||||
| #ifdef HAVE_CTL_UNNUMBERED | #ifdef HAVE_CTL_UNNUMBERED | ||||||
| 
 | 
 | ||||||
| #define CTL_SPL			CTL_UNNUMBERED | #define CTL_SPL			CTL_UNNUMBERED | ||||||
| @ -153,6 +154,7 @@ enum { | |||||||
| #endif | #endif | ||||||
| }; | }; | ||||||
| #endif /* HAVE_CTL_UNNUMBERED */ | #endif /* HAVE_CTL_UNNUMBERED */ | ||||||
|  | #endif /* HAVE_CTL_NAME */ | ||||||
| 
 | 
 | ||||||
| static int | static int | ||||||
| proc_copyin_string(char *kbuffer, int kbuffer_size, | proc_copyin_string(char *kbuffer, int kbuffer_size, | ||||||
| @ -661,7 +663,7 @@ static struct file_operations proc_slab_operations = { | |||||||
| 
 | 
 | ||||||
| static struct ctl_table spl_debug_table[] = { | static struct ctl_table spl_debug_table[] = { | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_DEBUG_SUBSYS, |                 CTL_NAME    (CTL_DEBUG_SUBSYS) | ||||||
|                 .procname = "subsystem", |                 .procname = "subsystem", | ||||||
|                 .data     = &spl_debug_subsys, |                 .data     = &spl_debug_subsys, | ||||||
|                 .maxlen   = sizeof(unsigned long), |                 .maxlen   = sizeof(unsigned long), | ||||||
| @ -669,7 +671,7 @@ static struct ctl_table spl_debug_table[] = { | |||||||
|                 .proc_handler = &proc_dobitmasks |                 .proc_handler = &proc_dobitmasks | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_DEBUG_MASK, |                 CTL_NAME    (CTL_DEBUG_MASK) | ||||||
|                 .procname = "mask", |                 .procname = "mask", | ||||||
|                 .data     = &spl_debug_mask, |                 .data     = &spl_debug_mask, | ||||||
|                 .maxlen   = sizeof(unsigned long), |                 .maxlen   = sizeof(unsigned long), | ||||||
| @ -677,7 +679,7 @@ static struct ctl_table spl_debug_table[] = { | |||||||
|                 .proc_handler = &proc_dobitmasks |                 .proc_handler = &proc_dobitmasks | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_DEBUG_PRINTK, |                 CTL_NAME    (CTL_DEBUG_PRINTK) | ||||||
|                 .procname = "printk", |                 .procname = "printk", | ||||||
|                 .data     = &spl_debug_printk, |                 .data     = &spl_debug_printk, | ||||||
|                 .maxlen   = sizeof(unsigned long), |                 .maxlen   = sizeof(unsigned long), | ||||||
| @ -685,13 +687,13 @@ static struct ctl_table spl_debug_table[] = { | |||||||
|                 .proc_handler = &proc_dobitmasks |                 .proc_handler = &proc_dobitmasks | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_DEBUG_MB, |                 CTL_NAME    (CTL_DEBUG_MB) | ||||||
|                 .procname = "mb", |                 .procname = "mb", | ||||||
|                 .mode     = 0644, |                 .mode     = 0644, | ||||||
|                 .proc_handler = &proc_debug_mb, |                 .proc_handler = &proc_debug_mb, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_DEBUG_BINARY, |                 CTL_NAME    (CTL_DEBUG_BINARY) | ||||||
|                 .procname = "binary", |                 .procname = "binary", | ||||||
|                 .data     = &spl_debug_binary, |                 .data     = &spl_debug_binary, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -699,7 +701,7 @@ static struct ctl_table spl_debug_table[] = { | |||||||
|                 .proc_handler = &proc_dointvec, |                 .proc_handler = &proc_dointvec, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_DEBUG_CATASTROPHE, |                 CTL_NAME    (CTL_DEBUG_CATASTROPHE) | ||||||
|                 .procname = "catastrophe", |                 .procname = "catastrophe", | ||||||
|                 .data     = &spl_debug_catastrophe, |                 .data     = &spl_debug_catastrophe, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -707,7 +709,7 @@ static struct ctl_table spl_debug_table[] = { | |||||||
|                 .proc_handler = &proc_dointvec, |                 .proc_handler = &proc_dointvec, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_DEBUG_PANIC_ON_BUG, |                 CTL_NAME    (CTL_DEBUG_PANIC_ON_BUG) | ||||||
|                 .procname = "panic_on_bug", |                 .procname = "panic_on_bug", | ||||||
|                 .data     = &spl_debug_panic_on_bug, |                 .data     = &spl_debug_panic_on_bug, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -715,7 +717,7 @@ static struct ctl_table spl_debug_table[] = { | |||||||
|                 .proc_handler = &proc_dointvec |                 .proc_handler = &proc_dointvec | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_DEBUG_PATH, |                 CTL_NAME    (CTL_DEBUG_PATH) | ||||||
|                 .procname = "path", |                 .procname = "path", | ||||||
|                 .data     = spl_debug_file_path, |                 .data     = spl_debug_file_path, | ||||||
|                 .maxlen   = sizeof(spl_debug_file_path), |                 .maxlen   = sizeof(spl_debug_file_path), | ||||||
| @ -723,18 +725,18 @@ static struct ctl_table spl_debug_table[] = { | |||||||
|                 .proc_handler = &proc_dostring, |                 .proc_handler = &proc_dostring, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_DEBUG_DUMP, |                 CTL_NAME    (CTL_DEBUG_DUMP) | ||||||
|                 .procname = "dump", |                 .procname = "dump", | ||||||
|                 .mode     = 0200, |                 .mode     = 0200, | ||||||
|                 .proc_handler = &proc_dump_kernel, |                 .proc_handler = &proc_dump_kernel, | ||||||
|         }, |         }, | ||||||
|         {       .ctl_name = CTL_DEBUG_FORCE_BUG, |         {       CTL_NAME    (CTL_DEBUG_FORCE_BUG) | ||||||
|                 .procname = "force_bug", |                 .procname = "force_bug", | ||||||
|                 .mode     = 0200, |                 .mode     = 0200, | ||||||
|                 .proc_handler = &proc_force_bug, |                 .proc_handler = &proc_force_bug, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_CONSOLE_RATELIMIT, |                 CTL_NAME    (CTL_CONSOLE_RATELIMIT) | ||||||
|                 .procname = "console_ratelimit", |                 .procname = "console_ratelimit", | ||||||
|                 .data     = &spl_console_ratelimit, |                 .data     = &spl_console_ratelimit, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -742,28 +744,28 @@ static struct ctl_table spl_debug_table[] = { | |||||||
|                 .proc_handler = &proc_dointvec, |                 .proc_handler = &proc_dointvec, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_CONSOLE_MAX_DELAY_CS, |                 CTL_NAME    (CTL_CONSOLE_MAX_DELAY_CS) | ||||||
|                 .procname = "console_max_delay_centisecs", |                 .procname = "console_max_delay_centisecs", | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
|                 .mode     = 0644, |                 .mode     = 0644, | ||||||
|                 .proc_handler = &proc_console_max_delay_cs, |                 .proc_handler = &proc_console_max_delay_cs, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_CONSOLE_MIN_DELAY_CS, |                 CTL_NAME    (CTL_CONSOLE_MIN_DELAY_CS) | ||||||
|                 .procname = "console_min_delay_centisecs", |                 .procname = "console_min_delay_centisecs", | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
|                 .mode     = 0644, |                 .mode     = 0644, | ||||||
|                 .proc_handler = &proc_console_min_delay_cs, |                 .proc_handler = &proc_console_min_delay_cs, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_CONSOLE_BACKOFF, |                 CTL_NAME    (CTL_CONSOLE_BACKOFF) | ||||||
|                 .procname = "console_backoff", |                 .procname = "console_backoff", | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
|                 .mode     = 0644, |                 .mode     = 0644, | ||||||
|                 .proc_handler = &proc_console_backoff, |                 .proc_handler = &proc_console_backoff, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_DEBUG_STACK_SIZE, |                 CTL_NAME    (CTL_DEBUG_STACK_SIZE) | ||||||
|                 .procname = "stack_max", |                 .procname = "stack_max", | ||||||
|                 .data     = &spl_debug_stack, |                 .data     = &spl_debug_stack, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -775,7 +777,7 @@ static struct ctl_table spl_debug_table[] = { | |||||||
| 
 | 
 | ||||||
| static struct ctl_table spl_vm_table[] = { | static struct ctl_table spl_vm_table[] = { | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_VM_MINFREE, |                 CTL_NAME    (CTL_VM_MINFREE) | ||||||
|                 .procname = "minfree", |                 .procname = "minfree", | ||||||
|                 .data     = &minfree, |                 .data     = &minfree, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -783,7 +785,7 @@ static struct ctl_table spl_vm_table[] = { | |||||||
|                 .proc_handler = &proc_dointvec, |                 .proc_handler = &proc_dointvec, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_VM_DESFREE, |                 CTL_NAME    (CTL_VM_DESFREE) | ||||||
|                 .procname = "desfree", |                 .procname = "desfree", | ||||||
|                 .data     = &desfree, |                 .data     = &desfree, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -791,7 +793,7 @@ static struct ctl_table spl_vm_table[] = { | |||||||
|                 .proc_handler = &proc_dointvec, |                 .proc_handler = &proc_dointvec, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_VM_LOTSFREE, |                 CTL_NAME    (CTL_VM_LOTSFREE) | ||||||
|                 .procname = "lotsfree", |                 .procname = "lotsfree", | ||||||
|                 .data     = &lotsfree, |                 .data     = &lotsfree, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -799,7 +801,7 @@ static struct ctl_table spl_vm_table[] = { | |||||||
|                 .proc_handler = &proc_dointvec, |                 .proc_handler = &proc_dointvec, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_VM_NEEDFREE, |                 CTL_NAME    (CTL_VM_NEEDFREE) | ||||||
|                 .procname = "needfree", |                 .procname = "needfree", | ||||||
|                 .data     = &needfree, |                 .data     = &needfree, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -807,7 +809,7 @@ static struct ctl_table spl_vm_table[] = { | |||||||
|                 .proc_handler = &proc_dointvec, |                 .proc_handler = &proc_dointvec, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_VM_SWAPFS_MINFREE, |                 CTL_NAME    (CTL_VM_SWAPFS_MINFREE) | ||||||
|                 .procname = "swapfs_minfree", |                 .procname = "swapfs_minfree", | ||||||
|                 .data     = &swapfs_minfree, |                 .data     = &swapfs_minfree, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -815,7 +817,7 @@ static struct ctl_table spl_vm_table[] = { | |||||||
|                 .proc_handler = &proc_dointvec, |                 .proc_handler = &proc_dointvec, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_VM_SWAPFS_RESERVE, |                 CTL_NAME    (CTL_VM_SWAPFS_RESERVE) | ||||||
|                 .procname = "swapfs_reserve", |                 .procname = "swapfs_reserve", | ||||||
|                 .data     = &swapfs_reserve, |                 .data     = &swapfs_reserve, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -823,13 +825,13 @@ static struct ctl_table spl_vm_table[] = { | |||||||
|                 .proc_handler = &proc_dointvec, |                 .proc_handler = &proc_dointvec, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_VM_AVAILRMEM, |                 CTL_NAME    (CTL_VM_AVAILRMEM) | ||||||
|                 .procname = "availrmem", |                 .procname = "availrmem", | ||||||
|                 .mode     = 0444, |                 .mode     = 0444, | ||||||
|                 .proc_handler = &proc_doavailrmem, |                 .proc_handler = &proc_doavailrmem, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_VM_FREEMEM, |                 CTL_NAME    (CTL_VM_FREEMEM) | ||||||
|                 .procname = "freemem", |                 .procname = "freemem", | ||||||
|                 .data     = (void *)2, |                 .data     = (void *)2, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -837,7 +839,7 @@ static struct ctl_table spl_vm_table[] = { | |||||||
|                 .proc_handler = &proc_dofreemem, |                 .proc_handler = &proc_dofreemem, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_VM_PHYSMEM, |                 CTL_NAME    (CTL_VM_PHYSMEM) | ||||||
|                 .procname = "physmem", |                 .procname = "physmem", | ||||||
|                 .data     = &physmem, |                 .data     = &physmem, | ||||||
|                 .maxlen   = sizeof(int), |                 .maxlen   = sizeof(int), | ||||||
| @ -850,7 +852,7 @@ static struct ctl_table spl_vm_table[] = { | |||||||
| #ifdef DEBUG_KMEM | #ifdef DEBUG_KMEM | ||||||
| static struct ctl_table spl_kmem_table[] = { | static struct ctl_table spl_kmem_table[] = { | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_KMEM_KMEMUSED, |                 CTL_NAME    (CTL_KMEM_KMEMUSED) | ||||||
|                 .procname = "kmem_used", |                 .procname = "kmem_used", | ||||||
|                 .data     = &kmem_alloc_used, |                 .data     = &kmem_alloc_used, | ||||||
| # ifdef HAVE_ATOMIC64_T | # ifdef HAVE_ATOMIC64_T | ||||||
| @ -862,7 +864,7 @@ static struct ctl_table spl_kmem_table[] = { | |||||||
|                 .proc_handler = &proc_domemused, |                 .proc_handler = &proc_domemused, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_KMEM_KMEMMAX, |                 CTL_NAME    (CTL_KMEM_KMEMMAX) | ||||||
|                 .procname = "kmem_max", |                 .procname = "kmem_max", | ||||||
|                 .data     = &kmem_alloc_max, |                 .data     = &kmem_alloc_max, | ||||||
|                 .maxlen   = sizeof(unsigned long), |                 .maxlen   = sizeof(unsigned long), | ||||||
| @ -872,7 +874,7 @@ static struct ctl_table spl_kmem_table[] = { | |||||||
|                 .proc_handler = &proc_doulongvec_minmax, |                 .proc_handler = &proc_doulongvec_minmax, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_KMEM_VMEMUSED, |                 CTL_NAME    (CTL_KMEM_VMEMUSED) | ||||||
|                 .procname = "vmem_used", |                 .procname = "vmem_used", | ||||||
|                 .data     = &vmem_alloc_used, |                 .data     = &vmem_alloc_used, | ||||||
| # ifdef HAVE_ATOMIC64_T | # ifdef HAVE_ATOMIC64_T | ||||||
| @ -884,7 +886,7 @@ static struct ctl_table spl_kmem_table[] = { | |||||||
|                 .proc_handler = &proc_domemused, |                 .proc_handler = &proc_domemused, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_KMEM_VMEMMAX, |                 CTL_NAME    (CTL_KMEM_VMEMMAX) | ||||||
|                 .procname = "vmem_max", |                 .procname = "vmem_max", | ||||||
|                 .data     = &vmem_alloc_max, |                 .data     = &vmem_alloc_max, | ||||||
|                 .maxlen   = sizeof(unsigned long), |                 .maxlen   = sizeof(unsigned long), | ||||||
| @ -906,7 +908,7 @@ static struct ctl_table spl_table[] = { | |||||||
|          * sysctl(8) prefers to go via /proc for portability. |          * sysctl(8) prefers to go via /proc for portability. | ||||||
|          */ |          */ | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_VERSION, |                 CTL_NAME    (CTL_VERSION) | ||||||
|                 .procname = "version", |                 .procname = "version", | ||||||
|                 .data     = spl_version, |                 .data     = spl_version, | ||||||
|                 .maxlen   = sizeof(spl_version), |                 .maxlen   = sizeof(spl_version), | ||||||
| @ -914,7 +916,7 @@ static struct ctl_table spl_table[] = { | |||||||
|                 .proc_handler = &proc_dostring, |                 .proc_handler = &proc_dostring, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_HOSTID, |                 CTL_NAME    (CTL_HOSTID) | ||||||
|                 .procname = "hostid", |                 .procname = "hostid", | ||||||
|                 .data     = &spl_hostid, |                 .data     = &spl_hostid, | ||||||
|                 .maxlen   = sizeof(unsigned long), |                 .maxlen   = sizeof(unsigned long), | ||||||
| @ -922,7 +924,7 @@ static struct ctl_table spl_table[] = { | |||||||
|                 .proc_handler = &proc_dohostid, |                 .proc_handler = &proc_dohostid, | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_HW_SERIAL, |                 CTL_NAME    (CTL_HW_SERIAL) | ||||||
|                 .procname = "hw_serial", |                 .procname = "hw_serial", | ||||||
|                 .data     = hw_serial, |                 .data     = hw_serial, | ||||||
|                 .maxlen   = sizeof(hw_serial), |                 .maxlen   = sizeof(hw_serial), | ||||||
| @ -931,7 +933,7 @@ static struct ctl_table spl_table[] = { | |||||||
|         }, |         }, | ||||||
| #ifndef HAVE_KALLSYMS_LOOKUP_NAME | #ifndef HAVE_KALLSYMS_LOOKUP_NAME | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_KALLSYMS, |                 CTL_NAME    (CTL_KALLSYMS) | ||||||
|                 .procname = "kallsyms_lookup_name", |                 .procname = "kallsyms_lookup_name", | ||||||
|                 .data     = &spl_kallsyms_lookup_name_fn, |                 .data     = &spl_kallsyms_lookup_name_fn, | ||||||
|                 .maxlen   = sizeof(unsigned long), |                 .maxlen   = sizeof(unsigned long), | ||||||
| @ -940,27 +942,27 @@ static struct ctl_table spl_table[] = { | |||||||
|         }, |         }, | ||||||
| #endif | #endif | ||||||
| 	{ | 	{ | ||||||
| 		.ctl_name = CTL_SPL_DEBUG, | 		CTL_NAME    (CTL_SPL_DEBUG) | ||||||
| 		.procname = "debug", | 		.procname = "debug", | ||||||
| 		.mode     = 0555, | 		.mode     = 0555, | ||||||
| 		.child    = spl_debug_table, | 		.child    = spl_debug_table, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		.ctl_name = CTL_SPL_VM, | 		CTL_NAME    (CTL_SPL_VM) | ||||||
| 		.procname = "vm", | 		.procname = "vm", | ||||||
| 		.mode     = 0555, | 		.mode     = 0555, | ||||||
| 		.child    = spl_vm_table, | 		.child    = spl_vm_table, | ||||||
| 	}, | 	}, | ||||||
| #ifdef DEBUG_KMEM | #ifdef DEBUG_KMEM | ||||||
| 	{ | 	{ | ||||||
| 		.ctl_name = CTL_SPL_KMEM, | 		CTL_NAME    (CTL_SPL_KMEM) | ||||||
| 		.procname = "kmem", | 		.procname = "kmem", | ||||||
| 		.mode     = 0555, | 		.mode     = 0555, | ||||||
| 		.child    = spl_kmem_table, | 		.child    = spl_kmem_table, | ||||||
| 	}, | 	}, | ||||||
| #endif | #endif | ||||||
| 	{ | 	{ | ||||||
| 		.ctl_name = CTL_SPL_KSTAT, | 		CTL_NAME    (CTL_SPL_KSTAT) | ||||||
| 		.procname = "kstat", | 		.procname = "kstat", | ||||||
| 		.mode     = 0555, | 		.mode     = 0555, | ||||||
| 		.child    = spl_kstat_table, | 		.child    = spl_kstat_table, | ||||||
| @ -970,7 +972,7 @@ static struct ctl_table spl_table[] = { | |||||||
| 
 | 
 | ||||||
| static struct ctl_table spl_dir[] = { | static struct ctl_table spl_dir[] = { | ||||||
|         { |         { | ||||||
|                 .ctl_name = CTL_SPL, |                 CTL_NAME    (CTL_SPL) | ||||||
|                 .procname = "spl", |                 .procname = "spl", | ||||||
|                 .mode     = 0555, |                 .mode     = 0555, | ||||||
|                 .child    = spl_table, |                 .child    = spl_table, | ||||||
| @ -980,7 +982,7 @@ static struct ctl_table spl_dir[] = { | |||||||
| 
 | 
 | ||||||
| static struct ctl_table spl_root[] = { | static struct ctl_table spl_root[] = { | ||||||
| 	{ | 	{ | ||||||
| 	.ctl_name = CTL_KERN, | 	CTL_NAME    (CTL_KERN) | ||||||
| 	.procname = "kernel", | 	.procname = "kernel", | ||||||
| 	.mode = 0555, | 	.mode = 0555, | ||||||
| 	.child = spl_dir, | 	.child = spl_dir, | ||||||
|  | |||||||
| @ -48,6 +48,9 @@ | |||||||
| /* struct cred exists */ | /* struct cred exists */ | ||||||
| #undef HAVE_CRED_STRUCT | #undef HAVE_CRED_STRUCT | ||||||
| 
 | 
 | ||||||
|  | /* struct ctl_table has ctl_name */ | ||||||
|  | #undef HAVE_CTL_NAME | ||||||
|  | 
 | ||||||
| /* unnumbered sysctl support exists */ | /* unnumbered sysctl support exists */ | ||||||
| #undef HAVE_CTL_UNNUMBERED | #undef HAVE_CTL_UNNUMBERED | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Brian Behlendorf
						Brian Behlendorf