2.5.70-mm5: XFS compile error if CONFIG_SYSCTL && !CONFIG_PROC_FS
I'm getting the following compile error in 2.5.70-mm5 if CONFIG_SYSCTL && !CONFIG_PROC_FS:
<-- snip -->
...
CC fs/xfs/linux/xfs_sysctl.ofs/xfs/linux/xfs_sysctl.c: In function `xfs_stats_clear_proc_handler':fs/xfs/linux/xfs_sysctl.c:61: `xfsstats' undeclared (first use in this function) fs/xfs/linux/xfs_sysctl.c:61: (Each undeclared identifier is reported only once fs/xfs/linux/xfs_sysctl.c:61: for each function it appears in.) make[2]: *** [fs/xfs/linux/xfs_sysctl.o] Error 1
<-- snip -->
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon SeedQuoted 5 lines · Adrian Bunk
I'm getting the following compile error in 2.5.70-mm5 if
CONFIG_SYSCTL&& !CONFIG_PROC_FS:<-- snip -->
Quoted 7 lines
...
CCfs/xfs/linux/xfs_sysctl.ofs/xfs/linux/xfs_sysctl.c: In function `xfs_stats_clear_proc_handler':fs/xfs/linux/xfs_sysctl.c:61: `xfsstats' undeclared (first use in this function)fs/xfs/linux/xfs_sysctl.c:61: (Each undeclared identifier is reported only oncefs/xfs/linux/xfs_sysctl.c:61: for each function it appears in.) make[2]: *** [fs/xfs/linux/xfs_sysctl.o] Error 1
This should fix it:
fs/xfs/linux/xfs_sysctl.c +16 -12
@@ -36,12 +36,12 @@#include <linux/proc_fs.h> -STATIC ulong xfs_min[XFS_PARAM] = { 0, 0, 0, 0, 0, 0, HZ }; -STATIC ulong xfs_max[XFS_PARAM] = { 1, 1, 1, 1, 127, 3, HZ * 60 }; +STATIC ulong xfs_min[XFS_PARAM] = { 0, 0, 0, 0, 0, HZ, 0 }; +STATIC ulong xfs_max[XFS_PARAM] = { 1, 1, 1, 127, 3, HZ * 60, 1 };static struct ctl_table_header *xfs_table_header; - +#ifdef CONFIG_PROC_FS STATIC int xfs_stats_clear_proc_handler( ctl_table *ctl,
@@ -66,35 +66,39 @@return ret; } +#endif /* CONFIG_PROC_FS */ STATIC ctl_table xfs_table[] = { - {XFS_STATS_CLEAR ,"stats_clear" , &xfs_params.stats_clear, -sizeof (ulong),0644 ,NULL , &xfs_stats_clear_proc_handler, - &sysctl_intvec,NULL , &xfs_min[0 ], &xfs_max[0 ]}, - {XFS_RESTRICT_CHOWN ,"restrict_chown" , &xfs_params.restrict_chown,sizeof (ulong),0644 ,NULL , &proc_doulongvec_minmax, - &sysctl_intvec,NULL , &xfs_min[1 ], &xfs_max[1 ]}, + &sysctl_intvec,NULL , &xfs_min[0 ], &xfs_max[0 ]}, {XFS_SGID_INHERIT ,"irix_sgid_inherit" , &xfs_params.sgid_inherit,sizeof (ulong),0644 ,NULL , &proc_doulongvec_minmax, - &sysctl_intvec,NULL , &xfs_min[2 ], &xfs_max[2 ]}, + &sysctl_intvec,NULL , &xfs_min[1 ], &xfs_max[1 ]}, {XFS_SYMLINK_MODE ,"irix_symlink_mode" , &xfs_params.symlink_mode,sizeof (ulong),0644 ,NULL , &proc_doulongvec_minmax, - &sysctl_intvec,NULL , &xfs_min[3 ], &xfs_max[3 ]}, + &sysctl_intvec,NULL , &xfs_min[2 ], &xfs_max[2 ]}, {XFS_PANIC_MASK ,"panic_mask" , &xfs_params.panic_mask,sizeof (ulong),0644 ,NULL , &proc_doulongvec_minmax, - &sysctl_intvec,NULL , &xfs_min[4 ], &xfs_max[4 ]}, + &sysctl_intvec,NULL , &xfs_min[3 ], &xfs_max[3 ]}, {XFS_ERRLEVEL ,"error_level" , &xfs_params.error_level,sizeof (ulong),0644 ,NULL , &proc_doulongvec_minmax, - &sysctl_intvec,NULL , &xfs_min[5 ], &xfs_max[5 ]}, + &sysctl_intvec,NULL , &xfs_min[4 ], &xfs_max[4 ]}, {XFS_SYNC_INTERVAL ,"sync_interval" , &xfs_params.sync_interval,sizeof (ulong),0644 ,NULL , &proc_doulongvec_minmax, + &sysctl_intvec,NULL , &xfs_min[5 ], &xfs_max[5 ]}, + +/* please keep this the last entry */ +#ifdef CONFIG_PROC_FS + {XFS_STATS_CLEAR ,"stats_clear" , &xfs_params.stats_clear, +sizeof (ulong),0644 ,NULL , &xfs_stats_clear_proc_handler, &sysctl_intvec,NULL , &xfs_min[6 ], &xfs_max[6 ]}, +#endif {0 } };
===== fs/xfs/linux/xfs_sysctl.h 1.8 vs edited =====
fs/xfs/linux/xfs_sysctl.h +8 -8
@@ -42,7 +42,6 @@#define XFS_PARAM (sizeof(struct xfs_param) / sizeof(ulong)) typedef struct xfs_param { - ulong stats_clear; /* Reset all XFS statistics to zero. */ ulong restrict_chown; /* Root/non-root can give away files. */ ulong sgid_inherit; /* Inherit ISGID bit if process' GID is */ /* not a member of the parent dir GID. */
@@ -50,6 +49,7 @@ulong panic_mask;/* bitmask to specify panics on errors. */ ulong error_level;/* Degree of reporting for internal probs*/ ulong sync_interval;/* time between sync calls */ +ulong stats_clear;/* Reset all XFS statistics to zero. */ } xfs_param_t;/*
@@ -68,13 +68,13 @@*/ enum { -XFS_STATS_CLEAR =1 , -XFS_RESTRICT_CHOWN =2 , -XFS_SGID_INHERIT =3 , -XFS_SYMLINK_MODE =4 , -XFS_PANIC_MASK =5 , -XFS_ERRLEVEL =6 , -XFS_SYNC_INTERVAL =7 , +XFS_RESTRICT_CHOWN =1 , +XFS_SGID_INHERIT =2 , +XFS_SYMLINK_MODE =3 , +XFS_PANIC_MASK =4 , +XFS_ERRLEVEL =5 , +XFS_SYNC_INTERVAL =6 , +XFS_STATS_CLEAR =7 , };extern xfs_param_t xfs_params;
Quoted 14 lines · Christoph Hellwig
Quoted 5 lines · Adrian Bunk
I'm getting the following compile error in 2.5.70-mm5 if
CONFIG_SYSCTL&& !CONFIG_PROC_FS:<-- snip -->
Quoted 7 lines
...
CCfs/xfs/linux/xfs_sysctl.ofs/xfs/linux/xfs_sysctl.c: In function `xfs_stats_clear_proc_handler':fs/xfs/linux/xfs_sysctl.c:61: `xfsstats' undeclared (first use in this function)fs/xfs/linux/xfs_sysctl.c:61: (Each undeclared identifier is reported only oncefs/xfs/linux/xfs_sysctl.c:61: for each function it appears in.) make[2]: *** [fs/xfs/linux/xfs_sysctl.o] Error 1
Quoted 2 lines
This should fix it:
...
Thanks, I can confirm your patch fixes the problem.
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed