diff options
Diffstat (limited to 'patches')
-rw-r--r-- | patches/aufs2-2.6.36.patch | 130 | ||||
-rw-r--r-- | patches/aufs2-base-20110105.patch (renamed from patches/aufs2-base-20101021.patch) | 11 | ||||
-rw-r--r-- | patches/aufs2-standalone-20110105.patch (renamed from patches/aufs2-standalone-20101021.patch) | 75 |
3 files changed, 54 insertions, 162 deletions
diff --git a/patches/aufs2-2.6.36.patch b/patches/aufs2-2.6.36.patch deleted file mode 100644 index 6fa2900..0000000 --- a/patches/aufs2-2.6.36.patch +++ /dev/null @@ -1,130 +0,0 @@ -diff --git a/fs/file_table.c b/fs/file_table.c -index a04bdd8..fbf8908 100644 ---- a/fs/file_table.c -+++ b/fs/file_table.c -@@ -20,7 +20,6 @@ - #include <linux/cdev.h> - #include <linux/fsnotify.h> - #include <linux/sysctl.h> --#include <linux/lglock.h> - #include <linux/percpu_counter.h> - #include <linux/percpu.h> - #include <linux/ima.h> -@@ -34,7 +33,6 @@ struct files_stat_struct files_stat = { - .max_files = NR_FILE - }; - --DECLARE_LGLOCK(files_lglock); - DEFINE_LGLOCK(files_lglock); - - /* SLAB cache for file structures */ -@@ -394,37 +392,6 @@ void file_sb_list_del(struct file *file) - } - } - --#ifdef CONFIG_SMP -- --/* -- * These macros iterate all files on all CPUs for a given superblock. -- * files_lglock must be held globally. -- */ --#define do_file_list_for_each_entry(__sb, __file) \ --{ \ -- int i; \ -- for_each_possible_cpu(i) { \ -- struct list_head *list; \ -- list = per_cpu_ptr((__sb)->s_files, i); \ -- list_for_each_entry((__file), list, f_u.fu_list) -- --#define while_file_list_for_each_entry \ -- } \ --} -- --#else -- --#define do_file_list_for_each_entry(__sb, __file) \ --{ \ -- struct list_head *list; \ -- list = &(sb)->s_files; \ -- list_for_each_entry((__file), list, f_u.fu_list) -- --#define while_file_list_for_each_entry \ --} -- --#endif -- - int fs_may_remount_ro(struct super_block *sb) - { - struct file *file; -diff --git a/fs/statfs.c b/fs/statfs.c -index 30ea8c8..9025c98 100644 ---- a/fs/statfs.c -+++ b/fs/statfs.c -@@ -61,6 +61,7 @@ int statfs_by_dentry(struct dentry *dentry, struct kstatfs *buf) - buf->f_frsize = buf->f_bsize; - return retval; - } -+EXPORT_SYMBOL(statfs_by_dentry); - - int vfs_statfs(struct path *path, struct kstatfs *buf) - { -diff --git a/include/linux/fs.h b/include/linux/fs.h -index 63d069b..741d296 100644 ---- a/include/linux/fs.h -+++ b/include/linux/fs.h -@@ -9,6 +9,7 @@ - #include <linux/limits.h> - #include <linux/ioctl.h> - #include <linux/blk_types.h> -+#include <linux/lglock.h> - - /* - * It's silly to have NR_OPEN bigger than NR_FILE, but you can change -@@ -1814,6 +1815,7 @@ extern struct vfsmount *collect_mounts(struct path *); - extern void drop_collected_mounts(struct vfsmount *); - extern int iterate_mounts(int (*)(struct vfsmount *, void *), void *, - struct vfsmount *); -+extern int statfs_by_dentry(struct dentry *dentry, struct kstatfs *buf); - extern int vfs_statfs(struct path *, struct kstatfs *); - extern int statfs_by_dentry(struct dentry *, struct kstatfs *); - extern int freeze_super(struct super_block *super); -@@ -2481,5 +2483,39 @@ int __init get_filesystem_list(char *buf); - #define OPEN_FMODE(flag) ((__force fmode_t)(((flag + 1) & O_ACCMODE) | \ - (flag & FMODE_NONOTIFY))) - -+ -+DECLARE_LGLOCK(files_lglock); -+ -+#ifdef CONFIG_SMP -+ -+/* -+ * These macros iterate all files on all CPUs for a given superblock. -+ * files_lglock must be held globally. -+ */ -+#define do_file_list_for_each_entry(__sb, __file) \ -+{ \ -+ int i; \ -+ for_each_possible_cpu(i) { \ -+ struct list_head *list; \ -+ list = per_cpu_ptr((__sb)->s_files, i); \ -+ list_for_each_entry((__file), list, f_u.fu_list) -+ -+#define while_file_list_for_each_entry \ -+ } \ -+} -+ -+#else -+ -+#define do_file_list_for_each_entry(__sb, __file) \ -+{ \ -+ struct list_head *list; \ -+ list = &(sb)->s_files; \ -+ list_for_each_entry((__file), list, f_u.fu_list) -+ -+#define while_file_list_for_each_entry \ -+} -+ -+#endif -+ - #endif /* __KERNEL__ */ - #endif /* _LINUX_FS_H */ diff --git a/patches/aufs2-base-20101021.patch b/patches/aufs2-base-20110105.patch index fda00b8..02c243d 100644 --- a/patches/aufs2-base-20101021.patch +++ b/patches/aufs2-base-20110105.patch @@ -1,19 +1,16 @@ -aufs2 base patch for linux-2.6. +aufs2.1 base patch for linux-2.6. diff --git a/fs/namei.c b/fs/namei.c -index 17ea76b..56e8ece 100644 +index 5362af9..5fe904d 100644 --- a/fs/namei.c +++ b/fs/namei.c -@@ -1168,7 +1168,7 @@ out: +@@ -1161,12 +1161,12 @@ out: * needs parent already locked. Doesn't follow mounts. * SMP-safe. */ -static struct dentry *lookup_hash(struct nameidata *nd) +struct dentry *lookup_hash(struct nameidata *nd) { - int err; - -@@ -1178,7 +1178,7 @@ static struct dentry *lookup_hash(struct nameidata *nd) return __lookup_hash(&nd->last, nd->path.dentry, nd); } @@ -23,7 +20,7 @@ index 17ea76b..56e8ece 100644 { unsigned long hash; diff --git a/fs/splice.c b/fs/splice.c -index 8f1dfae..278c94f 100644 +index ce2f025..ff0ae69 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -1092,8 +1092,8 @@ EXPORT_SYMBOL(generic_splice_sendpage); diff --git a/patches/aufs2-standalone-20101021.patch b/patches/aufs2-standalone-20110105.patch index 2df3fbe..d10df2b 100644 --- a/patches/aufs2-standalone-20101021.patch +++ b/patches/aufs2-standalone-20110105.patch @@ -1,7 +1,32 @@ -aufs2 standalone patch for linux-2.6. +aufs2.1 standalone patch for linux-2.6. +diff --git a/fs/file_table.c b/fs/file_table.c +index c3dee38..f529e4d 100644 +--- a/fs/file_table.c ++++ b/fs/file_table.c +@@ -393,6 +393,8 @@ void file_sb_list_del(struct file *file) + } + } + ++EXPORT_SYMBOL(file_sb_list_del); ++ + #ifdef CONFIG_SMP + + /* +diff --git a/fs/inode.c b/fs/inode.c +index ae2727a..2c8071a 100644 +--- a/fs/inode.c ++++ b/fs/inode.c +@@ -82,6 +82,7 @@ static struct hlist_head *inode_hashtable __read_mostly; + * the i_state of an inode while it is in use.. + */ + DEFINE_SPINLOCK(inode_lock); ++EXPORT_SYMBOL(inode_lock); + + /* + * iprune_sem provides exclusion between the kswapd or try_to_free_pages diff --git a/fs/namei.c b/fs/namei.c -index 56e8ece..ba75f28 100644 +index 5fe904d..8af12f7 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -347,6 +347,7 @@ int deny_write_access(struct file * file) @@ -12,15 +37,15 @@ index 56e8ece..ba75f28 100644 /** * path_get - get a reference to a path -@@ -1177,6 +1178,7 @@ struct dentry *lookup_hash(struct nameidata *nd) - return ERR_PTR(err); +@@ -1165,6 +1166,7 @@ struct dentry *lookup_hash(struct nameidata *nd) + { return __lookup_hash(&nd->last, nd->path.dentry, nd); } +EXPORT_SYMBOL(lookup_hash); int __lookup_one_len(const char *name, struct qstr *this, struct dentry *base, int len) -@@ -1199,6 +1201,7 @@ int __lookup_one_len(const char *name, struct qstr *this, +@@ -1187,6 +1189,7 @@ int __lookup_one_len(const char *name, struct qstr *this, this->hash = end_name_hash(hash); return 0; } @@ -29,10 +54,10 @@ index 56e8ece..ba75f28 100644 /** * lookup_one_len - filesystem helper to lookup single pathname component diff --git a/fs/namespace.c b/fs/namespace.c -index 2e10cb1..8fa77c4 100644 +index 3dbfc07..3998762 100644 --- a/fs/namespace.c +++ b/fs/namespace.c -@@ -1283,6 +1283,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, +@@ -1321,6 +1321,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, } return 0; } @@ -102,7 +127,7 @@ index 325185e..adede09 100644 static int fsnotify_mark_destroy(void *ignored) { diff --git a/fs/open.c b/fs/open.c -index 630715f..1c864c7 100644 +index 4197b9e..912817a 100644 --- a/fs/open.c +++ b/fs/open.c @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, @@ -114,7 +139,7 @@ index 630715f..1c864c7 100644 static long do_sys_truncate(const char __user *pathname, loff_t length) { diff --git a/fs/splice.c b/fs/splice.c -index 278c94f..033f7ac 100644 +index ff0ae69..1c9e9b0 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -1116,6 +1116,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out, @@ -134,10 +159,10 @@ index 278c94f..033f7ac 100644 /** * splice_direct_to_actor - splices data directly between two non-pipes diff --git a/security/commoncap.c b/security/commoncap.c -index 4e01599..3611e1b 100644 +index 64c2ed9..e58b5d8 100644 --- a/security/commoncap.c +++ b/security/commoncap.c -@@ -951,3 +951,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot, +@@ -929,3 +929,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot, } return ret; } @@ -155,10 +180,10 @@ index 8d9c48f..29108aa 100644 int devcgroup_inode_mknod(int mode, dev_t dev) { diff --git a/security/security.c b/security/security.c -index c53949f..0ae5b91 100644 +index 1b798d3..3b7d2ca 100644 --- a/security/security.c +++ b/security/security.c -@@ -376,6 +376,7 @@ int security_path_mkdir(struct path *dir, struct dentry *dentry, int mode) +@@ -360,6 +360,7 @@ int security_path_mkdir(struct path *dir, struct dentry *dentry, int mode) return 0; return security_ops->path_mkdir(dir, dentry, mode); } @@ -166,7 +191,7 @@ index c53949f..0ae5b91 100644 int security_path_rmdir(struct path *dir, struct dentry *dentry) { -@@ -383,6 +384,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry) +@@ -367,6 +368,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry) return 0; return security_ops->path_rmdir(dir, dentry); } @@ -174,7 +199,7 @@ index c53949f..0ae5b91 100644 int security_path_unlink(struct path *dir, struct dentry *dentry) { -@@ -390,6 +392,7 @@ int security_path_unlink(struct path *dir, struct dentry *dentry) +@@ -374,6 +376,7 @@ int security_path_unlink(struct path *dir, struct dentry *dentry) return 0; return security_ops->path_unlink(dir, dentry); } @@ -182,7 +207,7 @@ index c53949f..0ae5b91 100644 int security_path_symlink(struct path *dir, struct dentry *dentry, const char *old_name) -@@ -398,6 +401,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry, +@@ -382,6 +385,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry, return 0; return security_ops->path_symlink(dir, dentry, old_name); } @@ -190,7 +215,7 @@ index c53949f..0ae5b91 100644 int security_path_link(struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) -@@ -406,6 +410,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir, +@@ -390,6 +394,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir, return 0; return security_ops->path_link(old_dentry, new_dir, new_dentry); } @@ -198,7 +223,7 @@ index c53949f..0ae5b91 100644 int security_path_rename(struct path *old_dir, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) -@@ -416,6 +421,7 @@ int security_path_rename(struct path *old_dir, struct dentry *old_dentry, +@@ -400,6 +405,7 @@ int security_path_rename(struct path *old_dir, struct dentry *old_dentry, return security_ops->path_rename(old_dir, old_dentry, new_dir, new_dentry); } @@ -206,7 +231,7 @@ index c53949f..0ae5b91 100644 int security_path_truncate(struct path *path) { -@@ -423,6 +429,7 @@ int security_path_truncate(struct path *path) +@@ -407,6 +413,7 @@ int security_path_truncate(struct path *path) return 0; return security_ops->path_truncate(path); } @@ -214,7 +239,7 @@ index c53949f..0ae5b91 100644 int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt, mode_t mode) -@@ -431,6 +438,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt, +@@ -415,6 +422,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt, return 0; return security_ops->path_chmod(dentry, mnt, mode); } @@ -222,7 +247,7 @@ index c53949f..0ae5b91 100644 int security_path_chown(struct path *path, uid_t uid, gid_t gid) { -@@ -438,6 +446,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid) +@@ -422,6 +430,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid) return 0; return security_ops->path_chown(path, uid, gid); } @@ -230,7 +255,7 @@ index c53949f..0ae5b91 100644 int security_path_chroot(struct path *path) { -@@ -514,6 +523,7 @@ int security_inode_readlink(struct dentry *dentry) +@@ -498,6 +507,7 @@ int security_inode_readlink(struct dentry *dentry) return 0; return security_ops->inode_readlink(dentry); } @@ -238,7 +263,7 @@ index c53949f..0ae5b91 100644 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd) { -@@ -528,6 +538,7 @@ int security_inode_permission(struct inode *inode, int mask) +@@ -512,6 +522,7 @@ int security_inode_permission(struct inode *inode, int mask) return 0; return security_ops->inode_permission(inode, mask); } @@ -246,7 +271,7 @@ index c53949f..0ae5b91 100644 int security_inode_setattr(struct dentry *dentry, struct iattr *attr) { -@@ -627,6 +638,7 @@ int security_file_permission(struct file *file, int mask) +@@ -611,6 +622,7 @@ int security_file_permission(struct file *file, int mask) return fsnotify_perm(file, mask); } @@ -254,7 +279,7 @@ index c53949f..0ae5b91 100644 int security_file_alloc(struct file *file) { -@@ -654,6 +666,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot, +@@ -638,6 +650,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot, return ret; return ima_file_mmap(file, prot); } |