aufs: Update to aufs3.4-20120521 and reenable it
svn path=/dists/trunk/linux-2.6/; revision=19083
This commit is contained in:
parent
68ea00a33a
commit
d866f5e288
|
@ -12,6 +12,7 @@ linux-2.6 (3.4.1-1~experimental.1) UNRELEASED; urgency=low
|
||||||
|
|
||||||
[ Ben Hutchings ]
|
[ Ben Hutchings ]
|
||||||
* DFSG: Remove the new vs6624 driver, which contains non-free firmware
|
* DFSG: Remove the new vs6624 driver, which contains non-free firmware
|
||||||
|
* aufs: Update to aufs3.4-20120521
|
||||||
|
|
||||||
-- Ben Hutchings <ben@decadent.org.uk> Mon, 21 May 2012 01:37:21 +0100
|
-- Ben Hutchings <ben@decadent.org.uk> Mon, 21 May 2012 01:37:21 +0100
|
||||||
|
|
||||||
|
|
|
@ -1759,7 +1759,7 @@
|
||||||
+
|
+
|
||||||
+-include ${srctree}/${src}/conf_priv.mk
|
+-include ${srctree}/${src}/conf_priv.mk
|
||||||
--- a/fs/aufs/cpup.c 1970-01-01 01:00:00.000000000 +0100
|
--- 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 @@
|
@@ -0,0 +1,1084 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * 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
|
+ * h_inode->i_mutex is not held, but it is harmless since once i_nlink
|
||||||
+ * reaches 0, it will never become positive.
|
+ * 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.
|
+ * fewer nlink makes find(1) noisy, but larger nlink doesn't.
|
||||||
|
@ -4154,8 +4154,8 @@
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
--- a/fs/aufs/debug.h 1970-01-01 01:00:00.000000000 +0100
|
--- 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
|
+++ b/fs/aufs/debug.h 2012-06-04 21:49:59.814840078 +0100
|
||||||
@@ -0,0 +1,243 @@
|
@@ -0,0 +1,242 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
+ *
|
+ *
|
||||||
|
@ -4183,7 +4183,6 @@
|
||||||
+
|
+
|
||||||
+#ifdef __KERNEL__
|
+#ifdef __KERNEL__
|
||||||
+
|
+
|
||||||
+#include <asm/system.h>
|
|
||||||
+#include <linux/module.h>
|
+#include <linux/module.h>
|
||||||
+#include <linux/kallsyms.h>
|
+#include <linux/kallsyms.h>
|
||||||
+#include <linux/sysrq.h>
|
+#include <linux/sysrq.h>
|
||||||
|
@ -6329,7 +6328,7 @@
|
||||||
+ return -1;
|
+ return -1;
|
||||||
+}
|
+}
|
||||||
--- a/fs/aufs/dir.c 1970-01-01 01:00:00.000000000 +0100
|
--- 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 @@
|
@@ -0,0 +1,636 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
|
@ -6367,7 +6366,7 @@
|
||||||
+ if (h_dir->i_nlink < 2)
|
+ if (h_dir->i_nlink < 2)
|
||||||
+ nlink += 2;
|
+ nlink += 2;
|
||||||
+ /* 0 can happen in revaliding */
|
+ /* 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)
|
+void au_sub_nlink(struct inode *dir, struct inode *h_dir)
|
||||||
|
@ -6380,7 +6379,7 @@
|
||||||
+ nlink -= h_dir->i_nlink - 2;
|
+ nlink -= h_dir->i_nlink - 2;
|
||||||
+ if (h_dir->i_nlink < 2)
|
+ if (h_dir->i_nlink < 2)
|
||||||
+ 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);
|
+ set_nlink(dir, nlink);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
@ -7567,7 +7566,7 @@
|
||||||
+#endif /* __KERNEL__ */
|
+#endif /* __KERNEL__ */
|
||||||
+#endif /* __AUFS_DYNOP_H__ */
|
+#endif /* __AUFS_DYNOP_H__ */
|
||||||
--- a/fs/aufs/export.c 1970-01-01 01:00:00.000000000 +0100
|
--- 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 @@
|
@@ -0,0 +1,803 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
|
@ -9406,7 +9405,7 @@
|
||||||
+ return ret;
|
+ return ret;
|
||||||
+}
|
+}
|
||||||
--- a/fs/aufs/file.c 1970-01-01 01:00:00.000000000 +0100
|
--- 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 @@
|
@@ -0,0 +1,676 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
|
@ -12082,8 +12081,8 @@
|
||||||
+ au_hn_destroy_cache();
|
+ au_hn_destroy_cache();
|
||||||
+}
|
+}
|
||||||
--- a/fs/aufs/i_op.c 1970-01-01 01:00:00.000000000 +0100
|
--- 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
|
+++ b/fs/aufs/i_op.c 2012-06-04 21:49:59.854840268 +0100
|
||||||
@@ -0,0 +1,992 @@
|
@@ -0,0 +1,993 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
+ *
|
+ *
|
||||||
|
@ -12108,6 +12107,7 @@
|
||||||
+
|
+
|
||||||
+#include <linux/device_cgroup.h>
|
+#include <linux/device_cgroup.h>
|
||||||
+#include <linux/fs_stack.h>
|
+#include <linux/fs_stack.h>
|
||||||
|
+#include <linux/mm.h>
|
||||||
+#include <linux/namei.h>
|
+#include <linux/namei.h>
|
||||||
+#include <linux/security.h>
|
+#include <linux/security.h>
|
||||||
+#include "aufs.h"
|
+#include "aufs.h"
|
||||||
|
@ -12850,7 +12850,7 @@
|
||||||
+ n -= nlink;
|
+ n -= nlink;
|
||||||
+ n += st->nlink;
|
+ n += st->nlink;
|
||||||
+ /* 0 can happen */
|
+ /* 0 can happen */
|
||||||
+ vfsub_set_nlink(inode, n);
|
+ set_nlink(inode, n);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ spin_lock(&inode->i_lock);
|
+ spin_lock(&inode->i_lock);
|
||||||
|
@ -13077,7 +13077,7 @@
|
||||||
+ .truncate_range = aufs_truncate_range
|
+ .truncate_range = aufs_truncate_range
|
||||||
+};
|
+};
|
||||||
--- a/fs/aufs/i_op_add.c 1970-01-01 01:00:00.000000000 +0100
|
--- 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 @@
|
@@ -0,0 +1,712 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
|
@ -16043,7 +16043,7 @@
|
||||||
+ return au_test_h_perm(h_inode, mask);
|
+ return au_test_h_perm(h_inode, mask);
|
||||||
+}
|
+}
|
||||||
--- a/fs/aufs/inode.h 1970-01-01 01:00:00.000000000 +0100
|
--- 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 @@
|
@@ -0,0 +1,560 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
|
@ -20000,8 +20000,8 @@
|
||||||
+ return err;
|
+ return err;
|
||||||
+}
|
+}
|
||||||
--- a/fs/aufs/rdu.c 1970-01-01 01:00:00.000000000 +0100
|
--- 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
|
+++ b/fs/aufs/rdu.c 2012-06-04 21:49:59.854840268 +0100
|
||||||
@@ -0,0 +1,383 @@
|
@@ -0,0 +1,384 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
+ *
|
+ *
|
||||||
|
@ -20099,6 +20099,7 @@
|
||||||
+ loff_t offset;
|
+ loff_t offset;
|
||||||
+ struct au_rdu_cookie *cookie = &arg->rdu->cookie;
|
+ 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);
|
+ offset = vfsub_llseek(h_file, cookie->h_pos, SEEK_SET);
|
||||||
+ err = offset;
|
+ err = offset;
|
||||||
+ if (unlikely(offset != cookie->h_pos))
|
+ if (unlikely(offset != cookie->h_pos))
|
||||||
|
@ -20988,8 +20989,8 @@
|
||||||
+#endif /* __KERNEL__ */
|
+#endif /* __KERNEL__ */
|
||||||
+#endif /* __AUFS_SPL_H__ */
|
+#endif /* __AUFS_SPL_H__ */
|
||||||
--- a/fs/aufs/super.c 1970-01-01 01:00:00.000000000 +0100
|
--- 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
|
+++ b/fs/aufs/super.c 2012-06-04 21:49:59.854840268 +0100
|
||||||
@@ -0,0 +1,936 @@
|
@@ -0,0 +1,962 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
+ *
|
+ *
|
||||||
|
@ -21295,7 +21296,18 @@
|
||||||
+
|
+
|
||||||
+ old = a;
|
+ old = a;
|
||||||
+ a += b;
|
+ 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 a;
|
||||||
+ return ULLONG_MAX;
|
+ return ULLONG_MAX;
|
||||||
+}
|
+}
|
||||||
|
@ -21303,25 +21315,26 @@
|
||||||
+static int au_statfs_sum(struct super_block *sb, struct kstatfs *buf)
|
+static int au_statfs_sum(struct super_block *sb, struct kstatfs *buf)
|
||||||
+{
|
+{
|
||||||
+ int err;
|
+ int err;
|
||||||
|
+ long bsize, factor;
|
||||||
+ u64 blocks, bfree, bavail, files, ffree;
|
+ u64 blocks, bfree, bavail, files, ffree;
|
||||||
+ aufs_bindex_t bend, bindex, i;
|
+ aufs_bindex_t bend, bindex, i;
|
||||||
+ unsigned char shared;
|
+ unsigned char shared;
|
||||||
+ struct path h_path;
|
+ struct path h_path;
|
||||||
+ struct super_block *h_sb;
|
+ struct super_block *h_sb;
|
||||||
+
|
+
|
||||||
|
+ err = 0;
|
||||||
|
+ bsize = LONG_MAX;
|
||||||
|
+ files = 0;
|
||||||
|
+ ffree = 0;
|
||||||
+ blocks = 0;
|
+ blocks = 0;
|
||||||
+ bfree = 0;
|
+ bfree = 0;
|
||||||
+ bavail = 0;
|
+ bavail = 0;
|
||||||
+ files = 0;
|
|
||||||
+ ffree = 0;
|
|
||||||
+
|
|
||||||
+ err = 0;
|
|
||||||
+ bend = au_sbend(sb);
|
+ 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_path.mnt = au_sbr_mnt(sb, bindex);
|
||||||
+ h_sb = h_path.mnt->mnt_sb;
|
+ h_sb = h_path.mnt->mnt_sb;
|
||||||
+ shared = 0;
|
+ 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);
|
+ shared = (au_sbr_sb(sb, i) == h_sb);
|
||||||
+ if (shared)
|
+ if (shared)
|
||||||
+ continue;
|
+ continue;
|
||||||
|
@ -21332,18 +21345,36 @@
|
||||||
+ if (unlikely(err))
|
+ if (unlikely(err))
|
||||||
+ goto out;
|
+ goto out;
|
||||||
+
|
+
|
||||||
+ blocks = au_add_till_max(blocks, buf->f_blocks);
|
+ if (bsize > buf->f_bsize) {
|
||||||
+ bfree = au_add_till_max(bfree, buf->f_bfree);
|
+ /*
|
||||||
+ bavail = au_add_till_max(bavail, buf->f_bavail);
|
+ * 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);
|
+ files = au_add_till_max(files, buf->f_files);
|
||||||
+ ffree = au_add_till_max(ffree, buf->f_ffree);
|
+ ffree = au_add_till_max(ffree, buf->f_ffree);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
+ buf->f_bsize = bsize;
|
||||||
+ buf->f_blocks = blocks;
|
+ buf->f_blocks = blocks;
|
||||||
+ buf->f_bfree = bfree;
|
+ buf->f_bfree = bfree;
|
||||||
+ buf->f_bavail = bavail;
|
+ buf->f_bavail = bavail;
|
||||||
+ buf->f_files = files;
|
+ buf->f_files = files;
|
||||||
+ buf->f_ffree = ffree;
|
+ buf->f_ffree = ffree;
|
||||||
|
+ buf->f_frsize = 0;
|
||||||
+
|
+
|
||||||
+out:
|
+out:
|
||||||
+ return err;
|
+ return err;
|
||||||
|
@ -21765,12 +21796,12 @@
|
||||||
+ set_nlink(inode, 2);
|
+ set_nlink(inode, 2);
|
||||||
+ unlock_new_inode(inode);
|
+ unlock_new_inode(inode);
|
||||||
+
|
+
|
||||||
+ root = d_alloc_root(inode);
|
+ root = d_make_root(inode);
|
||||||
+ if (unlikely(!root))
|
+ if (unlikely(!root))
|
||||||
+ goto out_iput;
|
+ goto out;
|
||||||
+ err = PTR_ERR(root);
|
+ err = PTR_ERR(root);
|
||||||
+ if (IS_ERR(root))
|
+ if (IS_ERR(root))
|
||||||
+ goto out_iput;
|
+ goto out;
|
||||||
+
|
+
|
||||||
+ err = au_di_init(root);
|
+ err = au_di_init(root);
|
||||||
+ if (!err) {
|
+ if (!err) {
|
||||||
|
@ -21778,13 +21809,9 @@
|
||||||
+ return 0; /* success */
|
+ return 0; /* success */
|
||||||
+ }
|
+ }
|
||||||
+ dput(root);
|
+ dput(root);
|
||||||
+ goto out; /* do not iput */
|
|
||||||
+
|
+
|
||||||
+out_iput:
|
|
||||||
+ iget_failed(inode);
|
|
||||||
+out:
|
+out:
|
||||||
+ return err;
|
+ return err;
|
||||||
+
|
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static int aufs_fill_super(struct super_block *sb, void *raw_data,
|
+static int aufs_fill_super(struct super_block *sb, void *raw_data,
|
||||||
|
@ -23990,7 +24017,7 @@
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
--- a/fs/aufs/vfsub.c 1970-01-01 01:00:00.000000000 +0100
|
--- 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 @@
|
@@ -0,0 +1,832 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
|
@ -24825,8 +24852,8 @@
|
||||||
+ return err;
|
+ return err;
|
||||||
+}
|
+}
|
||||||
--- a/fs/aufs/vfsub.h 1970-01-01 01:00:00.000000000 +0100
|
--- 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
|
+++ b/fs/aufs/vfsub.h 2012-06-04 21:49:59.858840280 +0100
|
||||||
@@ -0,0 +1,240 @@
|
@@ -0,0 +1,232 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
+ *
|
+ *
|
||||||
|
@ -24929,14 +24956,6 @@
|
||||||
+ clear_nlink(inode);
|
+ 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);
|
+int vfsub_update_h_iattr(struct path *h_path, int *did);
|
||||||
|
@ -25004,7 +25023,7 @@
|
||||||
+ .dentry = h_dentry,
|
+ .dentry = h_dentry,
|
||||||
+ .mnt = h_mnt
|
+ .mnt = h_mnt
|
||||||
+ };
|
+ };
|
||||||
+ touch_atime(h_mnt, h_dentry);
|
+ touch_atime(&h_path);
|
||||||
+ vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/
|
+ vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
@ -28493,7 +28512,7 @@
|
||||||
+ return err;
|
+ return err;
|
||||||
+}
|
+}
|
||||||
--- a/include/linux/aufs_type.h 1970-01-01 01:00:00.000000000 +0100
|
--- 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 @@
|
@@ -0,0 +1,233 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||||
|
@ -28536,7 +28555,7 @@
|
||||||
+
|
+
|
||||||
+#include <linux/limits.h>
|
+#include <linux/limits.h>
|
||||||
+
|
+
|
||||||
+#define AUFS_VERSION "3.x-rcN-20120312"
|
+#define AUFS_VERSION "3.4-20120521"
|
||||||
+
|
+
|
||||||
+/* todo? move this to linux-2.6.19/include/magic.h */
|
+/* todo? move this to linux-2.6.19/include/magic.h */
|
||||||
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
|
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
aufs3.x-rcN base patch
|
aufs3.4 base patch
|
||||||
|
|
||||||
diff --git a/fs/namei.c b/fs/namei.c
|
diff --git a/fs/namei.c b/fs/namei.c
|
||||||
index e2ba628..fde8ea2 100644
|
index c427919..7ff959b 100644
|
||||||
--- a/fs/namei.c
|
--- a/fs/namei.c
|
||||||
+++ b/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.
|
* needs parent already locked. Doesn't follow mounts.
|
||||||
* SMP-safe.
|
* SMP-safe.
|
||||||
*/
|
*/
|
||||||
|
@ -14,7 +14,7 @@ index e2ba628..fde8ea2 100644
|
||||||
return __lookup_hash(&nd->last, nd->path.dentry, nd);
|
return __lookup_hash(&nd->last, nd->path.dentry, nd);
|
||||||
}
|
}
|
||||||
diff --git a/fs/splice.c b/fs/splice.c
|
diff --git a/fs/splice.c b/fs/splice.c
|
||||||
index 1ec0493..c599f73 100644
|
index f847684..f871233 100644
|
||||||
--- a/fs/splice.c
|
--- a/fs/splice.c
|
||||||
+++ b/fs/splice.c
|
+++ b/fs/splice.c
|
||||||
@@ -1084,8 +1084,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
|
@@ -1084,8 +1084,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
aufs3.x-rcN kbuild patch
|
aufs3.4 kbuild patch
|
||||||
|
|
||||||
diff --git a/fs/Kconfig b/fs/Kconfig
|
diff --git a/fs/Kconfig b/fs/Kconfig
|
||||||
index d621f02..9b9694c 100644
|
index f95ae3a..6d8a9a5 100644
|
||||||
--- a/fs/Kconfig
|
--- a/fs/Kconfig
|
||||||
+++ b/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/sysv/Kconfig"
|
||||||
source "fs/ufs/Kconfig"
|
source "fs/ufs/Kconfig"
|
||||||
source "fs/exofs/Kconfig"
|
source "fs/exofs/Kconfig"
|
||||||
|
@ -13,19 +13,19 @@ index d621f02..9b9694c 100644
|
||||||
endif # MISC_FILESYSTEMS
|
endif # MISC_FILESYSTEMS
|
||||||
|
|
||||||
diff --git a/fs/Makefile b/fs/Makefile
|
diff --git a/fs/Makefile b/fs/Makefile
|
||||||
index 93804d4..cf3dcb9 100644
|
index 2fb9779..abefac5 100644
|
||||||
--- a/fs/Makefile
|
--- a/fs/Makefile
|
||||||
+++ b/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-y += exofs/ # Multiple modules
|
||||||
obj-$(CONFIG_CEPH_FS) += ceph/
|
obj-$(CONFIG_CEPH_FS) += ceph/
|
||||||
obj-$(CONFIG_PSTORE) += pstore/
|
obj-$(CONFIG_PSTORE) += pstore/
|
||||||
+obj-$(CONFIG_AUFS_FS) += aufs/
|
+obj-$(CONFIG_AUFS_FS) += aufs/
|
||||||
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
|
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
|
||||||
index c94e717..fccb9df 100644
|
index 3c9b616..8704efa 100644
|
||||||
--- a/include/linux/Kbuild
|
--- a/include/linux/Kbuild
|
||||||
+++ b/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 += atmsap.h
|
||||||
header-y += atmsvc.h
|
header-y += atmsvc.h
|
||||||
header-y += audit.h
|
header-y += audit.h
|
||||||
|
|
|
@ -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
|
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
|
--- a/fs/file_table.c
|
||||||
+++ b/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
|
diff --git a/fs/inode.c b/fs/inode.c
|
||||||
index d3ebdbe..6db6251 100644
|
index 9f4f5fe..bb0f3ba 100644
|
||||||
--- a/fs/inode.c
|
--- a/fs/inode.c
|
||||||
+++ b/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);
|
static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
|
||||||
|
|
||||||
__cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_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
|
* Empty aops. Can be used for the cases where the user does not
|
||||||
diff --git a/fs/namei.c b/fs/namei.c
|
diff --git a/fs/namei.c b/fs/namei.c
|
||||||
index fde8ea2..62f2302 100644
|
index 7ff959b..b170167 100644
|
||||||
--- a/fs/namei.c
|
--- a/fs/namei.c
|
||||||
+++ b/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);
|
return __lookup_hash(&nd->last, nd->path.dentry, nd);
|
||||||
}
|
}
|
||||||
|
@ -111,7 +111,7 @@ index f104d56..54f36db 100644
|
||||||
static int fsnotify_mark_destroy(void *ignored)
|
static int fsnotify_mark_destroy(void *ignored)
|
||||||
{
|
{
|
||||||
diff --git a/fs/open.c b/fs/open.c
|
diff --git a/fs/open.c b/fs/open.c
|
||||||
index 77becc0..f634f02 100644
|
index 5720854..ec59242 100644
|
||||||
--- a/fs/open.c
|
--- a/fs/open.c
|
||||||
+++ b/fs/open.c
|
+++ b/fs/open.c
|
||||||
@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
|
@@ -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)
|
static long do_sys_truncate(const char __user *pathname, loff_t length)
|
||||||
{
|
{
|
||||||
diff --git a/fs/splice.c b/fs/splice.c
|
diff --git a/fs/splice.c b/fs/splice.c
|
||||||
index c599f73..00303ba 100644
|
index f871233..70f5481 100644
|
||||||
--- a/fs/splice.c
|
--- a/fs/splice.c
|
||||||
+++ b/fs/splice.c
|
+++ b/fs/splice.c
|
||||||
@@ -1108,6 +1108,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
|
@@ -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
|
* splice_direct_to_actor - splices data directly between two non-pipes
|
||||||
diff --git a/security/commoncap.c b/security/commoncap.c
|
diff --git a/security/commoncap.c b/security/commoncap.c
|
||||||
index 7ce191e..19a95be 100644
|
index 71a166a..5d63aac 100644
|
||||||
--- a/security/commoncap.c
|
--- a/security/commoncap.c
|
||||||
+++ b/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;
|
return ret;
|
||||||
}
|
}
|
||||||
+EXPORT_SYMBOL_GPL(cap_file_mmap);
|
+EXPORT_SYMBOL_GPL(cap_file_mmap);
|
||||||
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
|
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
|
--- a/security/device_cgroup.c
|
||||||
+++ b/security/device_cgroup.c
|
+++ b/security/device_cgroup.c
|
||||||
@@ -7,6 +7,7 @@
|
@@ -7,6 +7,7 @@
|
||||||
|
@ -163,7 +163,7 @@ index 8b5b5d8..911850c 100644
|
||||||
#include <linux/list.h>
|
#include <linux/list.h>
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
@@ -501,6 +502,7 @@ found:
|
@@ -499,6 +500,7 @@ found:
|
||||||
|
|
||||||
return -EPERM;
|
return -EPERM;
|
||||||
}
|
}
|
||||||
|
@ -172,10 +172,10 @@ index 8b5b5d8..911850c 100644
|
||||||
int devcgroup_inode_mknod(int mode, dev_t dev)
|
int devcgroup_inode_mknod(int mode, dev_t dev)
|
||||||
{
|
{
|
||||||
diff --git a/security/security.c b/security/security.c
|
diff --git a/security/security.c b/security/security.c
|
||||||
index d754249..1aa6154 100644
|
index bf619ff..60b996a 100644
|
||||||
--- a/security/security.c
|
--- a/security/security.c
|
||||||
+++ b/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 0;
|
||||||
return security_ops->path_rmdir(dir, dentry);
|
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)
|
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 0;
|
||||||
return security_ops->path_symlink(dir, dentry, old_name);
|
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,
|
int security_path_link(struct dentry *old_dentry, struct path *new_dir,
|
||||||
struct dentry *new_dentry)
|
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 0;
|
||||||
return security_ops->path_link(old_dentry, new_dir, new_dentry);
|
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,
|
int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
|
||||||
struct path *new_dir, struct dentry *new_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 0;
|
||||||
return security_ops->path_truncate(path);
|
return security_ops->path_truncate(path);
|
||||||
}
|
}
|
||||||
|
@ -207,7 +207,7 @@ index d754249..1aa6154 100644
|
||||||
|
|
||||||
int security_path_chmod(struct path *path, umode_t mode)
|
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 0;
|
||||||
return security_ops->path_chmod(path, mode);
|
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)
|
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 0;
|
||||||
return security_ops->path_chown(path, uid, gid);
|
return security_ops->path_chown(path, uid, gid);
|
||||||
}
|
}
|
||||||
|
@ -223,7 +223,7 @@ index d754249..1aa6154 100644
|
||||||
|
|
||||||
int security_path_chroot(struct path *path)
|
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 0;
|
||||||
return security_ops->inode_readlink(dentry);
|
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)
|
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 0;
|
||||||
return security_ops->inode_permission(inode, mask);
|
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)
|
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);
|
return fsnotify_perm(file, mask);
|
||||||
}
|
}
|
||||||
|
@ -247,7 +247,7 @@ index d754249..1aa6154 100644
|
||||||
|
|
||||||
int security_file_alloc(struct file *file)
|
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 ret;
|
||||||
return ima_file_mmap(file, prot);
|
return ima_file_mmap(file, prot);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,14 +8,14 @@
|
||||||
|
|
||||||
# Patches and source files from aufs3 repository, imported with
|
# Patches and source files from aufs3 repository, imported with
|
||||||
# debian/patches/features/all/aufs3/gen-patch.
|
# debian/patches/features/all/aufs3/gen-patch.
|
||||||
# + features/all/aufs3/aufs3-base.patch
|
+ features/all/aufs3/aufs3-base.patch
|
||||||
# + features/all/aufs3/aufs3-standalone.patch
|
+ features/all/aufs3/aufs3-standalone.patch
|
||||||
# + features/all/aufs3/aufs3-kbuild.patch
|
+ features/all/aufs3/aufs3-kbuild.patch
|
||||||
# + features/all/aufs3/aufs3-add.patch
|
+ features/all/aufs3/aufs3-add.patch
|
||||||
# mark as staging/crap
|
# 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
|
# 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/ia64/hardcode-arch-script-output.patch
|
||||||
+ bugfix/mips/disable-advansys.patch
|
+ bugfix/mips/disable-advansys.patch
|
||||||
|
|
Loading…
Reference in New Issue