aufs2: Update to snapshot from 2009-11-29

svn path=/dists/trunk/linux-2.6/; revision=14739
This commit is contained in:
Ben Hutchings 2009-12-06 16:11:08 +00:00
parent 0b341dcbb3
commit bd182f9598
7 changed files with 134 additions and 104 deletions

1
debian/changelog vendored
View File

@ -41,6 +41,7 @@ linux-2.6 (2.6.32-1) UNRELEASED; urgency=low
case they are also buggy
* usbnet: Set link down initially for drivers that update link state
(Closes: #444043)
* aufs2: Update to snapshot from 2009-11-29
[ dann frazier ]
* mac80211 (CVE-2009-4026, CVE-2009-4027):

View File

@ -1,15 +0,0 @@
From: Ben Hutchings <ben@decadent.org.uk>
Subject: [PATCH] aufs2: Remove incorrect static assertion
This should allow aufs2 to build on alpha.
--- a/fs/aufs/vdir.c
+++ b/fs/aufs/vdir.c
@@ -25,7 +25,6 @@
static unsigned int calc_size(int nlen)
{
- BUILD_BUG_ON(sizeof(ino_t) != sizeof(long));
return ALIGN(sizeof(struct au_vdir_de) + nlen, sizeof(ino_t));
}

View File

@ -242,10 +242,10 @@ index 0000000..96307bb
+#endif /* __AUFS_H__ */
diff --git a/fs/aufs/branch.c b/fs/aufs/branch.c
new file mode 100644
index 0000000..102786d
index 0000000..bb7ad86
--- /dev/null
+++ b/fs/aufs/branch.c
@@ -0,0 +1,970 @@
@@ -0,0 +1,988 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -269,6 +269,7 @@ index 0000000..102786d
+ */
+
+#include <linux/file.h>
+#include <linux/statfs.h>
+#include "aufs.h"
+
+/*
@ -544,7 +545,9 @@ index 0000000..102786d
+ int perm, struct path *path)
+{
+ int err;
+ struct kstatfs kst;
+ struct au_wbr *wbr;
+ struct dentry *h_dentry;
+
+ wbr = br->br_wbr;
+ au_rw_init(&wbr->wbr_wh_rwsem);
@ -552,8 +555,23 @@ index 0000000..102786d
+ atomic_set(&wbr->wbr_wh_running, 0);
+ wbr->wbr_bytes = 0;
+
+ err = au_br_init_wh(sb, br, perm, path->dentry);
+ /*
+ * a limit for rmdir/rename a dir
+ * cf. AUFS_MAX_NAMELEN in include/linux/aufs_type.h
+ */
+ h_dentry = path->dentry;
+ err = vfs_statfs(h_dentry, &kst);
+ if (unlikely(err))
+ goto out;
+ err = -EINVAL;
+ if (kst.f_namelen >= NAME_MAX)
+ err = au_br_init_wh(sb, br, perm, h_dentry);
+ else
+ pr_err("%.*s(%s), unsupported namelen %ld\n",
+ AuDLNPair(h_dentry), au_sbtype(h_dentry->d_sb),
+ kst.f_namelen);
+
+ out:
+ return err;
+}
+
@ -4032,10 +4050,10 @@ index 0000000..312e1af
+#endif /* __AUFS_DEBUG_H__ */
diff --git a/fs/aufs/dentry.c b/fs/aufs/dentry.c
new file mode 100644
index 0000000..8bf218b
index 0000000..28525d4
--- /dev/null
+++ b/fs/aufs/dentry.c
@@ -0,0 +1,879 @@
@@ -0,0 +1,880 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -4108,6 +4126,7 @@ index 0000000..8bf218b
+ path_put(&h_nd.path);
+ }
+
+ AuTraceErrPtr(h_dentry);
+ return h_dentry;
+}
+
@ -7011,10 +7030,10 @@ index 0000000..5b5c2c4
+}
diff --git a/fs/aufs/f_op.c b/fs/aufs/f_op.c
new file mode 100644
index 0000000..1065559
index 0000000..7601012
--- /dev/null
+++ b/fs/aufs/f_op.c
@@ -0,0 +1,826 @@
@@ -0,0 +1,827 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -7515,7 +7534,8 @@ index 0000000..1065559
+ if (unlikely(err))
+ goto out;
+
+ vm_ops = vma->vm_ops;
+ /* oops, it became 'const' */
+ vm_ops = (struct vm_operations_struct *)vma->vm_ops;
+ err = do_munmap(current->mm, vma->vm_start,
+ vma->vm_end - vma->vm_start);
+ if (unlikely(err)) {
@ -7843,10 +7863,10 @@ index 0000000..1065559
+};
diff --git a/fs/aufs/file.c b/fs/aufs/file.c
new file mode 100644
index 0000000..5821834
index 0000000..a4f33aa
--- /dev/null
+++ b/fs/aufs/file.c
@@ -0,0 +1,587 @@
@@ -0,0 +1,591 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -8412,6 +8432,9 @@ index 0000000..5821834
+ read_descriptor_t *desc,
+ unsigned long from)
+{ AuUnsupport(); return 0; }
+static int aufs_error_remove_page(struct address_space *mapping,
+ struct page *page)
+{ AuUnsupport(); return 0; }
+#endif /* CONFIG_AUFS_DEBUG */
+
+struct address_space_operations aufs_aop = {
@ -8431,7 +8454,8 @@ index 0000000..5821834
+ .get_xip_mem = aufs_get_xip_mem, /* todo */
+ .migratepage = aufs_migratepage,
+ .launder_page = aufs_launder_page,
+ .is_partially_uptodate = aufs_is_partially_uptodate
+ .is_partially_uptodate = aufs_is_partially_uptodate,
+ .error_remove_page = aufs_error_remove_page
+#endif /* CONFIG_AUFS_DEBUG */
+};
diff --git a/fs/aufs/file.h b/fs/aufs/file.h
@ -10891,10 +10915,10 @@ index 0000000..a7f3bc7
+};
diff --git a/fs/aufs/i_op_add.c b/fs/aufs/i_op_add.c
new file mode 100644
index 0000000..39b7a48
index 0000000..813890f
--- /dev/null
+++ b/fs/aufs/i_op_add.c
@@ -0,0 +1,649 @@
@@ -0,0 +1,658 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -10990,6 +11014,10 @@ index 0000000..39b7a48
+ struct dentry *h_dentry;
+ struct inode *h_inode;
+
+ err = -ENAMETOOLONG;
+ if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN))
+ goto out;
+
+ h_dentry = au_h_dptr(dentry, bindex);
+ h_inode = h_dentry->d_inode;
+ if (!dentry->d_inode) {
@ -11020,6 +11048,7 @@ index 0000000..39b7a48
+ err = 0;
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
@ -11040,6 +11069,8 @@ index 0000000..39b7a48
+ unsigned int udba;
+ aufs_bindex_t bcpup;
+
+ AuDbg("%.*s\n", AuDLNPair(dentry));
+
+ err = au_wr_dir(dentry, src_dentry, wr_dir_args);
+ bcpup = err;
+ wh_dentry = ERR_PTR(err);
@ -11056,13 +11087,14 @@ index 0000000..39b7a48
+
+ h_parent = au_pinned_h_parent(pin);
+ if (udba != AuOpt_UDBA_NONE
+ && au_dbstart(dentry) == bcpup) {
+ && au_dbstart(dentry) == bcpup)
+ err = au_may_add(dentry, bcpup, h_parent,
+ au_ftest_wrdir(wr_dir_args->flags, ISDIR));
+ wh_dentry = ERR_PTR(err);
+ if (unlikely(err))
+ goto out_unpin;
+ }
+ else if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN))
+ err = -ENAMETOOLONG;
+ wh_dentry = ERR_PTR(err);
+ if (unlikely(err))
+ goto out_unpin;
+
+ br = au_sbr(sb, bcpup);
+ if (dt) {
@ -11122,6 +11154,7 @@ index 0000000..39b7a48
+ .flags = AuWrDir_ADD_ENTRY
+ };
+
+ AuDbg("%.*s\n", AuDLNPair(dentry));
+ IMustLock(dir);
+
+ parent = dentry->d_parent; /* dir inode is locked */
@ -11546,10 +11579,10 @@ index 0000000..39b7a48
+}
diff --git a/fs/aufs/i_op_del.c b/fs/aufs/i_op_del.c
new file mode 100644
index 0000000..c0ee77d
index 0000000..d47ddfb
--- /dev/null
+++ b/fs/aufs/i_op_del.c
@@ -0,0 +1,468 @@
@@ -0,0 +1,470 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -11801,6 +11834,7 @@ index 0000000..c0ee77d
+ }
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
@ -12016,14 +12050,15 @@ index 0000000..c0ee77d
+ out_unlock:
+ aufs_read_unlock(dentry, AuLock_DW);
+ out:
+ AuTraceErr(err);
+ return err;
+}
diff --git a/fs/aufs/i_op_ren.c b/fs/aufs/i_op_ren.c
new file mode 100644
index 0000000..9a81ffb
index 0000000..b107f93
--- /dev/null
+++ b/fs/aufs/i_op_ren.c
@@ -0,0 +1,957 @@
@@ -0,0 +1,961 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -12601,6 +12636,7 @@ index 0000000..9a81ffb
+ out:
+ if (unlikely(err == -ENOENT || err == -EEXIST))
+ err = -EIO;
+ AuTraceErr(err);
+ return err;
+}
+
@ -12849,6 +12885,7 @@ index 0000000..9a81ffb
+ /* reduce stack space */
+ struct au_ren_args *a;
+
+ AuDbg("%.*s, %.*s\n", AuDLNPair(_src_dentry), AuDLNPair(_dst_dentry));
+ IMustLock(_src_dir);
+ IMustLock(_dst_dir);
+
@ -12933,11 +12970,12 @@ index 0000000..9a81ffb
+ if (unlikely(err))
+ goto out_children;
+
+ if (!au_opt_test(au_mntflags(a->dst_dir->i_sb), UDBA_NONE)) {
+ if (!au_opt_test(au_mntflags(a->dst_dir->i_sb), UDBA_NONE))
+ err = au_may_ren(a);
+ if (unlikely(err))
+ goto out_hdir;
+ }
+ else if (unlikely(a->dst_dentry->d_name.len > AUFS_MAX_NAMELEN))
+ err = -ENAMETOOLONG;
+ if (unlikely(err))
+ goto out_hdir;
+
+ /* store timestamps to be revertible */
+ au_ren_dt(a);
@ -12979,6 +13017,7 @@ index 0000000..9a81ffb
+ au_whtmp_rmdir_free(a->thargs);
+ kfree(a);
+ out:
+ AuTraceErr(err);
+ return err;
+}
diff --git a/fs/aufs/iinfo.c b/fs/aufs/iinfo.c
@ -14366,10 +14405,10 @@ index 0000000..5a0fd87
+#endif /* __AUFS_LOOP_H__ */
diff --git a/fs/aufs/magic.mk b/fs/aufs/magic.mk
new file mode 100644
index 0000000..83d613c
index 0000000..1e55221
--- /dev/null
+++ b/fs/aufs/magic.mk
@@ -0,0 +1,52 @@
@@ -0,0 +1,48 @@
+
+# defined in ${srctree}/fs/fuse/inode.c
+# tristate
@ -14389,10 +14428,6 @@ index 0000000..83d613c
+ccflags-y += -DDLMFS_MAGIC=0x76a9f425
+endif
+
+# defined in ${srctree}/fs/ramfs/inode.c
+# always true
+ccflags-y += -DRAMFS_MAGIC=0x858458f6
+
+# defined in ${srctree}/fs/cifs/cifsfs.c
+# tristate
+ifdef CONFIG_CIFS_FS
@ -14688,10 +14723,10 @@ index 0000000..cea7bc7
+#endif /* __AUFS_MODULE_H__ */
diff --git a/fs/aufs/opts.c b/fs/aufs/opts.c
new file mode 100644
index 0000000..7e936b8
index 0000000..4d9b60f
--- /dev/null
+++ b/fs/aufs/opts.c
@@ -0,0 +1,1546 @@
@@ -0,0 +1,1549 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -14877,7 +14912,7 @@ index 0000000..7e936b8
+ {AuBrPerm_RO, NULL}
+};
+
+static int br_perm_val(char *perm)
+static int noinline_for_stack br_perm_val(char *perm)
+{
+ int val;
+ substring_t args[MAX_OPT_ARGS];
@ -14902,7 +14937,7 @@ index 0000000..7e936b8
+ {-1, NULL}
+};
+
+static int udba_val(char *str)
+static int noinline_for_stack udba_val(char *str)
+{
+ substring_t args[MAX_OPT_ARGS];
+
@ -14939,7 +14974,8 @@ index 0000000..7e936b8
+ * gave up calling memparse() since it uses simple_strtoull() instead of
+ * strict_...().
+ */
+static int au_match_ull(substring_t *s, unsigned long long *result)
+static int noinline_for_stack
+au_match_ull(substring_t *s, unsigned long long *result)
+{
+ int err;
+ unsigned int len;
@ -14988,7 +15024,8 @@ index 0000000..7e936b8
+ return err;
+}
+
+static int au_wbr_create_val(char *str, struct au_opt_wbr_create *create)
+static int noinline_for_stack
+au_wbr_create_val(char *str, struct au_opt_wbr_create *create)
+{
+ int err, e;
+ substring_t args[MAX_OPT_ARGS];
@ -15040,7 +15077,7 @@ index 0000000..7e936b8
+ {-1, NULL}
+};
+
+static int au_wbr_copyup_val(char *str)
+static int noinline_for_stack au_wbr_copyup_val(char *str)
+{
+ substring_t args[MAX_OPT_ARGS];
+
@ -15335,7 +15372,8 @@ index 0000000..7e936b8
+}
+#endif
+
+static int au_opts_parse_mod(struct au_opt_mod *mod, substring_t args[])
+static int noinline_for_stack
+au_opts_parse_mod(struct au_opt_mod *mod, substring_t args[])
+{
+ int err;
+ struct path path;
@ -15418,10 +15456,10 @@ index 0000000..7e936b8
+ return err;
+}
+
+static
+int au_opts_parse_xino_itrunc_path(struct super_block *sb,
+ struct au_opt_xino_itrunc *xino_itrunc,
+ substring_t args[])
+static int noinline_for_stack
+au_opts_parse_xino_itrunc_path(struct super_block *sb,
+ struct au_opt_xino_itrunc *xino_itrunc,
+ substring_t args[])
+{
+ int err;
+ aufs_bindex_t bend, bindex;
@ -17712,7 +17750,7 @@ index 0000000..bcbbd9a
+#endif /* __AUFS_SPL_H__ */
diff --git a/fs/aufs/super.c b/fs/aufs/super.c
new file mode 100644
index 0000000..6124d17
index 0000000..10d30f2
--- /dev/null
+++ b/fs/aufs/super.c
@@ -0,0 +1,876 @@
@ -18069,7 +18107,7 @@ index 0000000..6124d17
+
+ if (!err) {
+ buf->f_type = AUFS_SUPER_MAGIC;
+ buf->f_namelen -= AUFS_WH_PFX_LEN;
+ buf->f_namelen = AUFS_MAX_NAMELEN;
+ memset(&buf->f_fsid, 0, sizeof(buf->f_fsid));
+ }
+ /* buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1; */
@ -19596,10 +19634,10 @@ index 0000000..3db9d84
+}
diff --git a/fs/aufs/vdir.c b/fs/aufs/vdir.c
new file mode 100644
index 0000000..99fd839
index 0000000..50a3caf
--- /dev/null
+++ b/fs/aufs/vdir.c
@@ -0,0 +1,879 @@
@@ -0,0 +1,878 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -19627,7 +19665,6 @@ index 0000000..99fd839
+
+static unsigned int calc_size(int nlen)
+{
+ BUILD_BUG_ON(sizeof(ino_t) != sizeof(long));
+ return ALIGN(sizeof(struct au_vdir_de) + nlen, sizeof(ino_t));
+}
+
@ -20481,10 +20518,10 @@ index 0000000..99fd839
+}
diff --git a/fs/aufs/vfsub.c b/fs/aufs/vfsub.c
new file mode 100644
index 0000000..ab0a419
index 0000000..34c0d95
--- /dev/null
+++ b/fs/aufs/vfsub.c
@@ -0,0 +1,751 @@
@@ -0,0 +1,753 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -20593,6 +20630,7 @@ index 0000000..ab0a419
+ vfsub_update_h_iattr(&path, /*did*/NULL); /*ignore*/
+
+ out:
+ AuTraceErrPtr(path.dentry);
+ return path.dentry;
+}
+
@ -20608,6 +20646,7 @@ index 0000000..ab0a419
+ if (!IS_ERR(path.dentry) && path.dentry->d_inode)
+ vfsub_update_h_iattr(&path, /*did*/NULL); /*ignore*/
+
+ AuTraceErrPtr(path.dentry);
+ return path.dentry;
+}
+
@ -22063,10 +22102,10 @@ index 0000000..05a8c1e
+};
diff --git a/fs/aufs/whout.c b/fs/aufs/whout.c
new file mode 100644
index 0000000..177e1dd
index 0000000..b0ee925
--- /dev/null
+++ b/fs/aufs/whout.c
@@ -0,0 +1,1053 @@
@@ -0,0 +1,1056 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -22190,19 +22229,21 @@ index 0000000..177e1dd
+struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct au_branch *br,
+ struct qstr *prefix)
+{
+#define HEX_LEN 4
+ struct dentry *dentry;
+ int i;
+ /* cf. AUFS_MAX_NAMELEN in include/linux/aufs_type.h */
+ char defname[AUFS_WH_PFX_LEN * 2 + DNAME_INLINE_LEN_MIN + 1
+ + HEX_LEN + 1], *name, *p;
+ + AUFS_WH_TMP_LEN + 1], *name, *p;
+ static unsigned short cnt;
+ struct qstr qs;
+
+ BUILD_BUG_ON(sizeof(cnt) * 2 > AUFS_WH_TMP_LEN);
+
+ name = defname;
+ qs.len = sizeof(defname) - DNAME_INLINE_LEN_MIN + prefix->len - 1;
+ if (unlikely(prefix->len > DNAME_INLINE_LEN_MIN)) {
+ dentry = ERR_PTR(-ENAMETOOLONG);
+ if (unlikely(qs.len >= PATH_MAX))
+ if (unlikely(qs.len > NAME_MAX))
+ goto out;
+ dentry = ERR_PTR(-ENOMEM);
+ name = kmalloc(qs.len + 1, GFP_NOFS);
@ -22216,11 +22257,11 @@ index 0000000..177e1dd
+ memcpy(p, prefix->name, prefix->len);
+ p += prefix->len;
+ *p++ = '.';
+ AuDebugOn(name + qs.len + 1 - p <= HEX_LEN);
+ AuDebugOn(name + qs.len + 1 - p <= AUFS_WH_TMP_LEN);
+
+ qs.name = name;
+ for (i = 0; i < 3; i++) {
+ sprintf(p, "%.*d", HEX_LEN, cnt++);
+ sprintf(p, "%.*d", AUFS_WH_TMP_LEN, cnt++);
+ dentry = au_sio_lkup_one(&qs, h_parent, br);
+ if (IS_ERR(dentry) || !dentry->d_inode)
+ goto out_name;
@ -22235,8 +22276,8 @@ index 0000000..177e1dd
+ if (name != defname)
+ kfree(name);
+ out:
+ AuTraceErrPtr(dentry);
+ return dentry;
+#undef HEX_LEN
+}
+
+/*
@ -22266,6 +22307,7 @@ index 0000000..177e1dd
+ dput(h_path.dentry);
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
@ -24778,10 +24820,10 @@ index 0000000..b401aa9
+}
diff --git a/include/linux/aufs_type.h b/include/linux/aufs_type.h
new file mode 100644
index 0000000..f34d9ed
index 0000000..b4fee85
--- /dev/null
+++ b/include/linux/aufs_type.h
@@ -0,0 +1,184 @@
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2005-2009 Junjiro R. Okajima
+ *
@ -24804,9 +24846,10 @@ index 0000000..f34d9ed
+#define __AUFS_TYPE_H__
+
+#include <linux/ioctl.h>
+#include <linux/limits.h>
+#include <linux/types.h>
+
+#define AUFS_VERSION "2-standalone.tree-31-20091012"
+#define AUFS_VERSION "2-standalone.tree-20091130"
+
+/* todo? move this to linux-2.6.19/include/magic.h */
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
@ -24843,6 +24886,12 @@ index 0000000..f34d9ed
+
+#define AUFS_WH_PFX ".wh."
+#define AUFS_WH_PFX_LEN ((int)sizeof(AUFS_WH_PFX) - 1)
+#define AUFS_WH_TMP_LEN 4
+/* a limit for rmdir/rename a dir */
+#define AUFS_MAX_NAMELEN (NAME_MAX \
+ - AUFS_WH_PFX_LEN * 2 /* doubly whiteouted */\
+ - 1 /* dot */\
+ - AUFS_WH_TMP_LEN) /* hex */
+#define AUFS_XINO_FNAME "." AUFS_NAME ".xino"
+#define AUFS_XINO_DEFPATH "/tmp/" AUFS_XINO_FNAME
+#define AUFS_XINO_TRUNC_INIT 64 /* blocks */

View File

@ -1,7 +1,7 @@
aufs2 base patch for linux-2.6.31
aufs2 base patch for linux-2.6.
diff --git a/fs/namei.c b/fs/namei.c
index 1f13751..b49c2af 100644
index d11f404..7d28f56 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1219,7 +1219,7 @@ out:
@ -23,10 +23,10 @@ index 1f13751..b49c2af 100644
{
unsigned long hash;
diff --git a/fs/splice.c b/fs/splice.c
index 73766d2..0cb8873 100644
index 7394e9e..77184f0 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1057,8 +1057,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
@@ -1051,8 +1051,8 @@ EXPORT_SYMBOL_GPL(generic_splice_sendpage);
/*
* Attempt to initiate a splice from pipe to file.
*/
@ -37,7 +37,7 @@ index 73766d2..0cb8873 100644
{
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
loff_t *, size_t, unsigned int);
@@ -1084,9 +1084,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
@@ -1078,9 +1078,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
/*
* Attempt to initiate a splice from a file to a pipe.
*/
@ -51,7 +51,7 @@ index 73766d2..0cb8873 100644
ssize_t (*splice_read)(struct file *, loff_t *,
struct pipe_inode_info *, size_t, unsigned int);
diff --git a/include/linux/namei.h b/include/linux/namei.h
index d870ae2..a49900e 100644
index ec0f607..1438153 100644
--- a/include/linux/namei.h
+++ b/include/linux/namei.h
@@ -75,6 +75,9 @@ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry

View File

@ -1,12 +1,10 @@
aufs2 kbuild patch for linux-2.6.31
Trivial update for 2.6.32 by Ben Hutchings <ben@decadent.org.uk>
aufs2 kbuild patch for linux-2.6.
diff --git a/fs/Kconfig b/fs/Kconfig
index 0e7da7b..a4194da 100644
index 64d44ef..3e1f2f0 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -187,6 +187,7 @@ source "fs/sysv/Kconfig"
@@ -188,6 +188,7 @@ source "fs/romfs/Kconfig"
source "fs/sysv/Kconfig"
source "fs/ufs/Kconfig"
source "fs/exofs/Kconfig"
@ -24,7 +22,7 @@ index af6d047..dba1ce1 100644
obj-$(CONFIG_EXOFS_FS) += exofs/
+obj-$(CONFIG_AUFS_FS) += aufs/
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 334a359..2a88f69 100644
index 1feed71..4ceebc7 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -34,6 +34,7 @@ header-y += atmppp.h

View File

@ -1,12 +1,10 @@
aufs2 standalone patch for linux-2.6.31
Trivial update for 2.6.32 by Ben Hutchings <ben@decadent.org.uk>
aufs2 standalone patch for linux-2.6.
diff --git a/fs/namei.c b/fs/namei.c
index b49c2af..4521c70 100644
index 7d28f56..0f6117c 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -337,6 +337,7 @@ int deny_write_access(struct file * file)
@@ -350,6 +350,7 @@ int deny_write_access(struct file * file)
return 0;
}
@ -31,7 +29,7 @@ index b49c2af..4521c70 100644
/**
* lookup_one_len - filesystem helper to lookup single pathname component
diff --git a/fs/namespace.c b/fs/namespace.c
index 7230787..8269b66 100644
index bdc3cb4..a2cadcf 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -39,6 +39,7 @@
@ -43,10 +41,10 @@ index 7230787..8269b66 100644
static int event;
static DEFINE_IDA(mnt_id_ida);
diff --git a/fs/open.c b/fs/open.c
index dd98e80..04b9aad 100644
index 4f01e06..ef09031 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -221,6 +221,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
@@ -223,6 +223,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
mutex_unlock(&dentry->d_inode->i_mutex);
return ret;
}
@ -55,10 +53,10 @@ index dd98e80..04b9aad 100644
static long do_sys_truncate(const char __user *pathname, loff_t length)
{
diff --git a/fs/splice.c b/fs/splice.c
index 0cb8873..0e7b0b9 100644
index 77184f0..8479d95 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1080,6 +1080,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
@@ -1074,6 +1074,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
return splice_write(pipe, out, ppos, len, flags);
}
@ -66,7 +64,7 @@ index 0cb8873..0e7b0b9 100644
/*
* Attempt to initiate a splice from a file to a pipe.
@@ -1105,6 +1106,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
@@ -1099,6 +1100,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
return splice_read(in, ppos, pipe, len, flags);
}
@ -75,10 +73,10 @@ index 0cb8873..0e7b0b9 100644
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
index b8186ba..42208d8 100644
index 6cf8fd2..008e0d8 100644
--- a/security/device_cgroup.c
+++ b/security/device_cgroup.c
@@ -513,6 +513,7 @@ found:
@@ -514,6 +514,7 @@ found:
return -EPERM;
}
@ -99,7 +97,7 @@ index b85e61b..a23fad4 100644
/**
* ima_bprm_check - based on policy, collect/store measurement.
diff --git a/security/security.c b/security/security.c
index dc7674f..b309f88 100644
index c4c6732..854d15c 100644
--- a/security/security.c
+++ b/security/security.c
@@ -386,6 +386,7 @@ int security_path_mkdir(struct path *path, struct dentry *dentry, int mode)

View File

@ -24,7 +24,6 @@
+ features/all/aufs2/aufs2-add.patch
# mark as staging/crap
+ features/all/aufs2/mark-as-staging.patch
+ bugfix/all/aufs2-remove-incorrect-static-assertion.patch
# content of src/ from speakup package; generated with:
# diff -ur --unidirectional-new-file nonexistent src | filterdiff --strip=1 --addoldprefix=a/drivers/staging/speakup/ --addnewprefix=b/drivers/staging/speakup/