Commit ed712dbb authored by Tom Rini's avatar Tom Rini Committed by Linus Torvalds

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

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: default avatarTom Rini <trini@kernel.crashing.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 0f4389e9
...@@ -7,25 +7,7 @@ ...@@ -7,25 +7,7 @@
*/ */
#include <linux/config.h> #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/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 * It's silly to have NR_OPEN bigger than NR_FILE, but you can change
...@@ -216,14 +198,33 @@ extern int dir_notify_enable; ...@@ -216,14 +198,33 @@ extern int dir_notify_enable;
#ifdef __KERNEL__ #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/list.h>
#include <linux/radix-tree.h> #include <linux/radix-tree.h>
#include <linux/prio_tree.h> #include <linux/prio_tree.h>
#include <linux/audit.h> #include <linux/audit.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/atomic.h>
#include <asm/semaphore.h> #include <asm/semaphore.h>
#include <asm/byteorder.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 */ /* Used to be a macro which just called the function, now just a function */
extern void update_atime (struct inode *); extern void update_atime (struct inode *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment