[2.6.11-rc4 i386] Re-order <linux/fs.h> includes to fix userland breakage

From: Tom Rini
Date: Tue Feb 22 2005 - 16:53:39 EST


The following moves all includes <linux/fs.h> (except <linux/ioctl.h>
and <linux/config.h> down to below the existing __KERNEL__ test. None
of these includes are needed by the user-visible portions of the header,
and in some cases can cause userland apps to break. For example, LTP
and sash with an empty <linux/autoconf.h> will fail thusly:
cc -Wall -I../../include -g -Wall -I../../../../include -Wall setrlimit02.c -L../../../../lib -lltp -o setrlimit02
In file included from /usr/include/asm/atomic.h:6,
from /usr/include/linux/fs.h:20,
from setrlimit02.c:46:
/usr/include/asm/processor.h:68: error: `CONFIG_X86_L1_CACHE_SHIFT' undeclared here (not in a function)
/usr/include/asm/processor.h:68: error: requested alignment is not a constant

Build/run tested with a glibc rebuild as well.

Signed-off-by: Tom Rini <trini@xxxxxxxxxxxxxxxxxxx>

===== include/linux/fs.h 1.376 vs edited =====
--- 1.376/include/linux/fs.h 2005-02-03 07:42:40 -07:00
+++ edited/include/linux/fs.h 2005-02-22 14:44:27 -07:00
@@ -7,25 +7,7 @@
*/

#include <linux/config.h>
-#include <linux/linkage.h>
-#include <linux/limits.h>
-#include <linux/wait.h>
-#include <linux/types.h>
-#include <linux/kdev_t.h>
#include <linux/ioctl.h>
-#include <linux/dcache.h>
-#include <linux/stat.h>
-#include <linux/cache.h>
-#include <linux/kobject.h>
-#include <asm/atomic.h>
-
-struct iovec;
-struct nameidata;
-struct pipe_inode_info;
-struct poll_table_struct;
-struct kstatfs;
-struct vm_area_struct;
-struct vfsmount;

/*
* It's silly to have NR_OPEN bigger than NR_FILE, but you can change
@@ -216,13 +198,32 @@ extern int dir_notify_enable;

#ifdef __KERNEL__

+#include <linux/linkage.h>
+#include <linux/limits.h>
+#include <linux/wait.h>
+#include <linux/types.h>
+#include <linux/kdev_t.h>
+#include <linux/dcache.h>
+#include <linux/stat.h>
+#include <linux/cache.h>
+#include <linux/kobject.h>
#include <linux/list.h>
#include <linux/radix-tree.h>
#include <linux/prio_tree.h>
#include <linux/audit.h>
#include <linux/init.h>
+
+#include <asm/atomic.h>
#include <asm/semaphore.h>
#include <asm/byteorder.h>
+
+struct iovec;
+struct nameidata;
+struct pipe_inode_info;
+struct poll_table_struct;
+struct kstatfs;
+struct vm_area_struct;
+struct vfsmount;

/* Used to be a macro which just called the function, now just a function */
extern void update_atime (struct inode *);

--
Tom Rini
http://gate.crashing.org/~trini/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/