From d866f5e2882efa917089a2431a21206801258110 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Mon, 4 Jun 2012 20:55:13 +0000 Subject: [PATCH] aufs: Update to aufs3.4-20120521 and reenable it svn path=/dists/trunk/linux-2.6/; revision=19083 --- debian/changelog | 1 + .../features/all/aufs3/aufs3-add.patch | 119 ++++++++++-------- .../features/all/aufs3/aufs3-base.patch | 8 +- .../features/all/aufs3/aufs3-kbuild.patch | 14 +-- .../features/all/aufs3/aufs3-standalone.patch | 48 +++---- debian/patches/series/base | 12 +- 6 files changed, 111 insertions(+), 91 deletions(-) diff --git a/debian/changelog b/debian/changelog index 1e075299e..ce8cf309c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,7 @@ linux-2.6 (3.4.1-1~experimental.1) UNRELEASED; urgency=low [ Ben Hutchings ] * DFSG: Remove the new vs6624 driver, which contains non-free firmware + * aufs: Update to aufs3.4-20120521 -- Ben Hutchings Mon, 21 May 2012 01:37:21 +0100 diff --git a/debian/patches/features/all/aufs3/aufs3-add.patch b/debian/patches/features/all/aufs3/aufs3-add.patch index fbeedd1c0..aa82d9900 100644 --- a/debian/patches/features/all/aufs3/aufs3-add.patch +++ b/debian/patches/features/all/aufs3/aufs3-add.patch @@ -1759,7 +1759,7 @@ + +-include ${srctree}/${src}/conf_priv.mk --- a/fs/aufs/cpup.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/cpup.c 2012-02-19 21:12:26.542426948 +0000 ++++ b/fs/aufs/cpup.c 2012-06-04 21:49:59.814840078 +0100 @@ -0,0 +1,1084 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima @@ -1826,7 +1826,7 @@ + * h_inode->i_mutex is not held, but it is harmless since once i_nlink + * reaches 0, it will never become positive. + */ -+ vfsub_set_nlink(inode, h_inode->i_nlink); ++ set_nlink(inode, h_inode->i_nlink); + + /* + * fewer nlink makes find(1) noisy, but larger nlink doesn't. @@ -4154,8 +4154,8 @@ + return 0; +} --- a/fs/aufs/debug.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/debug.h 2012-01-10 02:15:56.545455955 +0000 -@@ -0,0 +1,243 @@ ++++ b/fs/aufs/debug.h 2012-06-04 21:49:59.814840078 +0100 +@@ -0,0 +1,242 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * @@ -4183,7 +4183,6 @@ + +#ifdef __KERNEL__ + -+#include +#include +#include +#include @@ -6329,7 +6328,7 @@ + return -1; +} --- a/fs/aufs/dir.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/dir.c 2012-02-19 21:12:26.566427085 +0000 ++++ b/fs/aufs/dir.c 2012-06-04 21:49:59.814840078 +0100 @@ -0,0 +1,636 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima @@ -6367,7 +6366,7 @@ + if (h_dir->i_nlink < 2) + nlink += 2; + /* 0 can happen in revaliding */ -+ vfsub_set_nlink(dir, nlink); ++ set_nlink(dir, nlink); +} + +void au_sub_nlink(struct inode *dir, struct inode *h_dir) @@ -6380,7 +6379,7 @@ + nlink -= h_dir->i_nlink - 2; + if (h_dir->i_nlink < 2) + nlink -= 2; -+ /* no vfsub version. nlink == 0 means the branch-fs is broken */ ++ /* nlink == 0 means the branch-fs is broken */ + set_nlink(dir, nlink); +} + @@ -7567,7 +7566,7 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_DYNOP_H__ */ --- a/fs/aufs/export.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/export.c 2012-02-19 21:12:26.566427085 +0000 ++++ b/fs/aufs/export.c 2012-06-04 21:49:59.850840259 +0100 @@ -0,0 +1,803 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima @@ -9406,7 +9405,7 @@ + return ret; +} --- a/fs/aufs/file.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/file.c 2012-02-19 21:12:26.570427095 +0000 ++++ b/fs/aufs/file.c 2012-06-04 21:49:59.854840268 +0100 @@ -0,0 +1,676 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima @@ -12082,8 +12081,8 @@ + au_hn_destroy_cache(); +} --- a/fs/aufs/i_op.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/i_op.c 2012-02-19 21:12:26.570427095 +0000 -@@ -0,0 +1,992 @@ ++++ b/fs/aufs/i_op.c 2012-06-04 21:49:59.854840268 +0100 +@@ -0,0 +1,993 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * @@ -12108,6 +12107,7 @@ + +#include +#include ++#include +#include +#include +#include "aufs.h" @@ -12850,7 +12850,7 @@ + n -= nlink; + n += st->nlink; + /* 0 can happen */ -+ vfsub_set_nlink(inode, n); ++ set_nlink(inode, n); + } + + spin_lock(&inode->i_lock); @@ -13077,7 +13077,7 @@ + .truncate_range = aufs_truncate_range +}; --- a/fs/aufs/i_op_add.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/i_op_add.c 2012-03-11 05:01:22.570973560 +0000 ++++ b/fs/aufs/i_op_add.c 2012-06-04 21:49:59.854840268 +0100 @@ -0,0 +1,712 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima @@ -16043,7 +16043,7 @@ + return au_test_h_perm(h_inode, mask); +} --- a/fs/aufs/inode.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/inode.h 2012-03-11 05:01:22.570973560 +0000 ++++ b/fs/aufs/inode.h 2012-06-04 21:49:59.854840268 +0100 @@ -0,0 +1,560 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima @@ -20000,8 +20000,8 @@ + return err; +} --- a/fs/aufs/rdu.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/rdu.c 2012-01-10 02:15:56.561456041 +0000 -@@ -0,0 +1,383 @@ ++++ b/fs/aufs/rdu.c 2012-06-04 21:49:59.854840268 +0100 +@@ -0,0 +1,384 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * @@ -20099,6 +20099,7 @@ + loff_t offset; + struct au_rdu_cookie *cookie = &arg->rdu->cookie; + ++ /* we don't have to care (FMODE_32BITHASH | FMODE_64BITHASH) for ext4 */ + offset = vfsub_llseek(h_file, cookie->h_pos, SEEK_SET); + err = offset; + if (unlikely(offset != cookie->h_pos)) @@ -20988,8 +20989,8 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_SPL_H__ */ --- a/fs/aufs/super.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/super.c 2012-02-19 21:12:26.570427095 +0000 -@@ -0,0 +1,936 @@ ++++ b/fs/aufs/super.c 2012-06-04 21:49:59.854840268 +0100 +@@ -0,0 +1,962 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * @@ -21295,7 +21296,18 @@ + + old = a; + a += b; -+ if (old < a) ++ if (old <= a) ++ return a; ++ return ULLONG_MAX; ++} ++ ++static u64 au_mul_till_max(u64 a, long mul) ++{ ++ u64 old; ++ ++ old = a; ++ a *= mul; ++ if (old <= a) + return a; + return ULLONG_MAX; +} @@ -21303,25 +21315,26 @@ +static int au_statfs_sum(struct super_block *sb, struct kstatfs *buf) +{ + int err; ++ long bsize, factor; + u64 blocks, bfree, bavail, files, ffree; + aufs_bindex_t bend, bindex, i; + unsigned char shared; + struct path h_path; + struct super_block *h_sb; + ++ err = 0; ++ bsize = LONG_MAX; ++ files = 0; ++ ffree = 0; + blocks = 0; + bfree = 0; + bavail = 0; -+ files = 0; -+ ffree = 0; -+ -+ err = 0; + bend = au_sbend(sb); -+ for (bindex = bend; bindex >= 0; bindex--) { ++ for (bindex = 0; bindex <= bend; bindex++) { + h_path.mnt = au_sbr_mnt(sb, bindex); + h_sb = h_path.mnt->mnt_sb; + shared = 0; -+ for (i = bindex + 1; !shared && i <= bend; i++) ++ for (i = 0; !shared && i < bindex; i++) + shared = (au_sbr_sb(sb, i) == h_sb); + if (shared) + continue; @@ -21332,18 +21345,36 @@ + if (unlikely(err)) + goto out; + -+ blocks = au_add_till_max(blocks, buf->f_blocks); -+ bfree = au_add_till_max(bfree, buf->f_bfree); -+ bavail = au_add_till_max(bavail, buf->f_bavail); ++ if (bsize > buf->f_bsize) { ++ /* ++ * we will reduce bsize, so we have to expand blocks ++ * etc. to match them again ++ */ ++ factor = (bsize / buf->f_bsize); ++ blocks = au_mul_till_max(blocks, factor); ++ bfree = au_mul_till_max(bfree, factor); ++ bavail = au_mul_till_max(bavail, factor); ++ bsize = buf->f_bsize; ++ } ++ ++ factor = (buf->f_bsize / bsize); ++ blocks = au_add_till_max(blocks, ++ au_mul_till_max(buf->f_blocks, factor)); ++ bfree = au_add_till_max(bfree, ++ au_mul_till_max(buf->f_bfree, factor)); ++ bavail = au_add_till_max(bavail, ++ au_mul_till_max(buf->f_bavail, factor)); + files = au_add_till_max(files, buf->f_files); + ffree = au_add_till_max(ffree, buf->f_ffree); + } + ++ buf->f_bsize = bsize; + buf->f_blocks = blocks; + buf->f_bfree = bfree; + buf->f_bavail = bavail; + buf->f_files = files; + buf->f_ffree = ffree; ++ buf->f_frsize = 0; + +out: + return err; @@ -21765,12 +21796,12 @@ + set_nlink(inode, 2); + unlock_new_inode(inode); + -+ root = d_alloc_root(inode); ++ root = d_make_root(inode); + if (unlikely(!root)) -+ goto out_iput; ++ goto out; + err = PTR_ERR(root); + if (IS_ERR(root)) -+ goto out_iput; ++ goto out; + + err = au_di_init(root); + if (!err) { @@ -21778,13 +21809,9 @@ + return 0; /* success */ + } + dput(root); -+ goto out; /* do not iput */ + -+out_iput: -+ iget_failed(inode); +out: + return err; -+ +} + +static int aufs_fill_super(struct super_block *sb, void *raw_data, @@ -23990,7 +24017,7 @@ + return 0; +} --- a/fs/aufs/vfsub.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/vfsub.c 2012-03-11 05:01:22.570973560 +0000 ++++ b/fs/aufs/vfsub.c 2012-06-04 21:49:59.854840268 +0100 @@ -0,0 +1,832 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima @@ -24825,8 +24852,8 @@ + return err; +} --- a/fs/aufs/vfsub.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/vfsub.h 2012-02-19 21:12:26.574427108 +0000 -@@ -0,0 +1,240 @@ ++++ b/fs/aufs/vfsub.h 2012-06-04 21:49:59.858840280 +0100 +@@ -0,0 +1,232 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima + * @@ -24929,14 +24956,6 @@ + clear_nlink(inode); +} + -+static inline void vfsub_set_nlink(struct inode *inode, unsigned int nlink) -+{ -+ if (nlink) -+ set_nlink(inode, nlink); -+ else -+ clear_nlink(inode); -+} -+ +/* ---------------------------------------------------------------------- */ + +int vfsub_update_h_iattr(struct path *h_path, int *did); @@ -25004,7 +25023,7 @@ + .dentry = h_dentry, + .mnt = h_mnt + }; -+ touch_atime(h_mnt, h_dentry); ++ touch_atime(&h_path); + vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/ +} + @@ -28493,7 +28512,7 @@ + return err; +} --- a/include/linux/aufs_type.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/include/linux/aufs_type.h 2012-03-11 05:01:22.570973560 +0000 ++++ b/include/linux/aufs_type.h 2012-06-04 21:49:59.858840280 +0100 @@ -0,0 +1,233 @@ +/* + * Copyright (C) 2005-2012 Junjiro R. Okajima @@ -28536,7 +28555,7 @@ + +#include + -+#define AUFS_VERSION "3.x-rcN-20120312" ++#define AUFS_VERSION "3.4-20120521" + +/* todo? move this to linux-2.6.19/include/magic.h */ +#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's') diff --git a/debian/patches/features/all/aufs3/aufs3-base.patch b/debian/patches/features/all/aufs3/aufs3-base.patch index c33659cda..d639d79bd 100644 --- a/debian/patches/features/all/aufs3/aufs3-base.patch +++ b/debian/patches/features/all/aufs3/aufs3-base.patch @@ -1,10 +1,10 @@ -aufs3.x-rcN base patch +aufs3.4 base patch diff --git a/fs/namei.c b/fs/namei.c -index e2ba628..fde8ea2 100644 +index c427919..7ff959b 100644 --- a/fs/namei.c +++ b/fs/namei.c -@@ -1781,7 +1781,7 @@ static struct dentry *__lookup_hash(struct qstr *name, +@@ -1831,7 +1831,7 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt, * needs parent already locked. Doesn't follow mounts. * SMP-safe. */ @@ -14,7 +14,7 @@ index e2ba628..fde8ea2 100644 return __lookup_hash(&nd->last, nd->path.dentry, nd); } diff --git a/fs/splice.c b/fs/splice.c -index 1ec0493..c599f73 100644 +index f847684..f871233 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -1084,8 +1084,8 @@ EXPORT_SYMBOL(generic_splice_sendpage); diff --git a/debian/patches/features/all/aufs3/aufs3-kbuild.patch b/debian/patches/features/all/aufs3/aufs3-kbuild.patch index 1f10c7843..48ce3c308 100644 --- a/debian/patches/features/all/aufs3/aufs3-kbuild.patch +++ b/debian/patches/features/all/aufs3/aufs3-kbuild.patch @@ -1,10 +1,10 @@ -aufs3.x-rcN kbuild patch +aufs3.4 kbuild patch diff --git a/fs/Kconfig b/fs/Kconfig -index d621f02..9b9694c 100644 +index f95ae3a..6d8a9a5 100644 --- a/fs/Kconfig +++ b/fs/Kconfig -@@ -215,6 +215,7 @@ source "fs/pstore/Kconfig" +@@ -220,6 +220,7 @@ source "fs/pstore/Kconfig" source "fs/sysv/Kconfig" source "fs/ufs/Kconfig" source "fs/exofs/Kconfig" @@ -13,19 +13,19 @@ index d621f02..9b9694c 100644 endif # MISC_FILESYSTEMS diff --git a/fs/Makefile b/fs/Makefile -index 93804d4..cf3dcb9 100644 +index 2fb9779..abefac5 100644 --- a/fs/Makefile +++ b/fs/Makefile -@@ -124,3 +124,4 @@ obj-$(CONFIG_GFS2_FS) += gfs2/ +@@ -125,3 +125,4 @@ obj-$(CONFIG_GFS2_FS) += gfs2/ obj-y += exofs/ # Multiple modules obj-$(CONFIG_CEPH_FS) += ceph/ obj-$(CONFIG_PSTORE) += pstore/ +obj-$(CONFIG_AUFS_FS) += aufs/ diff --git a/include/linux/Kbuild b/include/linux/Kbuild -index c94e717..fccb9df 100644 +index 3c9b616..8704efa 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild -@@ -65,6 +65,7 @@ header-y += atmppp.h +@@ -66,6 +66,7 @@ header-y += atmppp.h header-y += atmsap.h header-y += atmsvc.h header-y += audit.h diff --git a/debian/patches/features/all/aufs3/aufs3-standalone.patch b/debian/patches/features/all/aufs3/aufs3-standalone.patch index 4ae8a8ccd..9cdf3b803 100644 --- a/debian/patches/features/all/aufs3/aufs3-standalone.patch +++ b/debian/patches/features/all/aufs3/aufs3-standalone.patch @@ -1,10 +1,10 @@ -aufs3.x-rcN standalone patch +aufs3.4 standalone patch diff --git a/fs/file_table.c b/fs/file_table.c -index 20002e3..6d792ad 100644 +index 70f2a0f..146a3d7 100644 --- a/fs/file_table.c +++ b/fs/file_table.c -@@ -443,6 +443,8 @@ void file_sb_list_del(struct file *file) +@@ -442,6 +442,8 @@ void file_sb_list_del(struct file *file) } } @@ -14,10 +14,10 @@ index 20002e3..6d792ad 100644 /* diff --git a/fs/inode.c b/fs/inode.c -index d3ebdbe..6db6251 100644 +index 9f4f5fe..bb0f3ba 100644 --- a/fs/inode.c +++ b/fs/inode.c -@@ -66,6 +66,7 @@ static struct hlist_head *inode_hashtable __read_mostly; +@@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly; static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock); __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock); @@ -26,10 +26,10 @@ index d3ebdbe..6db6251 100644 /* * Empty aops. Can be used for the cases where the user does not diff --git a/fs/namei.c b/fs/namei.c -index fde8ea2..62f2302 100644 +index 7ff959b..b170167 100644 --- a/fs/namei.c +++ b/fs/namei.c -@@ -1785,6 +1785,7 @@ struct dentry *lookup_hash(struct nameidata *nd) +@@ -1835,6 +1835,7 @@ struct dentry *lookup_hash(struct nameidata *nd) { return __lookup_hash(&nd->last, nd->path.dentry, nd); } @@ -111,7 +111,7 @@ index f104d56..54f36db 100644 static int fsnotify_mark_destroy(void *ignored) { diff --git a/fs/open.c b/fs/open.c -index 77becc0..f634f02 100644 +index 5720854..ec59242 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, @@ -123,7 +123,7 @@ index 77becc0..f634f02 100644 static long do_sys_truncate(const char __user *pathname, loff_t length) { diff --git a/fs/splice.c b/fs/splice.c -index c599f73..00303ba 100644 +index f871233..70f5481 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -1108,6 +1108,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out, @@ -143,16 +143,16 @@ index c599f73..00303ba 100644 /** * splice_direct_to_actor - splices data directly between two non-pipes diff --git a/security/commoncap.c b/security/commoncap.c -index 7ce191e..19a95be 100644 +index 71a166a..5d63aac 100644 --- a/security/commoncap.c +++ b/security/commoncap.c -@@ -965,3 +965,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot, +@@ -972,3 +972,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot, } return ret; } +EXPORT_SYMBOL_GPL(cap_file_mmap); diff --git a/security/device_cgroup.c b/security/device_cgroup.c -index 8b5b5d8..911850c 100644 +index c43a332..0c37289 100644 --- a/security/device_cgroup.c +++ b/security/device_cgroup.c @@ -7,6 +7,7 @@ @@ -163,7 +163,7 @@ index 8b5b5d8..911850c 100644 #include #include #include -@@ -501,6 +502,7 @@ found: +@@ -499,6 +500,7 @@ found: return -EPERM; } @@ -172,10 +172,10 @@ index 8b5b5d8..911850c 100644 int devcgroup_inode_mknod(int mode, dev_t dev) { diff --git a/security/security.c b/security/security.c -index d754249..1aa6154 100644 +index bf619ff..60b996a 100644 --- a/security/security.c +++ b/security/security.c -@@ -392,6 +392,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry) +@@ -380,6 +380,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry) return 0; return security_ops->path_rmdir(dir, dentry); } @@ -183,7 +183,7 @@ index d754249..1aa6154 100644 int security_path_unlink(struct path *dir, struct dentry *dentry) { -@@ -408,6 +409,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry, +@@ -396,6 +397,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry, return 0; return security_ops->path_symlink(dir, dentry, old_name); } @@ -191,7 +191,7 @@ index d754249..1aa6154 100644 int security_path_link(struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) -@@ -416,6 +418,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir, +@@ -404,6 +406,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); } @@ -199,7 +199,7 @@ index d754249..1aa6154 100644 int security_path_rename(struct path *old_dir, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) -@@ -434,6 +437,7 @@ int security_path_truncate(struct path *path) +@@ -422,6 +425,7 @@ int security_path_truncate(struct path *path) return 0; return security_ops->path_truncate(path); } @@ -207,7 +207,7 @@ index d754249..1aa6154 100644 int security_path_chmod(struct path *path, umode_t mode) { -@@ -441,6 +445,7 @@ int security_path_chmod(struct path *path, umode_t mode) +@@ -429,6 +433,7 @@ int security_path_chmod(struct path *path, umode_t mode) return 0; return security_ops->path_chmod(path, mode); } @@ -215,7 +215,7 @@ index d754249..1aa6154 100644 int security_path_chown(struct path *path, uid_t uid, gid_t gid) { -@@ -448,6 +453,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid) +@@ -436,6 +441,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid) return 0; return security_ops->path_chown(path, uid, gid); } @@ -223,7 +223,7 @@ index d754249..1aa6154 100644 int security_path_chroot(struct path *path) { -@@ -524,6 +530,7 @@ int security_inode_readlink(struct dentry *dentry) +@@ -512,6 +518,7 @@ int security_inode_readlink(struct dentry *dentry) return 0; return security_ops->inode_readlink(dentry); } @@ -231,7 +231,7 @@ index d754249..1aa6154 100644 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd) { -@@ -538,6 +545,7 @@ int security_inode_permission(struct inode *inode, int mask) +@@ -526,6 +533,7 @@ int security_inode_permission(struct inode *inode, int mask) return 0; return security_ops->inode_permission(inode, mask); } @@ -239,7 +239,7 @@ index d754249..1aa6154 100644 int security_inode_setattr(struct dentry *dentry, struct iattr *attr) { -@@ -653,6 +661,7 @@ int security_file_permission(struct file *file, int mask) +@@ -641,6 +649,7 @@ int security_file_permission(struct file *file, int mask) return fsnotify_perm(file, mask); } @@ -247,7 +247,7 @@ index d754249..1aa6154 100644 int security_file_alloc(struct file *file) { -@@ -680,6 +689,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot, +@@ -668,6 +677,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot, return ret; return ima_file_mmap(file, prot); } diff --git a/debian/patches/series/base b/debian/patches/series/base index cbfa327a7..dde10cfc4 100644 --- a/debian/patches/series/base +++ b/debian/patches/series/base @@ -8,14 +8,14 @@ # Patches and source files from aufs3 repository, imported with # debian/patches/features/all/aufs3/gen-patch. -# + features/all/aufs3/aufs3-base.patch -# + features/all/aufs3/aufs3-standalone.patch -# + features/all/aufs3/aufs3-kbuild.patch -# + features/all/aufs3/aufs3-add.patch ++ features/all/aufs3/aufs3-base.patch ++ features/all/aufs3/aufs3-standalone.patch ++ features/all/aufs3/aufs3-kbuild.patch ++ features/all/aufs3/aufs3-add.patch # mark as staging/crap -# + features/all/aufs3/mark-as-staging.patch ++ features/all/aufs3/mark-as-staging.patch # fix added exports from security/device_cgroup.c -# + features/all/aufs3/aufs3-fix-export-__devcgroup_inode_permission.patch ++ features/all/aufs3/aufs3-fix-export-__devcgroup_inode_permission.patch + bugfix/ia64/hardcode-arch-script-output.patch + bugfix/mips/disable-advansys.patch