kernel: refresh 3.9 patches

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36074
This commit is contained in:
Florian Fainelli 2013-03-17 19:46:32 +00:00
parent 472bb8d51a
commit a5551d366a
9 changed files with 17 additions and 77 deletions

View file

@ -112,8 +112,6 @@ This should be part of your 3.9-rc3 pull request if I may ;)
arch/mips/kernel/Makefile | 14 --- arch/mips/kernel/Makefile | 14 ---
2 files changed, 190 insertions(+), 33 deletions(-) 2 files changed, 190 insertions(+), 33 deletions(-)
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h
index 12b70c2..0da44d4 100644
--- a/arch/mips/include/asm/mipsregs.h --- a/arch/mips/include/asm/mipsregs.h
+++ b/arch/mips/include/asm/mipsregs.h +++ b/arch/mips/include/asm/mipsregs.h
@@ -1166,7 +1166,10 @@ do { \ @@ -1166,7 +1166,10 @@ do { \
@ -345,8 +343,6 @@ index 12b70c2..0da44d4 100644
#else #else
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
index f81d98f..2e8a9c1 100644
--- a/arch/mips/kernel/Makefile --- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile
@@ -109,20 +109,6 @@ obj-$(CONFIG_JUMP_LABEL) += jump_label.o @@ -109,20 +109,6 @@ obj-$(CONFIG_JUMP_LABEL) += jump_label.o
@ -370,6 +366,3 @@ index f81d98f..2e8a9c1 100644
CFLAGS_signal.o = $(CFLAGS_DSP) CFLAGS_signal.o = $(CFLAGS_DSP)
CFLAGS_signal32.o = $(CFLAGS_DSP) CFLAGS_signal32.o = $(CFLAGS_DSP)
CFLAGS_process.o = $(CFLAGS_DSP) CFLAGS_process.o = $(CFLAGS_DSP)
--
1.7.10.4

View file

@ -1,5 +1,3 @@
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 0706d32..4331290 100644
--- a/Documentation/filesystems/Locking --- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking
@@ -66,6 +66,7 @@ prototypes: @@ -66,6 +66,7 @@ prototypes:
@ -18,9 +16,6 @@ index 0706d32..4331290 100644
Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on
victim. victim.
diff --git a/Documentation/filesystems/overlayfs.txt b/Documentation/filesystems/overlayfs.txt
new file mode 100644
index 0000000..00dbab0
--- /dev/null --- /dev/null
+++ b/Documentation/filesystems/overlayfs.txt +++ b/Documentation/filesystems/overlayfs.txt
@@ -0,0 +1,199 @@ @@ -0,0 +1,199 @@
@ -223,8 +218,6 @@ index 0000000..00dbab0
+filesystem are not allowed. If the underlying filesystem is changed, +filesystem are not allowed. If the underlying filesystem is changed,
+the behavior of the overlay is undefined, though it will not result in +the behavior of the overlay is undefined, though it will not result in
+a crash or deadlock. +a crash or deadlock.
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
index bc4b06b..f64a4d1 100644
--- a/Documentation/filesystems/vfs.txt --- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt
@@ -362,6 +362,7 @@ struct inode_operations { @@ -362,6 +362,7 @@ struct inode_operations {
@ -248,8 +241,6 @@ index bc4b06b..f64a4d1 100644
invalidatepage: If a page has PagePrivate set, then invalidatepage invalidatepage: If a page has PagePrivate set, then invalidatepage
will be called when part or all of the page is to be removed will be called when part or all of the page is to be removed
diff --git a/MAINTAINERS b/MAINTAINERS
index 9561658..9ea89b8 100644
--- a/MAINTAINERS --- a/MAINTAINERS
+++ b/MAINTAINERS +++ b/MAINTAINERS
@@ -5872,6 +5872,13 @@ F: drivers/scsi/osd/ @@ -5872,6 +5872,13 @@ F: drivers/scsi/osd/
@ -266,8 +257,6 @@ index 9561658..9ea89b8 100644
P54 WIRELESS DRIVER P54 WIRELESS DRIVER
M: Christian Lamparter <chunkeey@googlemail.com> M: Christian Lamparter <chunkeey@googlemail.com>
L: linux-wireless@vger.kernel.org L: linux-wireless@vger.kernel.org
diff --git a/fs/Kconfig b/fs/Kconfig
index 780725a..9e2ccd5 100644
--- a/fs/Kconfig --- a/fs/Kconfig
+++ b/fs/Kconfig +++ b/fs/Kconfig
@@ -67,6 +67,7 @@ source "fs/quota/Kconfig" @@ -67,6 +67,7 @@ source "fs/quota/Kconfig"
@ -278,8 +267,6 @@ index 780725a..9e2ccd5 100644
config GENERIC_ACL config GENERIC_ACL
bool bool
diff --git a/fs/Makefile b/fs/Makefile
index 9d53192..479a720 100644
--- a/fs/Makefile --- a/fs/Makefile
+++ b/fs/Makefile +++ b/fs/Makefile
@@ -107,6 +107,7 @@ obj-$(CONFIG_QNX6FS_FS) += qnx6/ @@ -107,6 +107,7 @@ obj-$(CONFIG_QNX6FS_FS) += qnx6/
@ -290,11 +277,9 @@ index 9d53192..479a720 100644
obj-$(CONFIG_UDF_FS) += udf/ obj-$(CONFIG_UDF_FS) += udf/
obj-$(CONFIG_SUN_OPENPROMFS) += openpromfs/ obj-$(CONFIG_SUN_OPENPROMFS) += openpromfs/
obj-$(CONFIG_OMFS_FS) += omfs/ obj-$(CONFIG_OMFS_FS) += omfs/
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
index e924cf4..8f7551e 100644
--- a/fs/ecryptfs/main.c --- a/fs/ecryptfs/main.c
+++ b/fs/ecryptfs/main.c +++ b/fs/ecryptfs/main.c
@@ -567,6 +567,13 @@ static struct dentry *ecryptfs_mount(struct file_system_type *fs_type, int flags @@ -567,6 +567,13 @@ static struct dentry *ecryptfs_mount(str
s->s_maxbytes = path.dentry->d_sb->s_maxbytes; s->s_maxbytes = path.dentry->d_sb->s_maxbytes;
s->s_blocksize = path.dentry->d_sb->s_blocksize; s->s_blocksize = path.dentry->d_sb->s_blocksize;
s->s_magic = ECRYPTFS_SUPER_MAGIC; s->s_magic = ECRYPTFS_SUPER_MAGIC;
@ -308,11 +293,9 @@ index e924cf4..8f7551e 100644
inode = ecryptfs_get_inode(path.dentry->d_inode, s); inode = ecryptfs_get_inode(path.dentry->d_inode, s);
rc = PTR_ERR(inode); rc = PTR_ERR(inode);
diff --git a/fs/internal.h b/fs/internal.h
index 507141f..89481ac 100644
--- a/fs/internal.h --- a/fs/internal.h
+++ b/fs/internal.h +++ b/fs/internal.h
@@ -42,11 +42,6 @@ static inline int __sync_blockdev(struct block_device *bdev, int wait) @@ -42,11 +42,6 @@ static inline int __sync_blockdev(struct
extern void __init chrdev_init(void); extern void __init chrdev_init(void);
/* /*
@ -324,11 +307,9 @@ index 507141f..89481ac 100644
* namespace.c * namespace.c
*/ */
extern int copy_mount_options(const void __user *, unsigned long *); extern int copy_mount_options(const void __user *, unsigned long *);
diff --git a/fs/namei.c b/fs/namei.c
index 57ae9c8..e1cffbd 100644
--- a/fs/namei.c --- a/fs/namei.c
+++ b/fs/namei.c +++ b/fs/namei.c
@@ -402,6 +402,7 @@ int __inode_permission(struct inode *inode, int mask) @@ -402,6 +402,7 @@ int __inode_permission(struct inode *ino
return security_inode_permission(inode, mask); return security_inode_permission(inode, mask);
} }
@ -352,11 +333,9 @@ index 57ae9c8..e1cffbd 100644
if (error == -EOPENSTALE) if (error == -EOPENSTALE)
goto stale_open; goto stale_open;
goto out; goto out;
diff --git a/fs/namespace.c b/fs/namespace.c
index 50ca17d..9791b4e 100644
--- a/fs/namespace.c --- a/fs/namespace.c
+++ b/fs/namespace.c +++ b/fs/namespace.c
@@ -1399,6 +1399,24 @@ void drop_collected_mounts(struct vfsmount *mnt) @@ -1399,6 +1399,24 @@ void drop_collected_mounts(struct vfsmou
release_mounts(&umount_list); release_mounts(&umount_list);
} }
@ -381,11 +360,9 @@ index 50ca17d..9791b4e 100644
int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
struct vfsmount *root) struct vfsmount *root)
{ {
diff --git a/fs/open.c b/fs/open.c
index 6835446..b9d9f9e 100644
--- a/fs/open.c --- a/fs/open.c
+++ b/fs/open.c +++ b/fs/open.c
@@ -828,8 +828,7 @@ struct file *dentry_open(const struct path *path, int flags, @@ -828,8 +828,7 @@ struct file *dentry_open(const struct pa
f = get_empty_filp(); f = get_empty_filp();
if (!IS_ERR(f)) { if (!IS_ERR(f)) {
f->f_flags = flags; f->f_flags = flags;
@ -395,7 +372,7 @@ index 6835446..b9d9f9e 100644
if (!error) { if (!error) {
/* from now on we need fput() to dispose of f */ /* from now on we need fput() to dispose of f */
error = open_check_o_direct(f); error = open_check_o_direct(f);
@@ -846,6 +845,26 @@ struct file *dentry_open(const struct path *path, int flags, @@ -846,6 +845,26 @@ struct file *dentry_open(const struct pa
} }
EXPORT_SYMBOL(dentry_open); EXPORT_SYMBOL(dentry_open);
@ -422,9 +399,6 @@ index 6835446..b9d9f9e 100644
static inline int build_open_flags(int flags, umode_t mode, struct open_flags *op) static inline int build_open_flags(int flags, umode_t mode, struct open_flags *op)
{ {
int lookup_flags = 0; int lookup_flags = 0;
diff --git a/fs/overlayfs/Kconfig b/fs/overlayfs/Kconfig
new file mode 100644
index 0000000..c4517da
--- /dev/null --- /dev/null
+++ b/fs/overlayfs/Kconfig +++ b/fs/overlayfs/Kconfig
@@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
@ -432,9 +406,6 @@ index 0000000..c4517da
+ tristate "Overlay filesystem support" + tristate "Overlay filesystem support"
+ help + help
+ Add support for overlay filesystem. + Add support for overlay filesystem.
diff --git a/fs/overlayfs/Makefile b/fs/overlayfs/Makefile
new file mode 100644
index 0000000..8f91889
--- /dev/null --- /dev/null
+++ b/fs/overlayfs/Makefile +++ b/fs/overlayfs/Makefile
@@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
@ -445,9 +416,6 @@ index 0000000..8f91889
+obj-$(CONFIG_OVERLAYFS_FS) += overlayfs.o +obj-$(CONFIG_OVERLAYFS_FS) += overlayfs.o
+ +
+overlayfs-objs := super.o inode.o dir.o readdir.o copy_up.o +overlayfs-objs := super.o inode.o dir.o readdir.o copy_up.o
diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
new file mode 100644
index 0000000..eef85e0
--- /dev/null --- /dev/null
+++ b/fs/overlayfs/copy_up.c +++ b/fs/overlayfs/copy_up.c
@@ -0,0 +1,385 @@ @@ -0,0 +1,385 @@
@ -836,9 +804,6 @@ index 0000000..eef85e0
+ dput(parent); + dput(parent);
+ return err; + return err;
+} +}
diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c
new file mode 100644
index 0000000..b530e56
--- /dev/null --- /dev/null
+++ b/fs/overlayfs/dir.c +++ b/fs/overlayfs/dir.c
@@ -0,0 +1,604 @@ @@ -0,0 +1,604 @@
@ -1446,9 +1411,6 @@ index 0000000..b530e56
+ .listxattr = ovl_listxattr, + .listxattr = ovl_listxattr,
+ .removexattr = ovl_removexattr, + .removexattr = ovl_removexattr,
+}; +};
diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
new file mode 100644
index 0000000..ee37e92
--- /dev/null --- /dev/null
+++ b/fs/overlayfs/inode.c +++ b/fs/overlayfs/inode.c
@@ -0,0 +1,372 @@ @@ -0,0 +1,372 @@
@ -1824,9 +1786,6 @@ index 0000000..ee37e92
+ return inode; + return inode;
+ +
+} +}
diff --git a/fs/overlayfs/overlayfs.h b/fs/overlayfs/overlayfs.h
new file mode 100644
index 0000000..1cba38f
--- /dev/null --- /dev/null
+++ b/fs/overlayfs/overlayfs.h +++ b/fs/overlayfs/overlayfs.h
@@ -0,0 +1,70 @@ @@ -0,0 +1,70 @@
@ -1900,9 +1859,6 @@ index 0000000..1cba38f
+/* copy_up.c */ +/* copy_up.c */
+int ovl_copy_up(struct dentry *dentry); +int ovl_copy_up(struct dentry *dentry);
+int ovl_copy_up_truncate(struct dentry *dentry, loff_t size); +int ovl_copy_up_truncate(struct dentry *dentry, loff_t size);
diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c
new file mode 100644
index 0000000..0797efb
--- /dev/null --- /dev/null
+++ b/fs/overlayfs/readdir.c +++ b/fs/overlayfs/readdir.c
@@ -0,0 +1,566 @@ @@ -0,0 +1,566 @@
@ -2472,9 +2428,6 @@ index 0000000..0797efb
+ +
+ return err; + return err;
+} +}
diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
new file mode 100644
index 0000000..357d6e8
--- /dev/null --- /dev/null
+++ b/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c
@@ -0,0 +1,685 @@ @@ -0,0 +1,685 @@
@ -3163,11 +3116,9 @@ index 0000000..357d6e8
+ +
+module_init(ovl_init); +module_init(ovl_init);
+module_exit(ovl_exit); +module_exit(ovl_exit);
diff --git a/fs/splice.c b/fs/splice.c
index 718bd00..0e8f44a 100644
--- a/fs/splice.c --- a/fs/splice.c
+++ b/fs/splice.c +++ b/fs/splice.c
@@ -1308,6 +1308,7 @@ long do_splice_direct(struct file *in, loff_t *ppos, struct file *out, @@ -1308,6 +1308,7 @@ long do_splice_direct(struct file *in, l
return ret; return ret;
} }
@ -3175,8 +3126,6 @@ index 718bd00..0e8f44a 100644
static int splice_pipe_to_pipe(struct pipe_inode_info *ipipe, static int splice_pipe_to_pipe(struct pipe_inode_info *ipipe,
struct pipe_inode_info *opipe, struct pipe_inode_info *opipe,
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 2c28271..3353de6 100644
--- a/include/linux/fs.h --- a/include/linux/fs.h
+++ b/include/linux/fs.h +++ b/include/linux/fs.h
@@ -244,6 +244,12 @@ struct iattr { @@ -244,6 +244,12 @@ struct iattr {
@ -3212,7 +3161,7 @@ index 2c28271..3353de6 100644
} ____cacheline_aligned; } ____cacheline_aligned;
ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector, ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector,
@@ -2006,6 +2018,7 @@ extern struct file *file_open_name(struct filename *, int, umode_t); @@ -2006,6 +2018,7 @@ extern struct file *file_open_name(struc
extern struct file *filp_open(const char *, int, umode_t); extern struct file *filp_open(const char *, int, umode_t);
extern struct file *file_open_root(struct dentry *, struct vfsmount *, extern struct file *file_open_root(struct dentry *, struct vfsmount *,
const char *, int); const char *, int);
@ -3220,7 +3169,7 @@ index 2c28271..3353de6 100644
extern struct file * dentry_open(const struct path *, int, const struct cred *); extern struct file * dentry_open(const struct path *, int, const struct cred *);
extern int filp_close(struct file *, fl_owner_t id); extern int filp_close(struct file *, fl_owner_t id);
@@ -2211,6 +2224,7 @@ extern sector_t bmap(struct inode *, sector_t); @@ -2211,6 +2224,7 @@ extern sector_t bmap(struct inode *, sec
#endif #endif
extern int notify_change(struct dentry *, struct iattr *); extern int notify_change(struct dentry *, struct iattr *);
extern int inode_permission(struct inode *, int); extern int inode_permission(struct inode *, int);
@ -3228,11 +3177,9 @@ index 2c28271..3353de6 100644
extern int generic_permission(struct inode *, int); extern int generic_permission(struct inode *, int);
static inline bool execute_ok(struct inode *inode) static inline bool execute_ok(struct inode *inode)
diff --git a/include/linux/mount.h b/include/linux/mount.h
index d7029f4..344a262 100644
--- a/include/linux/mount.h --- a/include/linux/mount.h
+++ b/include/linux/mount.h +++ b/include/linux/mount.h
@@ -66,6 +66,9 @@ extern void mnt_pin(struct vfsmount *mnt); @@ -66,6 +66,9 @@ extern void mnt_pin(struct vfsmount *mnt
extern void mnt_unpin(struct vfsmount *mnt); extern void mnt_unpin(struct vfsmount *mnt);
extern int __mnt_is_readonly(struct vfsmount *mnt); extern int __mnt_is_readonly(struct vfsmount *mnt);

View file

@ -479,5 +479,5 @@
endif endif
+KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL)) +KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL))
ccflags-y := -fpic -fno-builtin -I$(obj) ccflags-y := -fpic -mno-single-pic-base -fno-builtin -I$(obj)
asflags-y := -Wa,-march=all -DZIMAGE asflags-y := -Wa,-march=all -DZIMAGE

View file

@ -206,7 +206,7 @@
+} +}
--- a/fs/jffs2/super.c --- a/fs/jffs2/super.c
+++ b/fs/jffs2/super.c +++ b/fs/jffs2/super.c
@@ -373,14 +373,41 @@ static int __init init_jffs2_fs(void) @@ -374,14 +374,41 @@ static int __init init_jffs2_fs(void)
BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68); BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32); BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);

View file

@ -21,7 +21,7 @@
--- a/drivers/net/phy/phy_device.c --- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c
@@ -793,6 +793,9 @@ int genphy_update_link(struct phy_device @@ -795,6 +795,9 @@ int genphy_update_link(struct phy_device
{ {
int status; int status;

View file

@ -1,6 +1,6 @@
--- a/drivers/net/phy/phy_device.c --- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c
@@ -610,6 +610,9 @@ EXPORT_SYMBOL(phy_attach); @@ -612,6 +612,9 @@ EXPORT_SYMBOL(phy_attach);
*/ */
void phy_detach(struct phy_device *phydev) void phy_detach(struct phy_device *phydev)
{ {

View file

@ -830,7 +830,7 @@
+be done automatically. +be done automatically.
--- a/MAINTAINERS --- a/MAINTAINERS
+++ b/MAINTAINERS +++ b/MAINTAINERS
@@ -3618,6 +3618,11 @@ L: linuxppc-dev@lists.ozlabs.org @@ -3600,6 +3600,11 @@ L: linuxppc-dev@lists.ozlabs.org
S: Odd Fixes S: Odd Fixes
F: drivers/tty/hvc/ F: drivers/tty/hvc/

View file

@ -26,7 +26,7 @@
endif endif
--- a/include/linux/fs.h --- a/include/linux/fs.h
+++ b/include/linux/fs.h +++ b/include/linux/fs.h
@@ -2447,12 +2447,26 @@ enum { @@ -2449,12 +2449,26 @@ enum {
DIO_SKIP_HOLES = 0x02, DIO_SKIP_HOLES = 0x02,
}; };

View file

@ -47,7 +47,7 @@ Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/device.h> #include <linux/device.h>
@@ -360,6 +361,13 @@ int __init twd_local_timer_register(stru @@ -361,6 +362,13 @@ int __init twd_local_timer_register(stru
return twd_local_timer_common_register(NULL); return twd_local_timer_common_register(NULL);
} }