From 1e8b8f9b32aa2b34ce0b4d7fcf974250a026501e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Tue, 22 May 2012 07:21:36 +0000 Subject: [PATCH] - apparmor (2.8) and vserver (2.3.3.4) update Changed files: kernel-apparmor.patch -> 1.16 kernel-vserver-2.3.patch -> 1.95 kernel.spec -> 1.1048 --- kernel-apparmor.patch | 1728 ++++++++++++----- kernel-vserver-2.3.patch | 3785 +++++++++++++++++++------------------- kernel.spec | 6 +- 3 files changed, 3168 insertions(+), 2351 deletions(-) diff --git a/kernel-apparmor.patch b/kernel-apparmor.patch index 9f2ac69a..152d7d46 100644 --- a/kernel-apparmor.patch +++ b/kernel-apparmor.patch @@ -1,41 +1,289 @@ -From 0ae314bc92d8b22250f04f85e4bd36ee9ed30890 Mon Sep 17 00:00:00 2001 From: John Johansen -Date: Mon, 4 Oct 2010 15:03:36 -0700 -Subject: [PATCH 1/3] AppArmor: compatibility patch for v5 network controll +Date: Thu, 22 Jul 2010 09:32:02 +0000 (-0700) +Subject: UBUNTU: SAUCE: AppArmor: Add profile introspection file to interface +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fjj%2Flinux-apparmor.git;a=commitdiff_plain;h=8de755e4dfdbc40bfcaca848ae6b5aeaf0ede0e8 -Add compatibility for v5 network rules. +UBUNTU: SAUCE: AppArmor: Add profile introspection file to interface + +Add the dynamic profiles file to the interace, to allow load policy +introspection. + +Signed-off-by: John Johansen +Acked-by: Kees Cook +Signed-off-by: Tim Gardner +--- + +diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.c +index 16c15ec..89bdc62 100644 +--- a/security/apparmor/apparmorfs.c ++++ b/security/apparmor/apparmorfs.c +@@ -182,6 +182,232 @@ const struct file_operations aa_fs_seq_file_ops = { + .release = single_release, + }; + ++/** ++ * __next_namespace - find the next namespace to list ++ * @root: root namespace to stop search at (NOT NULL) ++ * @ns: current ns position (NOT NULL) ++ * ++ * Find the next namespace from @ns under @root and handle all locking needed ++ * while switching current namespace. ++ * ++ * Returns: next namespace or NULL if at last namespace under @root ++ * NOTE: will not unlock root->lock ++ */ ++static struct aa_namespace *__next_namespace(struct aa_namespace *root, ++ struct aa_namespace *ns) ++{ ++ struct aa_namespace *parent; ++ ++ /* is next namespace a child */ ++ if (!list_empty(&ns->sub_ns)) { ++ struct aa_namespace *next; ++ next = list_first_entry(&ns->sub_ns, typeof(*ns), base.list); ++ read_lock(&next->lock); ++ return next; ++ } ++ ++ /* check if the next ns is a sibling, parent, gp, .. */ ++ parent = ns->parent; ++ while (parent) { ++ read_unlock(&ns->lock); ++ list_for_each_entry_continue(ns, &parent->sub_ns, base.list) { ++ read_lock(&ns->lock); ++ return ns; ++ } ++ if (parent == root) ++ return NULL; ++ ns = parent; ++ parent = parent->parent; ++ } ++ ++ return NULL; ++} ++ ++/** ++ * __first_profile - find the first profile in a namespace ++ * @root: namespace that is root of profiles being displayed (NOT NULL) ++ * @ns: namespace to start in (NOT NULL) ++ * ++ * Returns: unrefcounted profile or NULL if no profile ++ */ ++static struct aa_profile *__first_profile(struct aa_namespace *root, ++ struct aa_namespace *ns) ++{ ++ for ( ; ns; ns = __next_namespace(root, ns)) { ++ if (!list_empty(&ns->base.profiles)) ++ return list_first_entry(&ns->base.profiles, ++ struct aa_profile, base.list); ++ } ++ return NULL; ++} ++ ++/** ++ * __next_profile - step to the next profile in a profile tree ++ * @profile: current profile in tree (NOT NULL) ++ * ++ * Perform a depth first taversal on the profile tree in a namespace ++ * ++ * Returns: next profile or NULL if done ++ * Requires: profile->ns.lock to be held ++ */ ++static struct aa_profile *__next_profile(struct aa_profile *p) ++{ ++ struct aa_profile *parent; ++ struct aa_namespace *ns = p->ns; ++ ++ /* is next profile a child */ ++ if (!list_empty(&p->base.profiles)) ++ return list_first_entry(&p->base.profiles, typeof(*p), ++ base.list); ++ ++ /* is next profile a sibling, parent sibling, gp, subling, .. */ ++ parent = p->parent; ++ while (parent) { ++ list_for_each_entry_continue(p, &parent->base.profiles, ++ base.list) ++ return p; ++ p = parent; ++ parent = parent->parent; ++ } ++ ++ /* is next another profile in the namespace */ ++ list_for_each_entry_continue(p, &ns->base.profiles, base.list) ++ return p; ++ ++ return NULL; ++} ++ ++/** ++ * next_profile - step to the next profile in where ever it may be ++ * @root: root namespace (NOT NULL) ++ * @profile: current profile (NOT NULL) ++ * ++ * Returns: next profile or NULL if there isn't one ++ */ ++static struct aa_profile *next_profile(struct aa_namespace *root, ++ struct aa_profile *profile) ++{ ++ struct aa_profile *next = __next_profile(profile); ++ if (next) ++ return next; ++ ++ /* finished all profiles in namespace move to next namespace */ ++ return __first_profile(root, __next_namespace(root, profile->ns)); ++} ++ ++/** ++ * p_start - start a depth first traversal of profile tree ++ * @f: seq_file to fill ++ * @pos: current position ++ * ++ * Returns: first profile under current namespace or NULL if none found ++ * ++ * acquires first ns->lock ++ */ ++static void *p_start(struct seq_file *f, loff_t *pos) ++ __acquires(root->lock) ++{ ++ struct aa_profile *profile = NULL; ++ struct aa_namespace *root = aa_current_profile()->ns; ++ loff_t l = *pos; ++ f->private = aa_get_namespace(root); ++ ++ ++ /* find the first profile */ ++ read_lock(&root->lock); ++ profile = __first_profile(root, root); ++ ++ /* skip to position */ ++ for (; profile && l > 0; l--) ++ profile = next_profile(root, profile); ++ ++ return profile; ++} ++ ++/** ++ * p_next - read the next profile entry ++ * @f: seq_file to fill ++ * @p: profile previously returned ++ * @pos: current position ++ * ++ * Returns: next profile after @p or NULL if none ++ * ++ * may acquire/release locks in namespace tree as necessary ++ */ ++static void *p_next(struct seq_file *f, void *p, loff_t *pos) ++{ ++ struct aa_profile *profile = p; ++ struct aa_namespace *root = f->private; ++ (*pos)++; ++ ++ return next_profile(root, profile); ++} ++ ++/** ++ * p_stop - stop depth first traversal ++ * @f: seq_file we are filling ++ * @p: the last profile writen ++ * ++ * Release all locking done by p_start/p_next on namespace tree ++ */ ++static void p_stop(struct seq_file *f, void *p) ++ __releases(root->lock) ++{ ++ struct aa_profile *profile = p; ++ struct aa_namespace *root = f->private, *ns; ++ ++ if (profile) { ++ for (ns = profile->ns; ns && ns != root; ns = ns->parent) ++ read_unlock(&ns->lock); ++ } ++ read_unlock(&root->lock); ++ aa_put_namespace(root); ++} ++ ++/** ++ * seq_show_profile - show a profile entry ++ * @f: seq_file to file ++ * @p: current position (profile) (NOT NULL) ++ * ++ * Returns: error on failure ++ */ ++static int seq_show_profile(struct seq_file *f, void *p) ++{ ++ struct aa_profile *profile = (struct aa_profile *)p; ++ struct aa_namespace *root = f->private; ++ ++ if (profile->ns != root) ++ seq_printf(f, ":%s://", aa_ns_name(root, profile->ns)); ++ seq_printf(f, "%s (%s)\n", profile->base.hname, ++ COMPLAIN_MODE(profile) ? "complain" : "enforce"); ++ ++ return 0; ++} ++ ++static const struct seq_operations aa_fs_profiles_op = { ++ .start = p_start, ++ .next = p_next, ++ .stop = p_stop, ++ .show = seq_show_profile, ++}; ++ ++static int profiles_open(struct inode *inode, struct file *file) ++{ ++ return seq_open(file, &aa_fs_profiles_op); ++} ++ ++static int profiles_release(struct inode *inode, struct file *file) ++{ ++ return seq_release(inode, file); ++} ++ ++const struct file_operations aa_fs_profiles_fops = { ++ .open = profiles_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = profiles_release, ++}; ++ + /** Base file system setup **/ + + static struct aa_fs_entry aa_fs_entry_file[] = { +@@ -210,6 +436,7 @@ static struct aa_fs_entry aa_fs_entry_apparmor[] = { + AA_FS_FILE_FOPS(".load", 0640, &aa_fs_profile_load), + AA_FS_FILE_FOPS(".replace", 0640, &aa_fs_profile_replace), + AA_FS_FILE_FOPS(".remove", 0640, &aa_fs_profile_remove), ++ AA_FS_FILE_FOPS("profiles", 0640, &aa_fs_profiles_fops), + AA_FS_DIR("features", aa_fs_entry_features), + { } + }; +From: John Johansen +Date: Mon, 4 Oct 2010 22:03:36 +0000 (-0700) +Subject: UBUNTU: SAUCE: AppArmor: basic networking rules +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fjj%2Flinux-apparmor.git;a=commitdiff_plain;h=423e2cb454d75d6185eecd0c1b5cf6ccc2d8482d + +UBUNTU: SAUCE: AppArmor: basic networking rules + +Base support for network mediation. Signed-off-by: John Johansen --- - include/linux/lsm_audit.h | 4 + - security/apparmor/Makefile | 19 ++++- - security/apparmor/include/net.h | 40 +++++++++ - security/apparmor/include/policy.h | 3 + - security/apparmor/lsm.c | 112 +++++++++++++++++++++++ - security/apparmor/net.c | 170 ++++++++++++++++++++++++++++++++++++ - security/apparmor/policy.c | 1 + - security/apparmor/policy_unpack.c | 48 ++++++++++- - 8 files changed, 394 insertions(+), 3 deletions(-) - create mode 100644 security/apparmor/include/net.h - create mode 100644 security/apparmor/net.c -diff --git a/include/linux/lsm_audit.h b/include/linux/lsm_audit.h -index 112a550..d5f3dd7 100644 ---- a/include/linux/lsm_audit.h -+++ b/include/linux/lsm_audit.h -@@ -123,6 +123,10 @@ struct common_audit_data { - u32 denied; - uid_t ouid; - } fs; -+ struct { -+ int type, protocol; -+ struct sock *sk; -+ } net; - }; - } apparmor_audit_data; - #endif +diff --git a/security/apparmor/.gitignore b/security/apparmor/.gitignore +index 4d995ae..d5b291e 100644 +--- a/security/apparmor/.gitignore ++++ b/security/apparmor/.gitignore +@@ -1,6 +1,6 @@ + # + # Generated include files + # +-af_names.h ++net_names.h + capability_names.h + rlim_names.h diff --git a/security/apparmor/Makefile b/security/apparmor/Makefile -index 2dafe50..7cefef9 100644 +index 806bd19..19daa85 100644 --- a/security/apparmor/Makefile +++ b/security/apparmor/Makefile @@ -4,9 +4,9 @@ obj-$(CONFIG_SECURITY_APPARMOR) += apparmor.o @@ -46,49 +294,106 @@ index 2dafe50..7cefef9 100644 + resource.o sid.o file.o net.o -clean-files := capability_names.h rlim_names.h -+clean-files := capability_names.h rlim_names.h af_names.h ++clean-files := capability_names.h rlim_names.h net_names.h # Build a lower case string table of capability names -@@ -44,9 +44,24 @@ cmd_make-rlim = echo "static const char *rlim_names[] = {" > $@ ;\ - sed -r -n "s/^\# ?define[ \t]+(RLIMIT_[A-Z0-9_]+).*/\1,/p" $< >> $@ ;\ +@@ -20,6 +20,38 @@ cmd_make-caps = echo "static const char *const capability_names[] = {" > $@ ;\ + -e 's/^\#define[ \t]+CAP_([A-Z0-9_]+)[ \t]+([0-9]+)/[\2] = "\L\1",/p';\ echo "};" >> $@ -+# Build a lower case string table of address family names. ++# Build a lower case string table of address family names +# Transform lines from -+# #define AF_INET 2 /* Internet IP Protocol */ ++# define AF_LOCAL 1 /* POSIX name for AF_UNIX */ ++# #define AF_INET 2 /* Internet IP Protocol */ ++# to ++# [1] = "local", ++# [2] = "inet", ++# ++# and build the securityfs entries for the mapping. ++# Transforms lines from ++# #define AF_INET 2 /* Internet IP Protocol */ +# to -+# [2] = "inet", ++# #define AA_FS_AF_MASK "local inet" +quiet_cmd_make-af = GEN $@ +cmd_make-af = echo "static const char *address_family_names[] = {" > $@ ;\ -+ sed $< >> $@ -r -n -e "/AF_MAX/d" -e "/AF_LOCAL/d" -e \ -+ 's/^\#define[ \t]+AF_([A-Z0-9_]+)[ \t]+([0-9]+).*/[\2] = "\L\1",/p';\ ++ sed $< >>$@ -r -n -e "/AF_MAX/d" -e "/AF_LOCAL/d" -e \ ++ 's/^\#define[ \t]+AF_([A-Z0-9_]+)[ \t]+([0-9]+)(.*)/[\2] = "\L\1",/p';\ ++ echo "};" >> $@ ;\ ++ echo -n '\#define AA_FS_AF_MASK "' >> $@ ;\ ++ sed -r -n 's/^\#define[ \t]+AF_([A-Z0-9_]+)[ \t]+([0-9]+)(.*)/\L\1/p'\ ++ $< | tr '\n' ' ' | sed -e 's/ $$/"\n/' >> $@ ++ ++# Build a lower case string table of sock type names ++# Transform lines from ++# SOCK_STREAM = 1, ++# to ++# [1] = "stream", ++quiet_cmd_make-sock = GEN $@ ++cmd_make-sock = echo "static const char *sock_type_names[] = {" >> $@ ;\ ++ sed $^ >>$@ -r -n \ ++ -e 's/^\tSOCK_([A-Z0-9_]+)[\t]+=[ \t]+([0-9]+)(.*)/[\2] = "\L\1",/p';\ + echo "};" >> $@ -+ -+ + + # Build a lower case string table of rlimit names. + # Transforms lines from +@@ -56,6 +88,7 @@ cmd_make-rlim = echo "static const char *const rlim_names[RLIM_NLIMITS] = {" \ + tr '\n' ' ' | sed -e 's/ $$/"\n/' >> $@ + $(obj)/capability.o : $(obj)/capability_names.h ++$(obj)/net.o : $(obj)/net_names.h $(obj)/resource.o : $(obj)/rlim_names.h -+$(obj)/net.o : $(obj)/af_names.h - $(obj)/capability_names.h : $(srctree)/include/linux/capability.h - $(call cmd,make-caps) - $(obj)/rlim_names.h : $(srctree)/include/asm-generic/resource.h + $(obj)/capability_names.h : $(srctree)/include/linux/capability.h \ + $(src)/Makefile +@@ -63,3 +96,8 @@ $(obj)/capability_names.h : $(srctree)/include/linux/capability.h \ + $(obj)/rlim_names.h : $(srctree)/include/asm-generic/resource.h \ + $(src)/Makefile $(call cmd,make-rlim) -+$(obj)/af_names.h : $(srctree)/include/linux/socket.h ++$(obj)/net_names.h : $(srctree)/include/linux/socket.h \ ++ $(srctree)/include/linux/net.h \ ++ $(src)/Makefile + $(call cmd,make-af) -\ No newline at end of file ++ $(call cmd,make-sock) +diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.c +index 89bdc62..c66315d 100644 +--- a/security/apparmor/apparmorfs.c ++++ b/security/apparmor/apparmorfs.c +@@ -427,6 +427,7 @@ static struct aa_fs_entry aa_fs_entry_domain[] = { + static struct aa_fs_entry aa_fs_entry_features[] = { + AA_FS_DIR("domain", aa_fs_entry_domain), + AA_FS_DIR("file", aa_fs_entry_file), ++ AA_FS_DIR("network", aa_fs_entry_network), + AA_FS_FILE_U64("capability", VFS_CAP_FLAGS_MASK), + AA_FS_DIR("rlimit", aa_fs_entry_rlimit), + { } +diff --git a/security/apparmor/include/audit.h b/security/apparmor/include/audit.h +index 3868b1e..c1ff09c 100644 +--- a/security/apparmor/include/audit.h ++++ b/security/apparmor/include/audit.h +@@ -126,6 +126,10 @@ struct apparmor_audit_data { + u32 denied; + uid_t ouid; + } fs; ++ struct { ++ int type, protocol; ++ struct sock *sk; ++ } net; + }; + }; + diff --git a/security/apparmor/include/net.h b/security/apparmor/include/net.h new file mode 100644 -index 0000000..3c7d599 +index 0000000..cb8a121 --- /dev/null +++ b/security/apparmor/include/net.h -@@ -0,0 +1,40 @@ +@@ -0,0 +1,44 @@ +/* + * AppArmor security module + * + * This file contains AppArmor network mediation definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE -+ * Copyright 2009-2010 Canonical Ltd. ++ * Copyright 2009-2012 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as @@ -101,6 +406,8 @@ index 0000000..3c7d599 + +#include + ++#include "apparmorfs.h" ++ +/* struct aa_net - network confinement data + * @allowed: basic network families permissions + * @audit_network: which network permissions to force audit @@ -112,6 +419,8 @@ index 0000000..3c7d599 + u16 quiet[AF_MAX]; +}; + ++extern struct aa_fs_entry aa_fs_entry_network[]; ++ +extern int aa_net_perm(int op, struct aa_profile *profile, u16 family, + int type, int protocol, struct sock *sk); +extern int aa_revalidate_sk(int op, struct sock *sk); @@ -123,7 +432,7 @@ index 0000000..3c7d599 + +#endif /* __AA_NET_H */ diff --git a/security/apparmor/include/policy.h b/security/apparmor/include/policy.h -index aeda5cf..6776929 100644 +index bda4569..eb13a73 100644 --- a/security/apparmor/include/policy.h +++ b/security/apparmor/include/policy.h @@ -27,6 +27,7 @@ @@ -133,17 +442,17 @@ index aeda5cf..6776929 100644 +#include "net.h" #include "resource.h" - extern const char *profile_mode_names[]; -@@ -145,6 +146,7 @@ struct aa_namespace { - * @size: the memory consumed by this profiles rules + extern const char *const profile_mode_names[]; +@@ -157,6 +158,7 @@ struct aa_policydb { + * @policy: general match rules governing policy * @file: The set of rules governing basic file access and domain transitions * @caps: capabilities for the profile + * @net: network controls for the profile * @rlimits: rlimits for the profile * * The AppArmor profile contains the basic confinement data. Each profile -@@ -181,6 +183,7 @@ struct aa_profile { - +@@ -194,6 +196,7 @@ struct aa_profile { + struct aa_policydb policy; struct aa_file_rules file; struct aa_caps caps; + struct aa_net net; @@ -151,7 +460,7 @@ index aeda5cf..6776929 100644 }; diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c -index ae3a698..05c018b 100644 +index ad05d39..3cde194 100644 --- a/security/apparmor/lsm.c +++ b/security/apparmor/lsm.c @@ -32,6 +32,7 @@ @@ -162,7 +471,7 @@ index ae3a698..05c018b 100644 #include "include/path.h" #include "include/policy.h" #include "include/procattr.h" -@@ -610,5 +611,103 @@ static int apparmor_task_setrlimit(struct task_struct *task, +@@ -622,6 +623,104 @@ static int apparmor_task_setrlimit(struct task_struct *task, return error; } @@ -264,9 +573,10 @@ index ae3a698..05c018b 100644 + return aa_revalidate_sk(OP_SOCK_SHUTDOWN, sk); +} + - static int apparmor_task_setrlimit(struct task_struct *task, - unsigned int resource, struct rlimit *new_rlim) -@@ -651,6 +750,19 @@ static struct security_operations apparmor_ops = { + static struct security_operations apparmor_ops = { + .name = "apparmor", + +@@ -653,6 +752,19 @@ static struct security_operations apparmor_ops = { .getprocattr = apparmor_getprocattr, .setprocattr = apparmor_setprocattr, @@ -288,17 +598,17 @@ index ae3a698..05c018b 100644 .cred_prepare = apparmor_cred_prepare, diff --git a/security/apparmor/net.c b/security/apparmor/net.c new file mode 100644 -index 0000000..1765901 +index 0000000..084232b --- /dev/null +++ b/security/apparmor/net.c -@@ -0,0 +1,170 @@ +@@ -0,0 +1,162 @@ +/* + * AppArmor security module + * + * This file contains AppArmor network mediation + * + * Copyright (C) 1998-2008 Novell/SUSE -+ * Copyright 2009-2010 Canonical Ltd. ++ * Copyright 2009-2012 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as @@ -312,20 +622,11 @@ index 0000000..1765901 +#include "include/net.h" +#include "include/policy.h" + -+#include "af_names.h" -+ -+static const char *sock_type_names[] = { -+ "unknown(0)", -+ "stream", -+ "dgram", -+ "raw", -+ "rdm", -+ "seqpacket", -+ "dccp", -+ "unknown(7)", -+ "unknown(8)", -+ "unknown(9)", -+ "packet", ++#include "net_names.h" ++ ++struct aa_fs_entry aa_fs_entry_network[] = { ++ AA_FS_FILE_STRING("af_mask", AA_FS_AF_MASK), ++ { } +}; + +/* audit callback for net specific fields */ @@ -334,20 +635,18 @@ index 0000000..1765901 + struct common_audit_data *sa = va; + + audit_log_format(ab, " family="); -+ if (address_family_names[sa->u.net.family]) { -+ audit_log_string(ab, address_family_names[sa->u.net.family]); ++ if (address_family_names[sa->u.net->family]) { ++ audit_log_string(ab, address_family_names[sa->u.net->family]); + } else { -+ audit_log_format(ab, " \"unknown(%d)\"", sa->u.net.family); ++ audit_log_format(ab, "\"unknown(%d)\"", sa->u.net->family); + } -+ + audit_log_format(ab, " sock_type="); -+ if (sock_type_names[sa->aad.net.type]) { -+ audit_log_string(ab, sock_type_names[sa->aad.net.type]); ++ if (sock_type_names[sa->aad->net.type]) { ++ audit_log_string(ab, sock_type_names[sa->aad->net.type]); + } else { -+ audit_log_format(ab, "\"unknown(%d)\"", sa->aad.net.type); ++ audit_log_format(ab, "\"unknown(%d)\"", sa->aad->net.type); + } -+ -+ audit_log_format(ab, " protocol=%d", sa->aad.net.protocol); ++ audit_log_format(ab, " protocol=%d", sa->aad->net.protocol); +} + +/** @@ -367,30 +666,33 @@ index 0000000..1765901 +{ + int audit_type = AUDIT_APPARMOR_AUTO; + struct common_audit_data sa; ++ struct apparmor_audit_data aad = { }; ++ struct lsm_network_audit net = { }; + if (sk) { + COMMON_AUDIT_DATA_INIT(&sa, NET); + } else { + COMMON_AUDIT_DATA_INIT(&sa, NONE); + } + /* todo fill in socket addr info */ -+ -+ sa.aad.op = op, -+ sa.u.net.family = family; -+ sa.u.net.sk = sk; -+ sa.aad.net.type = type; -+ sa.aad.net.protocol = protocol; -+ sa.aad.error = error; -+ -+ if (likely(!sa.aad.error)) { -+ u16 audit_mask = profile->net.audit[sa.u.net.family]; ++ sa.aad = &aad; ++ sa.u.net = &net; ++ sa.aad->op = op, ++ sa.u.net->family = family; ++ sa.u.net->sk = sk; ++ sa.aad->net.type = type; ++ sa.aad->net.protocol = protocol; ++ sa.aad->error = error; ++ ++ if (likely(!sa.aad->error)) { ++ u16 audit_mask = profile->net.audit[sa.u.net->family]; + if (likely((AUDIT_MODE(profile) != AUDIT_ALL) && -+ !(1 << sa.aad.net.type & audit_mask))) ++ !(1 << sa.aad->net.type & audit_mask))) + return 0; + audit_type = AUDIT_APPARMOR_AUDIT; + } else { -+ u16 quiet_mask = profile->net.quiet[sa.u.net.family]; ++ u16 quiet_mask = profile->net.quiet[sa.u.net->family]; + u16 kill_mask = 0; -+ u16 denied = (1 << sa.aad.net.type) & ~quiet_mask; ++ u16 denied = (1 << sa.aad->net.type) & ~quiet_mask; + + if (denied & kill_mask) + audit_type = AUDIT_APPARMOR_KILL; @@ -398,7 +700,7 @@ index 0000000..1765901 + if ((denied & quiet_mask) && + AUDIT_MODE(profile) != AUDIT_NOQUIET && + AUDIT_MODE(profile) != AUDIT_ALL) -+ return COMPLAIN_MODE(profile) ? 0 : sa.aad.error; ++ return COMPLAIN_MODE(profile) ? 0 : sa.aad->error; + } + + return aa_audit(audit_type, profile, GFP_KERNEL, &sa, audit_cb); @@ -463,7 +765,7 @@ index 0000000..1765901 + return error; +} diff --git a/security/apparmor/policy.c b/security/apparmor/policy.c -index 4f0eade..4d5ce13 100644 +index f1f7506..b8100a7 100644 --- a/security/apparmor/policy.c +++ b/security/apparmor/policy.c @@ -745,6 +745,7 @@ static void free_profile(struct aa_profile *profile) @@ -475,10 +777,10 @@ index 4f0eade..4d5ce13 100644 aa_free_sid(profile->sid); diff --git a/security/apparmor/policy_unpack.c b/security/apparmor/policy_unpack.c -index e33aaf7..fa3f1b4 100644 +index deab7c7..8f8e9c1 100644 --- a/security/apparmor/policy_unpack.c +++ b/security/apparmor/policy_unpack.c -@@ -190,6 +190,19 @@ fail: +@@ -193,6 +193,19 @@ fail: return 0; } @@ -498,17 +800,15 @@ index e33aaf7..fa3f1b4 100644 static bool unpack_u32(struct aa_ext *e, u32 *data, const char *name) { if (unpack_nameX(e, AA_U32, name)) { -@@ -468,7 +481,8 @@ static struct aa_profile *unpack_profile(struct aa_ext *e) +@@ -471,6 +484,7 @@ static struct aa_profile *unpack_profile(struct aa_ext *e) { struct aa_profile *profile = NULL; const char *name = NULL; -- int error = -EPROTO; + size_t size = 0; -+ int i, error = -EPROTO; + int i, error = -EPROTO; kernel_cap_t tmpcap; u32 tmp; - -@@ -559,6 +573,38 @@ static struct aa_profile *unpack_profile(struct aa_ext *e) +@@ -564,6 +578,38 @@ static struct aa_profile *unpack_profile(struct aa_ext *e) if (!unpack_rlimits(e, profile)) goto fail; @@ -536,476 +836,956 @@ index e33aaf7..fa3f1b4 100644 + } + if (!unpack_nameX(e, AA_ARRAYEND, NULL)) + goto fail; -+ /* -+ * allow unix domain and netlink sockets they are handled -+ * by IPC -+ */ + } ++ /* ++ * allow unix domain and netlink sockets they are handled ++ * by IPC ++ */ + profile->net.allow[AF_UNIX] = 0xffff; + profile->net.allow[AF_NETLINK] = 0xffff; + - /* get file rules */ - profile->file.dfa = unpack_dfa(e); - if (IS_ERR(profile->file.dfa)) { --- -1.7.0.4 - -From cdc6b35345e5bcfe92bb2b52ef003f94ceedd40d Mon Sep 17 00:00:00 2001 + if (unpack_nameX(e, AA_STRUCT, "policydb")) { + /* generic policy dfa - optional and may be NULL */ + profile->policy.dfa = unpack_dfa(e); From: John Johansen -Date: Thu, 22 Jul 2010 02:32:02 -0700 -Subject: [PATCH 2/3] AppArmor: compatibility patch for v5 interface +Date: Wed, 16 May 2012 17:58:05 +0000 (-0700) +Subject: UBUNTU: SAUCE: apparmor: Add the ability to mediate mount +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fjj%2Flinux-apparmor.git;a=commitdiff_plain;h=a94d5e11c0484af59e5feebf144cc48c186892ad + +UBUNTU: SAUCE: apparmor: Add the ability to mediate mount + +Add the ability for apparmor to do mediation of mount operations. Mount +rules require an updated apparmor_parser (2.8 series) for policy compilation. + +The basic form of the rules are. + + [audit] [deny] mount [conds]* [device] [ -> [conds] path], + [audit] [deny] remount [conds]* [path], + [audit] [deny] umount [conds]* [path], + [audit] [deny] pivotroot [oldroot=] + + remount is just a short cut for mount options=remount + + where [conds] can be + fstype= + options= + +Example mount commands + mount, # allow all mounts, but not umount or pivotroot + + mount fstype=procfs, # allow mounting procfs anywhere + + mount options=(bind, ro) /foo -> /bar, # readonly bind mount + + mount /dev/sda -> /mnt, + + mount /dev/sd** -> /mnt/**, + + mount fstype=overlayfs options=(rw,upperdir=/tmp/upper/,lowerdir=/) -> /mnt/ + + umount, + + umount /m*, + +See the apparmor userspace for full documentation Signed-off-by: John Johansen +Acked-by: Kees Cook --- - security/apparmor/Kconfig | 9 + - security/apparmor/Makefile | 1 + - security/apparmor/apparmorfs-24.c | 287 ++++++++++++++++++++++++++++++++ - security/apparmor/apparmorfs.c | 18 ++- - security/apparmor/include/apparmorfs.h | 6 + - 5 files changed, 319 insertions(+), 2 deletions(-) - create mode 100644 security/apparmor/apparmorfs-24.c -diff --git a/security/apparmor/Kconfig b/security/apparmor/Kconfig -index 9b9013b..51ebf96 100644 ---- a/security/apparmor/Kconfig -+++ b/security/apparmor/Kconfig -@@ -29,3 +29,12 @@ config SECURITY_APPARMOR_BOOTPARAM_VALUE - boot. - - If you are unsure how to answer this question, answer 1. -+ -+config SECURITY_APPARMOR_COMPAT_24 -+ bool "Enable AppArmor 2.4 compatability" -+ depends on SECURITY_APPARMOR -+ default y -+ help -+ This option enables compatability with AppArmor 2.4. It is -+ recommended if compatability with older versions of AppArmor -+ is desired. diff --git a/security/apparmor/Makefile b/security/apparmor/Makefile -index 7cefef9..0bb604b 100644 +index 19daa85..63e0a4c 100644 --- a/security/apparmor/Makefile +++ b/security/apparmor/Makefile -@@ -5,6 +5,7 @@ obj-$(CONFIG_SECURITY_APPARMOR) += apparmor.o +@@ -4,7 +4,7 @@ obj-$(CONFIG_SECURITY_APPARMOR) += apparmor.o + apparmor-y := apparmorfs.o audit.o capability.o context.o ipc.o lib.o match.o \ path.o domain.o policy.o policy_unpack.o procattr.o lsm.o \ - resource.o sid.o file.o net.o -+apparmor-$(CONFIG_SECURITY_APPARMOR_COMPAT_24) += apparmorfs-24.o +- resource.o sid.o file.o net.o ++ resource.o sid.o file.o net.o mount.o - clean-files := capability_names.h rlim_names.h af_names.h + clean-files := capability_names.h rlim_names.h net_names.h -diff --git a/security/apparmor/apparmorfs-24.c b/security/apparmor/apparmorfs-24.c +diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.c +index c66315d..ff19009 100644 +--- a/security/apparmor/apparmorfs.c ++++ b/security/apparmor/apparmorfs.c +@@ -424,10 +424,23 @@ static struct aa_fs_entry aa_fs_entry_domain[] = { + { } + }; + ++static struct aa_fs_entry aa_fs_entry_mount[] = { ++ AA_FS_FILE_STRING("mask", "mount umount"), ++ { } ++}; ++ ++static struct aa_fs_entry aa_fs_entry_namespaces[] = { ++ AA_FS_FILE_BOOLEAN("profile", 1), ++ AA_FS_FILE_BOOLEAN("pivot_root", 1), ++ { } ++}; ++ + static struct aa_fs_entry aa_fs_entry_features[] = { + AA_FS_DIR("domain", aa_fs_entry_domain), + AA_FS_DIR("file", aa_fs_entry_file), + AA_FS_DIR("network", aa_fs_entry_network), ++ AA_FS_DIR("mount", aa_fs_entry_mount), ++ AA_FS_DIR("namespaces", aa_fs_entry_namespaces), + AA_FS_FILE_U64("capability", VFS_CAP_FLAGS_MASK), + AA_FS_DIR("rlimit", aa_fs_entry_rlimit), + { } +diff --git a/security/apparmor/audit.c b/security/apparmor/audit.c +index cc3520d..b9f5ee9 100644 +--- a/security/apparmor/audit.c ++++ b/security/apparmor/audit.c +@@ -44,6 +44,10 @@ const char *const op_table[] = { + "file_mmap", + "file_mprotect", + ++ "pivotroot", ++ "mount", ++ "umount", ++ + "create", + "post_create", + "bind", +diff --git a/security/apparmor/domain.c b/security/apparmor/domain.c +index 6327685..dfdc47b 100644 +--- a/security/apparmor/domain.c ++++ b/security/apparmor/domain.c +@@ -242,7 +242,7 @@ static const char *next_name(int xtype, const char *name) + * + * Returns: refcounted profile, or NULL on failure (MAYBE NULL) + */ +-static struct aa_profile *x_table_lookup(struct aa_profile *profile, u32 xindex) ++struct aa_profile *x_table_lookup(struct aa_profile *profile, u32 xindex) + { + struct aa_profile *new_profile = NULL; + struct aa_namespace *ns = profile->ns; +diff --git a/security/apparmor/include/apparmor.h b/security/apparmor/include/apparmor.h +index 40aedd9..e243d96 100644 +--- a/security/apparmor/include/apparmor.h ++++ b/security/apparmor/include/apparmor.h +@@ -29,8 +29,9 @@ + #define AA_CLASS_NET 4 + #define AA_CLASS_RLIMITS 5 + #define AA_CLASS_DOMAIN 6 ++#define AA_CLASS_MOUNT 7 + +-#define AA_CLASS_LAST AA_CLASS_DOMAIN ++#define AA_CLASS_LAST AA_CLASS_MOUNT + + /* Control parameters settable through module/boot flags */ + extern enum audit_mode aa_g_audit; +diff --git a/security/apparmor/include/audit.h b/security/apparmor/include/audit.h +index c1ff09c..7b90900c 100644 +--- a/security/apparmor/include/audit.h ++++ b/security/apparmor/include/audit.h +@@ -73,6 +73,10 @@ enum aa_ops { + OP_FMMAP, + OP_FMPROT, + ++ OP_PIVOTROOT, ++ OP_MOUNT, ++ OP_UMOUNT, ++ + OP_CREATE, + OP_POST_CREATE, + OP_BIND, +@@ -121,6 +125,13 @@ struct apparmor_audit_data { + unsigned long max; + } rlim; + struct { ++ const char *src_name; ++ const char *type; ++ const char *trans; ++ const char *data; ++ unsigned long flags; ++ } mnt; ++ struct { + const char *target; + u32 request; + u32 denied; +diff --git a/security/apparmor/include/domain.h b/security/apparmor/include/domain.h +index de04464..a3f70c5 100644 +--- a/security/apparmor/include/domain.h ++++ b/security/apparmor/include/domain.h +@@ -23,6 +23,8 @@ struct aa_domain { + char **table; + }; + ++struct aa_profile *x_table_lookup(struct aa_profile *profile, u32 xindex); ++ + int apparmor_bprm_set_creds(struct linux_binprm *bprm); + int apparmor_bprm_secureexec(struct linux_binprm *bprm); + void apparmor_bprm_committing_creds(struct linux_binprm *bprm); +diff --git a/security/apparmor/include/mount.h b/security/apparmor/include/mount.h new file mode 100644 -index 0000000..dc8c744 +index 0000000..bc17a53 --- /dev/null -+++ b/security/apparmor/apparmorfs-24.c -@@ -0,0 +1,287 @@ ++++ b/security/apparmor/include/mount.h +@@ -0,0 +1,54 @@ +/* + * AppArmor security module + * -+ * This file contains AppArmor /sys/kernel/secrutiy/apparmor interface functions ++ * This file contains AppArmor file mediation function definitions. + * -+ * Copyright (C) 1998-2008 Novell/SUSE -+ * Copyright 2009-2010 Canonical Ltd. ++ * Copyright 2012 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. -+ * -+ * -+ * This file contain functions providing an interface for <= AppArmor 2.4 -+ * compatibility. It is dependent on CONFIG_SECURITY_APPARMOR_COMPAT_24 -+ * being set (see Makefile). + */ + -+#include -+#include -+#include -+#include -+#include -+#include ++#ifndef __AA_MOUNT_H ++#define __AA_MOUNT_H + -+#include "include/apparmor.h" -+#include "include/audit.h" -+#include "include/context.h" -+#include "include/policy.h" ++#include ++#include + ++#include "domain.h" ++#include "policy.h" + -+/* apparmor/matching */ -+static ssize_t aa_matching_read(struct file *file, char __user *buf, -+ size_t size, loff_t *ppos) -+{ -+ const char matching[] = "pattern=aadfa audit perms=crwxamlk/ " -+ "user::other"; ++/* mount perms */ ++#define AA_MAY_PIVOTROOT 0x01 ++#define AA_MAY_MOUNT 0x02 ++#define AA_MAY_UMOUNT 0x04 ++#define AA_AUDIT_DATA 0x40 ++#define AA_CONT_MATCH 0x40 + -+ return simple_read_from_buffer(buf, size, ppos, matching, -+ sizeof(matching) - 1); -+} ++#define AA_MS_IGNORE_MASK (MS_KERNMOUNT | MS_NOSEC | MS_ACTIVE | MS_BORN) + -+const struct file_operations aa_fs_matching_fops = { -+ .read = aa_matching_read, -+}; ++int aa_remount(struct aa_profile *profile, struct path *path, ++ unsigned long flags, void *data); + -+/* apparmor/features */ -+static ssize_t aa_features_read(struct file *file, char __user *buf, -+ size_t size, loff_t *ppos) -+{ -+ const char features[] = "file=3.1 capability=2.0 network=1.0 " -+ "change_hat=1.5 change_profile=1.1 " "aanamespaces=1.1 rlimit=1.1"; ++int aa_bind_mount(struct aa_profile *profile, struct path *path, ++ const char *old_name, unsigned long flags); + -+ return simple_read_from_buffer(buf, size, ppos, features, -+ sizeof(features) - 1); -+} + -+const struct file_operations aa_fs_features_fops = { -+ .read = aa_features_read, -+}; ++int aa_mount_change_type(struct aa_profile *profile, struct path *path, ++ unsigned long flags); + -+/** -+ * __next_namespace - find the next namespace to list -+ * @root: root namespace to stop search at (NOT NULL) -+ * @ns: current ns position (NOT NULL) -+ * -+ * Find the next namespace from @ns under @root and handle all locking needed -+ * while switching current namespace. -+ * -+ * Returns: next namespace or NULL if at last namespace under @root -+ * NOTE: will not unlock root->lock -+ */ -+static struct aa_namespace *__next_namespace(struct aa_namespace *root, -+ struct aa_namespace *ns) ++int aa_move_mount(struct aa_profile *profile, struct path *path, ++ const char *old_name); ++ ++int aa_new_mount(struct aa_profile *profile, const char *dev_name, ++ struct path *path, const char *type, unsigned long flags, ++ void *data); ++ ++int aa_umount(struct aa_profile *profile, struct vfsmount *mnt, int flags); ++ ++int aa_pivotroot(struct aa_profile *profile, struct path *old_path, ++ struct path *new_path); ++ ++#endif /* __AA_MOUNT_H */ +diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c +index 3cde194..4512cc6 100644 +--- a/security/apparmor/lsm.c ++++ b/security/apparmor/lsm.c +@@ -36,6 +36,7 @@ + #include "include/path.h" + #include "include/policy.h" + #include "include/procattr.h" ++#include "include/mount.h" + + /* Flag indicating whether initialization completed */ + int apparmor_initialized __initdata; +@@ -512,6 +513,60 @@ static int apparmor_file_mprotect(struct vm_area_struct *vma, + !(vma->vm_flags & VM_SHARED) ? MAP_PRIVATE : 0); + } + ++static int apparmor_sb_mount(char *dev_name, struct path *path, char *type, ++ unsigned long flags, void *data) +{ -+ struct aa_namespace *parent; ++ struct aa_profile *profile; ++ int error = 0; + -+ /* is next namespace a child */ -+ if (!list_empty(&ns->sub_ns)) { -+ struct aa_namespace *next; -+ next = list_first_entry(&ns->sub_ns, typeof(*ns), base.list); -+ read_lock(&next->lock); -+ return next; -+ } ++ /* Discard magic */ ++ if ((flags & MS_MGC_MSK) == MS_MGC_VAL) ++ flags &= ~MS_MGC_MSK; + -+ /* check if the next ns is a sibling, parent, gp, .. */ -+ parent = ns->parent; -+ while (parent) { -+ read_unlock(&ns->lock); -+ list_for_each_entry_continue(ns, &parent->sub_ns, base.list) { -+ read_lock(&ns->lock); -+ return ns; -+ } -+ if (parent == root) -+ return NULL; -+ ns = parent; -+ parent = parent->parent; ++ flags &= ~AA_MS_IGNORE_MASK; ++ ++ profile = __aa_current_profile(); ++ if (!unconfined(profile)) { ++ if (flags & MS_REMOUNT) ++ error = aa_remount(profile, path, flags, data); ++ else if (flags & MS_BIND) ++ error = aa_bind_mount(profile, path, dev_name, flags); ++ else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | ++ MS_UNBINDABLE)) ++ error = aa_mount_change_type(profile, path, flags); ++ else if (flags & MS_MOVE) ++ error = aa_move_mount(profile, path, dev_name); ++ else ++ error = aa_new_mount(profile, dev_name, path, type, ++ flags, data); + } ++ return error; ++} + -+ return NULL; ++static int apparmor_sb_umount(struct vfsmount *mnt, int flags) ++{ ++ struct aa_profile *profile; ++ int error = 0; ++ ++ profile = __aa_current_profile(); ++ if (!unconfined(profile)) ++ error = aa_umount(profile, mnt, flags); ++ ++ return error; +} + -+/** -+ * __first_profile - find the first profile in a namespace -+ * @root: namespace that is root of profiles being displayed (NOT NULL) -+ * @ns: namespace to start in (NOT NULL) -+ * -+ * Returns: unrefcounted profile or NULL if no profile -+ */ -+static struct aa_profile *__first_profile(struct aa_namespace *root, -+ struct aa_namespace *ns) ++static int apparmor_sb_pivotroot(struct path *old_path, struct path *new_path) +{ -+ for ( ; ns; ns = __next_namespace(root, ns)) { -+ if (!list_empty(&ns->base.profiles)) -+ return list_first_entry(&ns->base.profiles, -+ struct aa_profile, base.list); -+ } -+ return NULL; ++ struct aa_profile *profile; ++ int error = 0; ++ ++ profile = __aa_current_profile(); ++ if (!unconfined(profile)) ++ error = aa_pivotroot(profile, old_path, new_path); ++ ++ return error; +} + -+/** -+ * __next_profile - step to the next profile in a profile tree -+ * @profile: current profile in tree (NOT NULL) + static int apparmor_getprocattr(struct task_struct *task, char *name, + char **value) + { +@@ -729,6 +784,10 @@ static struct security_operations apparmor_ops = { + .capget = apparmor_capget, + .capable = apparmor_capable, + ++ .sb_mount = apparmor_sb_mount, ++ .sb_umount = apparmor_sb_umount, ++ .sb_pivotroot = apparmor_sb_pivotroot, ++ + .path_link = apparmor_path_link, + .path_unlink = apparmor_path_unlink, + .path_symlink = apparmor_path_symlink, +diff --git a/security/apparmor/mount.c b/security/apparmor/mount.c +new file mode 100644 +index 0000000..63d8493 +--- /dev/null ++++ b/security/apparmor/mount.c +@@ -0,0 +1,620 @@ ++/* ++ * AppArmor security module + * -+ * Perform a depth first taversal on the profile tree in a namespace ++ * This file contains AppArmor mediation of files + * -+ * Returns: next profile or NULL if done -+ * Requires: profile->ns.lock to be held ++ * Copyright (C) 1998-2008 Novell/SUSE ++ * Copyright 2009-2012 Canonical Ltd. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation, version 2 of the ++ * License. + */ -+static struct aa_profile *__next_profile(struct aa_profile *p) -+{ -+ struct aa_profile *parent; -+ struct aa_namespace *ns = p->ns; + -+ /* is next profile a child */ -+ if (!list_empty(&p->base.profiles)) -+ return list_first_entry(&p->base.profiles, typeof(*p), -+ base.list); ++#include ++#include ++#include + -+ /* is next profile a sibling, parent sibling, gp, subling, .. */ -+ parent = p->parent; -+ while (parent) { -+ list_for_each_entry_continue(p, &parent->base.profiles, -+ base.list) -+ return p; -+ p = parent; -+ parent = parent->parent; -+ } ++#include "include/apparmor.h" ++#include "include/audit.h" ++#include "include/context.h" ++#include "include/domain.h" ++#include "include/file.h" ++#include "include/match.h" ++#include "include/mount.h" ++#include "include/path.h" ++#include "include/policy.h" + -+ /* is next another profile in the namespace */ -+ list_for_each_entry_continue(p, &ns->base.profiles, base.list) -+ return p; + -+ return NULL; ++static void audit_mnt_flags(struct audit_buffer *ab, unsigned long flags) ++{ ++ if (flags & MS_RDONLY) ++ audit_log_format(ab, "ro"); ++ else ++ audit_log_format(ab, "rw"); ++ if (flags & MS_NOSUID) ++ audit_log_format(ab, ", nosuid"); ++ if (flags & MS_NODEV) ++ audit_log_format(ab, ", nodev"); ++ if (flags & MS_NOEXEC) ++ audit_log_format(ab, ", noexec"); ++ if (flags & MS_SYNCHRONOUS) ++ audit_log_format(ab, ", sync"); ++ if (flags & MS_REMOUNT) ++ audit_log_format(ab, ", remount"); ++ if (flags & MS_MANDLOCK) ++ audit_log_format(ab, ", mand"); ++ if (flags & MS_DIRSYNC) ++ audit_log_format(ab, ", dirsync"); ++ if (flags & MS_NOATIME) ++ audit_log_format(ab, ", noatime"); ++ if (flags & MS_NODIRATIME) ++ audit_log_format(ab, ", nodiratime"); ++ if (flags & MS_BIND) ++ audit_log_format(ab, flags & MS_REC ? ", rbind" : ", bind"); ++ if (flags & MS_MOVE) ++ audit_log_format(ab, ", move"); ++ if (flags & MS_SILENT) ++ audit_log_format(ab, ", silent"); ++ if (flags & MS_POSIXACL) ++ audit_log_format(ab, ", acl"); ++ if (flags & MS_UNBINDABLE) ++ audit_log_format(ab, flags & MS_REC ? ", runbindable" : ++ ", unbindable"); ++ if (flags & MS_PRIVATE) ++ audit_log_format(ab, flags & MS_REC ? ", rprivate" : ++ ", private"); ++ if (flags & MS_SLAVE) ++ audit_log_format(ab, flags & MS_REC ? ", rslave" : ++ ", slave"); ++ if (flags & MS_SHARED) ++ audit_log_format(ab, flags & MS_REC ? ", rshared" : ++ ", shared"); ++ if (flags & MS_RELATIME) ++ audit_log_format(ab, ", relatime"); ++ if (flags & MS_I_VERSION) ++ audit_log_format(ab, ", iversion"); ++ if (flags & MS_STRICTATIME) ++ audit_log_format(ab, ", strictatime"); ++ if (flags & MS_NOUSER) ++ audit_log_format(ab, ", nouser"); +} + +/** -+ * next_profile - step to the next profile in where ever it may be -+ * @root: root namespace (NOT NULL) -+ * @profile: current profile (NOT NULL) -+ * -+ * Returns: next profile or NULL if there isn't one ++ * audit_cb - call back for mount specific audit fields ++ * @ab: audit_buffer (NOT NULL) ++ * @va: audit struct to audit values of (NOT NULL) + */ -+static struct aa_profile *next_profile(struct aa_namespace *root, -+ struct aa_profile *profile) ++static void audit_cb(struct audit_buffer *ab, void *va) +{ -+ struct aa_profile *next = __next_profile(profile); -+ if (next) -+ return next; ++ struct common_audit_data *sa = va; + -+ /* finished all profiles in namespace move to next namespace */ -+ return __first_profile(root, __next_namespace(root, profile->ns)); ++ if (sa->aad->mnt.type) { ++ audit_log_format(ab, " fstype="); ++ audit_log_untrustedstring(ab, sa->aad->mnt.type); ++ } ++ if (sa->aad->mnt.src_name) { ++ audit_log_format(ab, " srcname="); ++ audit_log_untrustedstring(ab, sa->aad->mnt.src_name); ++ } ++ if (sa->aad->mnt.trans) { ++ audit_log_format(ab, " trans="); ++ audit_log_untrustedstring(ab, sa->aad->mnt.trans); ++ } ++ if (sa->aad->mnt.flags || sa->aad->op == OP_MOUNT) { ++ audit_log_format(ab, " flags=\""); ++ audit_mnt_flags(ab, sa->aad->mnt.flags); ++ audit_log_format(ab, "\""); ++ } ++ if (sa->aad->mnt.data) { ++ audit_log_format(ab, " options="); ++ audit_log_untrustedstring(ab, sa->aad->mnt.data); ++ } +} + +/** -+ * p_start - start a depth first traversal of profile tree -+ * @f: seq_file to fill -+ * @pos: current position ++ * audit_mount - handle the auditing of mount operations ++ * @profile: the profile being enforced (NOT NULL) ++ * @gfp: allocation flags ++ * @op: operation being mediated (NOT NULL) ++ * @name: name of object being mediated (MAYBE NULL) ++ * @src_name: src_name of object being mediated (MAYBE_NULL) ++ * @type: type of filesystem (MAYBE_NULL) ++ * @trans: name of trans (MAYBE NULL) ++ * @flags: filesystem idependent mount flags ++ * @data: filesystem mount flags ++ * @request: permissions requested ++ * @perms: the permissions computed for the request (NOT NULL) ++ * @info: extra information message (MAYBE NULL) ++ * @error: 0 if operation allowed else failure error code + * -+ * Returns: first profile under current namespace or NULL if none found -+ * -+ * acquires first ns->lock ++ * Returns: %0 or error on failure + */ -+static void *p_start(struct seq_file *f, loff_t *pos) -+ __acquires(root->lock) ++static int audit_mount(struct aa_profile *profile, gfp_t gfp, int op, ++ const char *name, const char *src_name, ++ const char *type, const char *trans, ++ unsigned long flags, const void *data, u32 request, ++ struct file_perms *perms, const char *info, int error) +{ -+ struct aa_profile *profile = NULL; -+ struct aa_namespace *root = aa_current_profile()->ns; -+ loff_t l = *pos; -+ f->private = aa_get_namespace(root); ++ int audit_type = AUDIT_APPARMOR_AUTO; ++ struct common_audit_data sa; ++ struct apparmor_audit_data aad = { }; + ++ if (likely(!error)) { ++ u32 mask = perms->audit; + -+ /* find the first profile */ -+ read_lock(&root->lock); -+ profile = __first_profile(root, root); ++ if (unlikely(AUDIT_MODE(profile) == AUDIT_ALL)) ++ mask = 0xffff; + -+ /* skip to position */ -+ for (; profile && l > 0; l--) -+ profile = next_profile(root, profile); ++ /* mask off perms that are not being force audited */ ++ request &= mask; + -+ return profile; ++ if (likely(!request)) ++ return 0; ++ audit_type = AUDIT_APPARMOR_AUDIT; ++ } else { ++ /* only report permissions that were denied */ ++ request = request & ~perms->allow; ++ ++ if (request & perms->kill) ++ audit_type = AUDIT_APPARMOR_KILL; ++ ++ /* quiet known rejects, assumes quiet and kill do not overlap */ ++ if ((request & perms->quiet) && ++ AUDIT_MODE(profile) != AUDIT_NOQUIET && ++ AUDIT_MODE(profile) != AUDIT_ALL) ++ request &= ~perms->quiet; ++ ++ if (!request) ++ return COMPLAIN_MODE(profile) ? ++ complain_error(error) : error; ++ } ++ ++ COMMON_AUDIT_DATA_INIT(&sa, NONE); ++ sa.aad = &aad; ++ sa.aad->op = op; ++ sa.aad->name = name; ++ sa.aad->mnt.src_name = src_name; ++ sa.aad->mnt.type = type; ++ sa.aad->mnt.trans = trans; ++ sa.aad->mnt.flags = flags; ++ if (data && (perms->audit & AA_AUDIT_DATA)) ++ sa.aad->mnt.data = data; ++ sa.aad->info = info; ++ sa.aad->error = error; ++ ++ return aa_audit(audit_type, profile, gfp, &sa, audit_cb); +} + +/** -+ * p_next - read the next profile entry -+ * @f: seq_file to fill -+ * @p: profile previously returned -+ * @pos: current position ++ * match_mnt_flags - Do an ordered match on mount flags ++ * @dfa: dfa to match against ++ * @state: state to start in ++ * @flags: mount flags to match against + * -+ * Returns: next profile after @p or NULL if none ++ * Mount flags are encoded as an ordered match. This is done instead of ++ * checking against a simple bitmask, to allow for logical operations ++ * on the flags. + * -+ * may acquire/release locks in namespace tree as necessary ++ * Returns: next state after flags match + */ -+static void *p_next(struct seq_file *f, void *p, loff_t *pos) ++static unsigned int match_mnt_flags(struct aa_dfa *dfa, unsigned int state, ++ unsigned long flags) +{ -+ struct aa_profile *profile = p; -+ struct aa_namespace *root = f->private; -+ (*pos)++; ++ unsigned int i; + -+ return next_profile(root, profile); ++ for (i = 0; i <= 31 ; ++i) { ++ if ((1 << i) & flags) ++ state = aa_dfa_next(dfa, state, i + 1); ++ } ++ ++ return state; +} + +/** -+ * p_stop - stop depth first traversal -+ * @f: seq_file we are filling -+ * @p: the last profile writen ++ * compute_mnt_perms - compute mount permission associated with @state ++ * @dfa: dfa to match against (NOT NULL) ++ * @state: state match finished in + * -+ * Release all locking done by p_start/p_next on namespace tree ++ * Returns: mount permissions + */ -+static void p_stop(struct seq_file *f, void *p) -+ __releases(root->lock) ++static struct file_perms compute_mnt_perms(struct aa_dfa *dfa, ++ unsigned int state) +{ -+ struct aa_profile *profile = p; -+ struct aa_namespace *root = f->private, *ns; ++ struct file_perms perms; + -+ if (profile) { -+ for (ns = profile->ns; ns && ns != root; ns = ns->parent) -+ read_unlock(&ns->lock); ++ perms.kill = 0; ++ perms.allow = dfa_user_allow(dfa, state); ++ perms.audit = dfa_user_audit(dfa, state); ++ perms.quiet = dfa_user_quiet(dfa, state); ++ perms.xindex = dfa_user_xindex(dfa, state); ++ ++ return perms; ++} ++ ++static const char const *mnt_info_table[] = { ++ "match succeeded", ++ "failed mntpnt match", ++ "failed srcname match", ++ "failed type match", ++ "failed flags match", ++ "failed data match" ++}; ++ ++/* ++ * Returns 0 on success else element that match failed in, this is the ++ * index into the mnt_info_table above ++ */ ++static int do_match_mnt(struct aa_dfa *dfa, unsigned int start, ++ const char *mntpnt, const char *devname, ++ const char *type, unsigned long flags, ++ void *data, bool binary, struct file_perms *perms) ++{ ++ unsigned int state; ++ ++ state = aa_dfa_match(dfa, start, mntpnt); ++ state = aa_dfa_null_transition(dfa, state); ++ if (!state) ++ return 1; ++ ++ if (devname) ++ state = aa_dfa_match(dfa, state, devname); ++ state = aa_dfa_null_transition(dfa, state); ++ if (!state) ++ return 2; ++ ++ if (type) ++ state = aa_dfa_match(dfa, state, type); ++ state = aa_dfa_null_transition(dfa, state); ++ if (!state) ++ return 3; ++ ++ state = match_mnt_flags(dfa, state, flags); ++ if (!state) ++ return 4; ++ *perms = compute_mnt_perms(dfa, state); ++ if (perms->allow & AA_MAY_MOUNT) ++ return 0; ++ ++ /* only match data if not binary and the DFA flags data is expected */ ++ if (data && !binary && (perms->allow & AA_CONT_MATCH)) { ++ state = aa_dfa_null_transition(dfa, state); ++ if (!state) ++ return 4; ++ ++ state = aa_dfa_match(dfa, state, data); ++ if (!state) ++ return 5; ++ *perms = compute_mnt_perms(dfa, state); ++ if (perms->allow & AA_MAY_MOUNT) ++ return 0; + } -+ read_unlock(&root->lock); -+ aa_put_namespace(root); ++ ++ /* failed at end of flags match */ ++ return 4; +} + +/** -+ * seq_show_profile - show a profile entry -+ * @f: seq_file to file -+ * @p: current position (profile) (NOT NULL) ++ * match_mnt - handle path matching for mount ++ * @profile: the confining profile ++ * @mntpnt: string for the mntpnt (NOT NULL) ++ * @devname: string for the devname/src_name (MAYBE NULL) ++ * @type: string for the dev type (MAYBE NULL) ++ * @flags: mount flags to match ++ * @data: fs mount data (MAYBE NULL) ++ * @binary: whether @data is binary ++ * @perms: Returns: permission found by the match ++ * @info: Returns: infomation string about the match for logging + * -+ * Returns: error on failure ++ * Returns: 0 on success else error + */ -+static int seq_show_profile(struct seq_file *f, void *p) ++static int match_mnt(struct aa_profile *profile, const char *mntpnt, ++ const char *devname, const char *type, ++ unsigned long flags, void *data, bool binary, ++ struct file_perms *perms, const char **info) +{ -+ struct aa_profile *profile = (struct aa_profile *)p; -+ struct aa_namespace *root = f->private; ++ int pos; + -+ if (profile->ns != root) -+ seq_printf(f, ":%s://", aa_ns_name(root, profile->ns)); -+ seq_printf(f, "%s (%s)\n", profile->base.hname, -+ COMPLAIN_MODE(profile) ? "complain" : "enforce"); ++ if (!profile->policy.dfa) ++ return -EACCES; ++ ++ pos = do_match_mnt(profile->policy.dfa, ++ profile->policy.start[AA_CLASS_MOUNT], ++ mntpnt, devname, type, flags, data, binary, perms); ++ if (pos) { ++ *info = mnt_info_table[pos]; ++ return -EACCES; ++ } + + return 0; +} + -+static const struct seq_operations aa_fs_profiles_op = { -+ .start = p_start, -+ .next = p_next, -+ .stop = p_stop, -+ .show = seq_show_profile, -+}; ++static int path_flags(struct aa_profile *profile, struct path *path) ++{ ++ return profile->path_flags | ++ S_ISDIR(path->dentry->d_inode->i_mode) ? PATH_IS_DIR : 0; ++} + -+static int profiles_open(struct inode *inode, struct file *file) ++int aa_remount(struct aa_profile *profile, struct path *path, ++ unsigned long flags, void *data) +{ -+ return seq_open(file, &aa_fs_profiles_op); ++ struct file_perms perms = { }; ++ const char *name, *info = NULL; ++ char *buffer = NULL; ++ int binary, error; ++ ++ binary = path->dentry->d_sb->s_type->fs_flags & FS_BINARY_MOUNTDATA; ++ ++ error = aa_path_name(path, path_flags(profile, path), &buffer, &name, ++ &info); ++ if (error) ++ goto audit; ++ ++ error = match_mnt(profile, name, NULL, NULL, flags, data, binary, ++ &perms, &info); ++ ++audit: ++ error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, NULL, NULL, ++ NULL, flags, data, AA_MAY_MOUNT, &perms, info, ++ error); ++ kfree(buffer); ++ ++ return error; +} + -+static int profiles_release(struct inode *inode, struct file *file) ++int aa_bind_mount(struct aa_profile *profile, struct path *path, ++ const char *dev_name, unsigned long flags) +{ -+ return seq_release(inode, file); ++ struct file_perms perms = { }; ++ char *buffer = NULL, *old_buffer = NULL; ++ const char *name, *old_name = NULL, *info = NULL; ++ struct path old_path; ++ int error; ++ ++ if (!dev_name || !*dev_name) ++ return -EINVAL; ++ ++ flags &= MS_REC | MS_BIND; ++ ++ error = aa_path_name(path, path_flags(profile, path), &buffer, &name, ++ &info); ++ if (error) ++ goto audit; ++ ++ error = kern_path(dev_name, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &old_path); ++ if (error) ++ goto audit; ++ ++ error = aa_path_name(&old_path, path_flags(profile, &old_path), ++ &old_buffer, &old_name, &info); ++ path_put(&old_path); ++ if (error) ++ goto audit; ++ ++ error = match_mnt(profile, name, old_name, NULL, flags, NULL, 0, ++ &perms, &info); ++ ++audit: ++ error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, old_name, ++ NULL, NULL, flags, NULL, AA_MAY_MOUNT, &perms, ++ info, error); ++ kfree(buffer); ++ kfree(old_buffer); ++ ++ return error; +} + -+const struct file_operations aa_fs_profiles_fops = { -+ .open = profiles_open, -+ .read = seq_read, -+ .llseek = seq_lseek, -+ .release = profiles_release, -+}; -diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.c -index 0848292..28c52ac 100644 ---- a/security/apparmor/apparmorfs.c -+++ b/security/apparmor/apparmorfs.c -@@ -187,7 +187,11 @@ void __init aa_destroy_aafs(void) - aafs_remove(".remove"); - aafs_remove(".replace"); - aafs_remove(".load"); -- -+#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24 -+ aafs_remove("profiles"); -+ aafs_remove("matching"); -+ aafs_remove("features"); -+#endif - securityfs_remove(aa_fs_dentry); - aa_fs_dentry = NULL; - } -@@ -218,7 +222,17 @@ int __init aa_create_aafs(void) - aa_fs_dentry = NULL; - goto error; - } -- -+#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24 -+ error = aafs_create("matching", 0444, &aa_fs_matching_fops); ++int aa_mount_change_type(struct aa_profile *profile, struct path *path, ++ unsigned long flags) ++{ ++ struct file_perms perms = { }; ++ char *buffer = NULL; ++ const char *name, *info = NULL; ++ int error; ++ ++ /* These are the flags allowed by do_change_type() */ ++ flags &= (MS_REC | MS_SILENT | MS_SHARED | MS_PRIVATE | MS_SLAVE | ++ MS_UNBINDABLE); ++ ++ error = aa_path_name(path, path_flags(profile, path), &buffer, &name, ++ &info); + if (error) -+ goto error; -+ error = aafs_create("features", 0444, &aa_fs_features_fops); ++ goto audit; ++ ++ error = match_mnt(profile, name, NULL, NULL, flags, NULL, 0, &perms, ++ &info); ++ ++audit: ++ error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, NULL, NULL, ++ NULL, flags, NULL, AA_MAY_MOUNT, &perms, info, ++ error); ++ kfree(buffer); ++ ++ return error; ++} ++ ++int aa_move_mount(struct aa_profile *profile, struct path *path, ++ const char *orig_name) ++{ ++ struct file_perms perms = { }; ++ char *buffer = NULL, *old_buffer = NULL; ++ const char *name, *old_name = NULL, *info = NULL; ++ struct path old_path; ++ int error; ++ ++ if (!orig_name || !*orig_name) ++ return -EINVAL; ++ ++ error = aa_path_name(path, path_flags(profile, path), &buffer, &name, ++ &info); + if (error) -+ goto error; -+#endif -+ error = aafs_create("profiles", 0440, &aa_fs_profiles_fops); ++ goto audit; ++ ++ error = kern_path(orig_name, LOOKUP_FOLLOW, &old_path); + if (error) -+ goto error; - error = aafs_create(".load", 0640, &aa_fs_profile_load); - if (error) - goto error; -diff --git a/security/apparmor/include/apparmorfs.h b/security/apparmor/include/apparmorfs.h -index cb1e93a..14f955c 100644 ---- a/security/apparmor/include/apparmorfs.h -+++ b/security/apparmor/include/apparmorfs.h -@@ -17,4 +17,10 @@ - - extern void __init aa_destroy_aafs(void); - -+#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24 -+extern const struct file_operations aa_fs_matching_fops; -+extern const struct file_operations aa_fs_features_fops; -+extern const struct file_operations aa_fs_profiles_fops; -+#endif -+ - #endif /* __AA_APPARMORFS_H */ --- -1.7.0.4 - -From f17b28f64b963c47e76737f7bb7f58ce3a7c5249 Mon Sep 17 00:00:00 2001 -From: John Johansen -Date: Tue, 20 Jul 2010 06:57:08 -0700 -Subject: [PATCH 3/3] AppArmor: Allow dfa backward compatibility with broken userspace - -The apparmor_parser when compiling policy could generate invalid dfas -that did not have sufficient padding to avoid invalid references, when -used by the kernel. The kernels check to verify the next/check table -size was broken meaning invalid dfas were being created by userspace -and not caught. - -To remain compatible with old tools that are not fixed, pad the loaded -dfas next/check table. The dfa's themselves are valid except for the -high padding for potentially invalid transitions (high bounds error), -which have a maximimum is 256 entries. So just allocate an extra null filled -256 entries for the next/check tables. This will guarentee all bounds -are good and invalid transitions go to the null (0) state. - -Signed-off-by: John Johansen ---- - security/apparmor/match.c | 17 +++++++++++++++++ - 1 files changed, 17 insertions(+), 0 deletions(-) - -diff --git a/security/apparmor/match.c b/security/apparmor/match.c -index 06d764c..cf92856 100644 ---- a/security/apparmor/match.c -+++ b/security/apparmor/match.c -@@ -57,8 +57,17 @@ static struct table_header *unpack_table(char *blob, size_t bsize) - if (bsize < tsize) - goto out; - -+ /* Pad table allocation for next/check by 256 entries to remain -+ * backwards compatible with old (buggy) tools and remain safe without -+ * run time checks -+ */ -+ if (th.td_id == YYTD_ID_NXT || th.td_id == YYTD_ID_CHK) -+ tsize += 256 * th.td_flags; -+ - table = kvmalloc(tsize); - if (table) { -+ /* ensure the pad is clear, else there will be errors */ -+ memset(table, 0, tsize); - *table = th; - if (th.td_flags == YYTD_DATA8) - UNPACK_ARRAY(table->td_data, blob, th.td_lolen, -@@ -134,11 +143,19 @@ static int verify_dfa(struct aa_dfa *dfa, int flags) - goto out; - - if (flags & DFA_FLAG_VERIFY_STATES) { -+ int warning = 0; - for (i = 0; i < state_count; i++) { - if (DEFAULT_TABLE(dfa)[i] >= state_count) - goto out; - /* TODO: do check that DEF state recursion terminates */ - if (BASE_TABLE(dfa)[i] + 255 >= trans_count) { -+ if (warning) -+ continue; -+ printk(KERN_WARNING "AppArmor DFA next/check " -+ "upper bounds error fixed, upgrade " -+ "user space tools \n"); -+ warning = 1; -+ } else if (BASE_TABLE(dfa)[i] >= trans_count) { - printk(KERN_ERR "AppArmor DFA next/check upper " - "bounds error\n"); - goto out; --- -1.7.0.4 - ++ goto audit; ++ ++ error = aa_path_name(&old_path, path_flags(profile, &old_path), ++ &old_buffer, &old_name, &info); ++ path_put(&old_path); ++ if (error) ++ goto audit; ++ ++ error = match_mnt(profile, name, old_name, NULL, MS_MOVE, NULL, 0, ++ &perms, &info); ++ ++audit: ++ error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, old_name, ++ NULL, NULL, MS_MOVE, NULL, AA_MAY_MOUNT, &perms, ++ info, error); ++ kfree(buffer); ++ kfree(old_buffer); ++ ++ return error; ++} ++ ++int aa_new_mount(struct aa_profile *profile, const char *orig_dev_name, ++ struct path *path, const char *type, unsigned long flags, ++ void *data) ++{ ++ struct file_perms perms = { }; ++ char *buffer = NULL, *dev_buffer = NULL; ++ const char *name = NULL, *dev_name = NULL, *info = NULL; ++ int binary = 1; ++ int error; ++ ++ dev_name = orig_dev_name; ++ if (type) { ++ int requires_dev; ++ struct file_system_type *fstype = get_fs_type(type); ++ if (!fstype) ++ return -ENODEV; ++ ++ binary = fstype->fs_flags & FS_BINARY_MOUNTDATA; ++ requires_dev = fstype->fs_flags & FS_REQUIRES_DEV; ++ put_filesystem(fstype); ++ ++ if (requires_dev) { ++ struct path dev_path; ++ ++ if (!dev_name || !*dev_name) { ++ error = -ENOENT; ++ goto out; ++ } ++ ++ error = kern_path(dev_name, LOOKUP_FOLLOW, &dev_path); ++ if (error) ++ goto audit; ++ ++ error = aa_path_name(&dev_path, ++ path_flags(profile, &dev_path), ++ &dev_buffer, &dev_name, &info); ++ path_put(&dev_path); ++ if (error) ++ goto audit; ++ } ++ } ++ ++ error = aa_path_name(path, path_flags(profile, path), &buffer, &name, ++ &info); ++ if (error) ++ goto audit; ++ ++ error = match_mnt(profile, name, dev_name, type, flags, data, binary, ++ &perms, &info); ++ ++audit: ++ error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, dev_name, ++ type, NULL, flags, data, AA_MAY_MOUNT, &perms, info, ++ error); ++ kfree(buffer); ++ kfree(dev_buffer); ++ ++out: ++ return error; ++ ++} ++ ++int aa_umount(struct aa_profile *profile, struct vfsmount *mnt, int flags) ++{ ++ struct file_perms perms = { }; ++ char *buffer = NULL; ++ const char *name, *info = NULL; ++ int error; ++ ++ struct path path = { mnt, mnt->mnt_root }; ++ error = aa_path_name(&path, path_flags(profile, &path), &buffer, &name, ++ &info); ++ if (error) ++ goto audit; ++ ++ if (!error && profile->policy.dfa) { ++ unsigned int state; ++ state = aa_dfa_match(profile->policy.dfa, ++ profile->policy.start[AA_CLASS_MOUNT], ++ name); ++ perms = compute_mnt_perms(profile->policy.dfa, state); ++ } ++ ++ if (AA_MAY_UMOUNT & ~perms.allow) ++ error = -EACCES; ++ ++audit: ++ error = audit_mount(profile, GFP_KERNEL, OP_UMOUNT, name, NULL, NULL, ++ NULL, 0, NULL, AA_MAY_UMOUNT, &perms, info, error); ++ kfree(buffer); ++ ++ return error; ++} ++ ++int aa_pivotroot(struct aa_profile *profile, struct path *old_path, ++ struct path *new_path) ++{ ++ struct file_perms perms = { }; ++ struct aa_profile *target = NULL; ++ char *old_buffer = NULL, *new_buffer = NULL; ++ const char *old_name, *new_name = NULL, *info = NULL; ++ int error; ++ ++ error = aa_path_name(old_path, path_flags(profile, old_path), ++ &old_buffer, &old_name, &info); ++ if (error) ++ goto audit; ++ ++ error = aa_path_name(new_path, path_flags(profile, new_path), ++ &new_buffer, &new_name, &info); ++ if (error) ++ goto audit; ++ ++ if (profile->policy.dfa) { ++ unsigned int state; ++ state = aa_dfa_match(profile->policy.dfa, ++ profile->policy.start[AA_CLASS_MOUNT], ++ new_name); ++ state = aa_dfa_null_transition(profile->policy.dfa, state); ++ state = aa_dfa_match(profile->policy.dfa, state, old_name); ++ perms = compute_mnt_perms(profile->policy.dfa, state); ++ } ++ ++ if (AA_MAY_PIVOTROOT & perms.allow) { ++ if ((perms.xindex & AA_X_TYPE_MASK) == AA_X_TABLE) { ++ target = x_table_lookup(profile, perms.xindex); ++ if (!target) ++ error = -ENOENT; ++ else ++ error = aa_replace_current_profile(target); ++ } ++ } else ++ error = -EACCES; ++ ++audit: ++ error = audit_mount(profile, GFP_KERNEL, OP_PIVOTROOT, new_name, ++ old_name, NULL, target ? target->base.name : NULL, ++ 0, NULL, AA_MAY_PIVOTROOT, &perms, info, error); ++ aa_put_profile(target); ++ kfree(old_buffer); ++ kfree(new_buffer); ++ ++ return error; ++} diff --git a/kernel-vserver-2.3.patch b/kernel-vserver-2.3.patch index 70ae18f3..546e37a9 100644 --- a/kernel-vserver-2.3.patch +++ b/kernel-vserver-2.3.patch @@ -1,6 +1,6 @@ -diff -NurpP --minimal linux-3.3.1/Documentation/vserver/debug.txt linux-3.3.1-vs2.3.3.2/Documentation/vserver/debug.txt ---- linux-3.3.1/Documentation/vserver/debug.txt 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/Documentation/vserver/debug.txt 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/Documentation/vserver/debug.txt linux-3.4-vs2.3.3.4/Documentation/vserver/debug.txt +--- linux-3.4/Documentation/vserver/debug.txt 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/Documentation/vserver/debug.txt 2012-05-21 18:15:04.000000000 +0200 @@ -0,0 +1,154 @@ + +debug_cvirt: @@ -156,9 +156,9 @@ diff -NurpP --minimal linux-3.3.1/Documentation/vserver/debug.txt linux-3.3.1-vs + m 2^m "vx_acc_page[%5d,%s,%2d]: %5d%s" + "vx_acc_pages[%5d,%s,%2d]: %5d += %5d" + "vx_pages_avail[%5d,%s,%2d]: %5ld > %5d + %5d" -diff -NurpP --minimal linux-3.3.1/arch/alpha/Kconfig linux-3.3.1-vs2.3.3.2/arch/alpha/Kconfig ---- linux-3.3.1/arch/alpha/Kconfig 2012-03-19 19:46:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/alpha/Kconfig 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/alpha/Kconfig linux-3.4-vs2.3.3.4/arch/alpha/Kconfig +--- linux-3.4/arch/alpha/Kconfig 2012-05-21 18:06:12.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/alpha/Kconfig 2012-05-21 18:15:04.000000000 +0200 @@ -662,6 +662,8 @@ config DUMMY_CONSOLE depends on VGA_HOSE default y @@ -168,9 +168,9 @@ diff -NurpP --minimal linux-3.3.1/arch/alpha/Kconfig linux-3.3.1-vs2.3.3.2/arch/ source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/alpha/kernel/entry.S linux-3.3.1-vs2.3.3.2/arch/alpha/kernel/entry.S ---- linux-3.3.1/arch/alpha/kernel/entry.S 2010-10-21 13:06:45.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/arch/alpha/kernel/entry.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/alpha/kernel/entry.S linux-3.4-vs2.3.3.4/arch/alpha/kernel/entry.S +--- linux-3.4/arch/alpha/kernel/entry.S 2010-10-21 13:06:45.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/alpha/kernel/entry.S 2012-05-21 18:15:04.000000000 +0200 @@ -860,24 +860,15 @@ sys_getxgid: .globl sys_getxpid .ent sys_getxpid @@ -203,9 +203,9 @@ diff -NurpP --minimal linux-3.3.1/arch/alpha/kernel/entry.S linux-3.3.1-vs2.3.3. ret .end sys_getxpid -diff -NurpP --minimal linux-3.3.1/arch/alpha/kernel/ptrace.c linux-3.3.1-vs2.3.3.2/arch/alpha/kernel/ptrace.c ---- linux-3.3.1/arch/alpha/kernel/ptrace.c 2011-01-05 21:48:40.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/alpha/kernel/ptrace.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/alpha/kernel/ptrace.c linux-3.4-vs2.3.3.4/arch/alpha/kernel/ptrace.c +--- linux-3.4/arch/alpha/kernel/ptrace.c 2012-05-21 18:06:12.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/alpha/kernel/ptrace.c 2012-05-21 18:15:04.000000000 +0200 @@ -13,6 +13,7 @@ #include #include @@ -214,9 +214,9 @@ diff -NurpP --minimal linux-3.3.1/arch/alpha/kernel/ptrace.c linux-3.3.1-vs2.3.3 #include #include -diff -NurpP --minimal linux-3.3.1/arch/alpha/kernel/systbls.S linux-3.3.1-vs2.3.3.2/arch/alpha/kernel/systbls.S ---- linux-3.3.1/arch/alpha/kernel/systbls.S 2012-01-09 16:13:54.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/alpha/kernel/systbls.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/alpha/kernel/systbls.S linux-3.4-vs2.3.3.4/arch/alpha/kernel/systbls.S +--- linux-3.4/arch/alpha/kernel/systbls.S 2012-01-09 16:13:54.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/alpha/kernel/systbls.S 2012-05-21 18:15:04.000000000 +0200 @@ -446,7 +446,7 @@ sys_call_table: .quad sys_stat64 /* 425 */ .quad sys_lstat64 @@ -226,10 +226,10 @@ diff -NurpP --minimal linux-3.3.1/arch/alpha/kernel/systbls.S linux-3.3.1-vs2.3. .quad sys_ni_syscall /* sys_mbind */ .quad sys_ni_syscall /* sys_get_mempolicy */ .quad sys_ni_syscall /* sys_set_mempolicy */ -diff -NurpP --minimal linux-3.3.1/arch/alpha/kernel/traps.c linux-3.3.1-vs2.3.3.2/arch/alpha/kernel/traps.c ---- linux-3.3.1/arch/alpha/kernel/traps.c 2010-10-21 13:06:46.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/arch/alpha/kernel/traps.c 2012-02-24 03:55:06.000000000 +0100 -@@ -183,7 +183,8 @@ die_if_kernel(char * str, struct pt_regs +diff -NurpP --minimal linux-3.4/arch/alpha/kernel/traps.c linux-3.4-vs2.3.3.4/arch/alpha/kernel/traps.c +--- linux-3.4/arch/alpha/kernel/traps.c 2012-05-21 18:06:12.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/alpha/kernel/traps.c 2012-05-21 18:15:04.000000000 +0200 +@@ -184,7 +184,8 @@ die_if_kernel(char * str, struct pt_regs #ifdef CONFIG_SMP printk("CPU %d ", hard_smp_processor_id()); #endif @@ -239,10 +239,10 @@ diff -NurpP --minimal linux-3.3.1/arch/alpha/kernel/traps.c linux-3.3.1-vs2.3.3. dik_show_regs(regs, r9_15); add_taint(TAINT_DIE); dik_show_trace((unsigned long *)(regs+1)); -diff -NurpP --minimal linux-3.3.1/arch/arm/Kconfig linux-3.3.1-vs2.3.3.2/arch/arm/Kconfig ---- linux-3.3.1/arch/arm/Kconfig 2012-03-19 19:46:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/arm/Kconfig 2012-03-19 20:52:09.000000000 +0100 -@@ -2266,6 +2266,8 @@ source "fs/Kconfig" +diff -NurpP --minimal linux-3.4/arch/arm/Kconfig linux-3.4-vs2.3.3.4/arch/arm/Kconfig +--- linux-3.4/arch/arm/Kconfig 2012-05-21 18:06:12.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/arm/Kconfig 2012-05-21 18:15:04.000000000 +0200 +@@ -2299,6 +2299,8 @@ source "fs/Kconfig" source "arch/arm/Kconfig.debug" @@ -251,9 +251,9 @@ diff -NurpP --minimal linux-3.3.1/arch/arm/Kconfig linux-3.3.1-vs2.3.3.2/arch/ar source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/arm/kernel/calls.S linux-3.3.1-vs2.3.3.2/arch/arm/kernel/calls.S ---- linux-3.3.1/arch/arm/kernel/calls.S 2012-01-09 16:13:54.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/arm/kernel/calls.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/arm/kernel/calls.S linux-3.4-vs2.3.3.4/arch/arm/kernel/calls.S +--- linux-3.4/arch/arm/kernel/calls.S 2012-01-09 16:13:54.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/arm/kernel/calls.S 2012-05-21 18:15:04.000000000 +0200 @@ -322,7 +322,7 @@ /* 310 */ CALL(sys_request_key) CALL(sys_keyctl) @@ -263,10 +263,10 @@ diff -NurpP --minimal linux-3.3.1/arch/arm/kernel/calls.S linux-3.3.1-vs2.3.3.2/ CALL(sys_ioprio_set) /* 315 */ CALL(sys_ioprio_get) CALL(sys_inotify_init) -diff -NurpP --minimal linux-3.3.1/arch/arm/kernel/process.c linux-3.3.1-vs2.3.3.2/arch/arm/kernel/process.c ---- linux-3.3.1/arch/arm/kernel/process.c 2012-03-19 19:46:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/arm/kernel/process.c 2012-02-24 03:55:06.000000000 +0100 -@@ -353,7 +353,8 @@ void __show_regs(struct pt_regs *regs) +diff -NurpP --minimal linux-3.4/arch/arm/kernel/process.c linux-3.4-vs2.3.3.4/arch/arm/kernel/process.c +--- linux-3.4/arch/arm/kernel/process.c 2012-05-21 18:06:13.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/arm/kernel/process.c 2012-05-21 18:15:04.000000000 +0200 +@@ -355,7 +355,8 @@ void __show_regs(struct pt_regs *regs) void show_regs(struct pt_regs * regs) { printk("\n"); @@ -276,10 +276,10 @@ diff -NurpP --minimal linux-3.3.1/arch/arm/kernel/process.c linux-3.3.1-vs2.3.3. __show_regs(regs); dump_stack(); } -diff -NurpP --minimal linux-3.3.1/arch/arm/kernel/traps.c linux-3.3.1-vs2.3.3.2/arch/arm/kernel/traps.c ---- linux-3.3.1/arch/arm/kernel/traps.c 2012-03-19 19:46:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/arm/kernel/traps.c 2012-02-24 03:55:06.000000000 +0100 -@@ -244,8 +244,8 @@ static int __die(const char *str, int er +diff -NurpP --minimal linux-3.4/arch/arm/kernel/traps.c linux-3.4-vs2.3.3.4/arch/arm/kernel/traps.c +--- linux-3.4/arch/arm/kernel/traps.c 2012-05-21 18:06:13.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/arm/kernel/traps.c 2012-05-21 18:15:04.000000000 +0200 +@@ -249,8 +249,8 @@ static int __die(const char *str, int er print_modules(); __show_regs(regs); @@ -290,9 +290,9 @@ diff -NurpP --minimal linux-3.3.1/arch/arm/kernel/traps.c linux-3.3.1-vs2.3.3.2/ if (!user_mode(regs) || in_interrupt()) { dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp, -diff -NurpP --minimal linux-3.3.1/arch/cris/Kconfig linux-3.3.1-vs2.3.3.2/arch/cris/Kconfig ---- linux-3.3.1/arch/cris/Kconfig 2012-03-19 19:46:39.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/cris/Kconfig 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/cris/Kconfig linux-3.4-vs2.3.3.4/arch/cris/Kconfig +--- linux-3.4/arch/cris/Kconfig 2012-03-19 19:46:39.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/cris/Kconfig 2012-05-21 18:15:04.000000000 +0200 @@ -675,6 +675,8 @@ source "drivers/staging/Kconfig" source "arch/cris/Kconfig.debug" @@ -302,9 +302,9 @@ diff -NurpP --minimal linux-3.3.1/arch/cris/Kconfig linux-3.3.1-vs2.3.3.2/arch/c source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/frv/kernel/kernel_thread.S linux-3.3.1-vs2.3.3.2/arch/frv/kernel/kernel_thread.S ---- linux-3.3.1/arch/frv/kernel/kernel_thread.S 2008-12-25 00:26:37.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/frv/kernel/kernel_thread.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/frv/kernel/kernel_thread.S linux-3.4-vs2.3.3.4/arch/frv/kernel/kernel_thread.S +--- linux-3.4/arch/frv/kernel/kernel_thread.S 2008-12-25 00:26:37.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/frv/kernel/kernel_thread.S 2012-05-21 18:15:04.000000000 +0200 @@ -37,7 +37,7 @@ kernel_thread: # start by forking the current process, but with shared VM @@ -314,9 +314,9 @@ diff -NurpP --minimal linux-3.3.1/arch/frv/kernel/kernel_thread.S linux-3.3.1-vs sethi.p #0xe4e4,gr9 ; second syscall arg [newsp] setlo #0xe4e4,gr9 setlos.p #0,gr10 ; third syscall arg [parent_tidptr] -diff -NurpP --minimal linux-3.3.1/arch/h8300/Kconfig linux-3.3.1-vs2.3.3.2/arch/h8300/Kconfig ---- linux-3.3.1/arch/h8300/Kconfig 2012-03-19 19:46:39.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/h8300/Kconfig 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/h8300/Kconfig linux-3.4-vs2.3.3.4/arch/h8300/Kconfig +--- linux-3.4/arch/h8300/Kconfig 2012-03-19 19:46:39.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/h8300/Kconfig 2012-05-21 18:15:04.000000000 +0200 @@ -214,6 +214,8 @@ source "fs/Kconfig" source "arch/h8300/Kconfig.debug" @@ -326,9 +326,9 @@ diff -NurpP --minimal linux-3.3.1/arch/h8300/Kconfig linux-3.3.1-vs2.3.3.2/arch/ source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/ia64/Kconfig linux-3.3.1-vs2.3.3.2/arch/ia64/Kconfig ---- linux-3.3.1/arch/ia64/Kconfig 2012-03-19 19:46:39.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/ia64/Kconfig 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/ia64/Kconfig linux-3.4-vs2.3.3.4/arch/ia64/Kconfig +--- linux-3.4/arch/ia64/Kconfig 2012-03-19 19:46:39.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/ia64/Kconfig 2012-05-21 18:15:04.000000000 +0200 @@ -654,6 +654,8 @@ source "fs/Kconfig" source "arch/ia64/Kconfig.debug" @@ -338,9 +338,9 @@ diff -NurpP --minimal linux-3.3.1/arch/ia64/Kconfig linux-3.3.1-vs2.3.3.2/arch/i source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/ia64/kernel/entry.S linux-3.3.1-vs2.3.3.2/arch/ia64/kernel/entry.S ---- linux-3.3.1/arch/ia64/kernel/entry.S 2012-03-19 19:46:40.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/ia64/kernel/entry.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/ia64/kernel/entry.S linux-3.4-vs2.3.3.4/arch/ia64/kernel/entry.S +--- linux-3.4/arch/ia64/kernel/entry.S 2012-03-19 19:46:40.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/ia64/kernel/entry.S 2012-05-21 18:15:04.000000000 +0200 @@ -1714,7 +1714,7 @@ sys_call_table: data8 sys_mq_notify data8 sys_mq_getsetattr @@ -350,10 +350,10 @@ diff -NurpP --minimal linux-3.3.1/arch/ia64/kernel/entry.S linux-3.3.1-vs2.3.3.2 data8 sys_waitid // 1270 data8 sys_add_key data8 sys_request_key -diff -NurpP --minimal linux-3.3.1/arch/ia64/kernel/process.c linux-3.3.1-vs2.3.3.2/arch/ia64/kernel/process.c ---- linux-3.3.1/arch/ia64/kernel/process.c 2011-03-15 18:06:39.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/ia64/kernel/process.c 2012-02-24 03:55:06.000000000 +0100 -@@ -109,8 +109,8 @@ show_regs (struct pt_regs *regs) +diff -NurpP --minimal linux-3.4/arch/ia64/kernel/process.c linux-3.4-vs2.3.3.4/arch/ia64/kernel/process.c +--- linux-3.4/arch/ia64/kernel/process.c 2012-05-21 18:06:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/ia64/kernel/process.c 2012-05-21 18:15:04.000000000 +0200 +@@ -110,8 +110,8 @@ show_regs (struct pt_regs *regs) unsigned long ip = regs->cr_iip + ia64_psr(regs)->ri; print_modules(); @@ -364,9 +364,9 @@ diff -NurpP --minimal linux-3.3.1/arch/ia64/kernel/process.c linux-3.3.1-vs2.3.3 printk("psr : %016lx ifs : %016lx ip : [<%016lx>] %s (%s)\n", regs->cr_ipsr, regs->cr_ifs, ip, print_tainted(), init_utsname()->release); -diff -NurpP --minimal linux-3.3.1/arch/ia64/kernel/ptrace.c linux-3.3.1-vs2.3.3.2/arch/ia64/kernel/ptrace.c ---- linux-3.3.1/arch/ia64/kernel/ptrace.c 2012-03-19 19:46:40.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/ia64/kernel/ptrace.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/ia64/kernel/ptrace.c linux-3.4-vs2.3.3.4/arch/ia64/kernel/ptrace.c +--- linux-3.4/arch/ia64/kernel/ptrace.c 2012-05-21 18:06:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/ia64/kernel/ptrace.c 2012-05-21 18:15:04.000000000 +0200 @@ -21,6 +21,7 @@ #include #include @@ -375,10 +375,10 @@ diff -NurpP --minimal linux-3.3.1/arch/ia64/kernel/ptrace.c linux-3.3.1-vs2.3.3. #include #include -diff -NurpP --minimal linux-3.3.1/arch/ia64/kernel/traps.c linux-3.3.1-vs2.3.3.2/arch/ia64/kernel/traps.c ---- linux-3.3.1/arch/ia64/kernel/traps.c 2010-07-07 18:31:01.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/arch/ia64/kernel/traps.c 2012-02-24 03:55:06.000000000 +0100 -@@ -59,8 +59,9 @@ die (const char *str, struct pt_regs *re +diff -NurpP --minimal linux-3.4/arch/ia64/kernel/traps.c linux-3.4-vs2.3.3.4/arch/ia64/kernel/traps.c +--- linux-3.4/arch/ia64/kernel/traps.c 2012-05-21 18:06:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/ia64/kernel/traps.c 2012-05-21 18:15:04.000000000 +0200 +@@ -60,8 +60,9 @@ die (const char *str, struct pt_regs *re put_cpu(); if (++die.lock_owner_depth < 3) { @@ -390,7 +390,7 @@ diff -NurpP --minimal linux-3.3.1/arch/ia64/kernel/traps.c linux-3.3.1-vs2.3.3.2 if (notify_die(DIE_OOPS, str, regs, err, 255, SIGSEGV) != NOTIFY_STOP) show_regs(regs); -@@ -323,8 +324,9 @@ handle_fpu_swa (int fp_fault, struct pt_ +@@ -324,8 +325,9 @@ handle_fpu_swa (int fp_fault, struct pt_ if ((last.count & 15) < 5 && (ia64_fetchadd(1, &last.count, acq) & 15) < 5) { last.time = current_jiffies + 5 * HZ; printk(KERN_WARNING @@ -402,10 +402,10 @@ diff -NurpP --minimal linux-3.3.1/arch/ia64/kernel/traps.c linux-3.3.1-vs2.3.3.2 } } } -diff -NurpP --minimal linux-3.3.1/arch/m32r/kernel/traps.c linux-3.3.1-vs2.3.3.2/arch/m32r/kernel/traps.c ---- linux-3.3.1/arch/m32r/kernel/traps.c 2011-10-24 18:44:58.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/arch/m32r/kernel/traps.c 2012-02-24 03:55:06.000000000 +0100 -@@ -196,8 +196,9 @@ static void show_registers(struct pt_reg +diff -NurpP --minimal linux-3.4/arch/m32r/kernel/traps.c linux-3.4-vs2.3.3.4/arch/m32r/kernel/traps.c +--- linux-3.4/arch/m32r/kernel/traps.c 2012-05-21 18:06:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/m32r/kernel/traps.c 2012-05-21 18:15:04.000000000 +0200 +@@ -195,8 +195,9 @@ static void show_registers(struct pt_reg } else { printk("SPI: %08lx\n", sp); } @@ -417,10 +417,10 @@ diff -NurpP --minimal linux-3.3.1/arch/m32r/kernel/traps.c linux-3.3.1-vs2.3.3.2 /* * When in-kernel, we also print out the stack and code at the -diff -NurpP --minimal linux-3.3.1/arch/m68k/Kconfig linux-3.3.1-vs2.3.3.2/arch/m68k/Kconfig ---- linux-3.3.1/arch/m68k/Kconfig 2012-03-19 19:46:40.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/m68k/Kconfig 2012-02-24 03:55:06.000000000 +0100 -@@ -145,6 +145,8 @@ source "fs/Kconfig" +diff -NurpP --minimal linux-3.4/arch/m68k/Kconfig linux-3.4-vs2.3.3.4/arch/m68k/Kconfig +--- linux-3.4/arch/m68k/Kconfig 2012-05-21 18:06:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/m68k/Kconfig 2012-05-21 18:15:04.000000000 +0200 +@@ -146,6 +146,8 @@ source "fs/Kconfig" source "arch/m68k/Kconfig.debug" @@ -429,10 +429,10 @@ diff -NurpP --minimal linux-3.3.1/arch/m68k/Kconfig linux-3.3.1-vs2.3.3.2/arch/m source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/mips/Kconfig linux-3.3.1-vs2.3.3.2/arch/mips/Kconfig ---- linux-3.3.1/arch/mips/Kconfig 2012-03-19 19:46:41.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/mips/Kconfig 2012-02-24 03:55:06.000000000 +0100 -@@ -2514,6 +2514,8 @@ source "fs/Kconfig" +diff -NurpP --minimal linux-3.4/arch/mips/Kconfig linux-3.4-vs2.3.3.4/arch/mips/Kconfig +--- linux-3.4/arch/mips/Kconfig 2012-05-21 18:06:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/mips/Kconfig 2012-05-21 18:15:04.000000000 +0200 +@@ -2516,6 +2516,8 @@ source "fs/Kconfig" source "arch/mips/Kconfig.debug" @@ -441,9 +441,9 @@ diff -NurpP --minimal linux-3.3.1/arch/mips/Kconfig linux-3.3.1-vs2.3.3.2/arch/m source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/ptrace.c linux-3.3.1-vs2.3.3.2/arch/mips/kernel/ptrace.c ---- linux-3.3.1/arch/mips/kernel/ptrace.c 2012-03-19 19:46:43.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/mips/kernel/ptrace.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/mips/kernel/ptrace.c linux-3.4-vs2.3.3.4/arch/mips/kernel/ptrace.c +--- linux-3.4/arch/mips/kernel/ptrace.c 2012-05-21 18:06:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/mips/kernel/ptrace.c 2012-05-21 18:15:04.000000000 +0200 @@ -25,6 +25,7 @@ #include #include @@ -452,7 +452,7 @@ diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/ptrace.c linux-3.3.1-vs2.3.3. #include #include -@@ -263,6 +264,9 @@ long arch_ptrace(struct task_struct *chi +@@ -262,6 +263,9 @@ long arch_ptrace(struct task_struct *chi void __user *datavp = (void __user *) data; unsigned long __user *datalp = (void __user *) data; @@ -462,9 +462,9 @@ diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/ptrace.c linux-3.3.1-vs2.3.3. switch (request) { /* when I and D space are separate, these will need to be fixed. */ case PTRACE_PEEKTEXT: /* read word at location addr. */ -diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/scall32-o32.S linux-3.3.1-vs2.3.3.2/arch/mips/kernel/scall32-o32.S ---- linux-3.3.1/arch/mips/kernel/scall32-o32.S 2012-01-09 16:14:05.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/mips/kernel/scall32-o32.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/mips/kernel/scall32-o32.S linux-3.4-vs2.3.3.4/arch/mips/kernel/scall32-o32.S +--- linux-3.4/arch/mips/kernel/scall32-o32.S 2012-01-09 16:14:05.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/mips/kernel/scall32-o32.S 2012-05-21 18:15:04.000000000 +0200 @@ -523,7 +523,7 @@ einval: li v0, -ENOSYS sys sys_mq_timedreceive 5 sys sys_mq_notify 2 /* 4275 */ @@ -474,9 +474,9 @@ diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/scall32-o32.S linux-3.3.1-vs2 sys sys_waitid 5 sys sys_ni_syscall 0 /* available, was setaltroot */ sys sys_add_key 5 /* 4280 */ -diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/scall64-64.S linux-3.3.1-vs2.3.3.2/arch/mips/kernel/scall64-64.S ---- linux-3.3.1/arch/mips/kernel/scall64-64.S 2012-01-09 16:14:05.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/mips/kernel/scall64-64.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/mips/kernel/scall64-64.S linux-3.4-vs2.3.3.4/arch/mips/kernel/scall64-64.S +--- linux-3.4/arch/mips/kernel/scall64-64.S 2012-01-09 16:14:05.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/mips/kernel/scall64-64.S 2012-05-21 18:15:04.000000000 +0200 @@ -362,7 +362,7 @@ sys_call_table: PTR sys_mq_timedreceive PTR sys_mq_notify @@ -486,9 +486,9 @@ diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/scall64-64.S linux-3.3.1-vs2. PTR sys_waitid PTR sys_ni_syscall /* available, was setaltroot */ PTR sys_add_key -diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/scall64-n32.S linux-3.3.1-vs2.3.3.2/arch/mips/kernel/scall64-n32.S ---- linux-3.3.1/arch/mips/kernel/scall64-n32.S 2012-01-09 16:14:05.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/mips/kernel/scall64-n32.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/mips/kernel/scall64-n32.S linux-3.4-vs2.3.3.4/arch/mips/kernel/scall64-n32.S +--- linux-3.4/arch/mips/kernel/scall64-n32.S 2012-01-09 16:14:05.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/mips/kernel/scall64-n32.S 2012-05-21 18:15:04.000000000 +0200 @@ -361,7 +361,7 @@ EXPORT(sysn32_call_table) PTR compat_sys_mq_timedreceive PTR compat_sys_mq_notify @@ -498,9 +498,9 @@ diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/scall64-n32.S linux-3.3.1-vs2 PTR compat_sys_waitid PTR sys_ni_syscall /* available, was setaltroot */ PTR sys_add_key -diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/scall64-o32.S linux-3.3.1-vs2.3.3.2/arch/mips/kernel/scall64-o32.S ---- linux-3.3.1/arch/mips/kernel/scall64-o32.S 2012-01-09 16:14:05.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/mips/kernel/scall64-o32.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/mips/kernel/scall64-o32.S linux-3.4-vs2.3.3.4/arch/mips/kernel/scall64-o32.S +--- linux-3.4/arch/mips/kernel/scall64-o32.S 2012-01-09 16:14:05.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/mips/kernel/scall64-o32.S 2012-05-21 18:15:04.000000000 +0200 @@ -480,7 +480,7 @@ sys_call_table: PTR compat_sys_mq_timedreceive PTR compat_sys_mq_notify /* 4275 */ @@ -510,10 +510,10 @@ diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/scall64-o32.S linux-3.3.1-vs2 PTR sys_32_waitid PTR sys_ni_syscall /* available, was setaltroot */ PTR sys_add_key /* 4280 */ -diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/traps.c linux-3.3.1-vs2.3.3.2/arch/mips/kernel/traps.c ---- linux-3.3.1/arch/mips/kernel/traps.c 2012-03-19 19:46:43.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/mips/kernel/traps.c 2012-03-19 20:52:09.000000000 +0100 -@@ -344,9 +344,10 @@ void show_registers(struct pt_regs *regs +diff -NurpP --minimal linux-3.4/arch/mips/kernel/traps.c linux-3.4-vs2.3.3.4/arch/mips/kernel/traps.c +--- linux-3.4/arch/mips/kernel/traps.c 2012-05-21 18:06:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/mips/kernel/traps.c 2012-05-21 18:15:04.000000000 +0200 +@@ -343,9 +343,10 @@ void show_registers(struct pt_regs *regs __show_regs(regs); print_modules(); @@ -527,9 +527,9 @@ diff -NurpP --minimal linux-3.3.1/arch/mips/kernel/traps.c linux-3.3.1-vs2.3.3.2 if (cpu_has_userlocal) { unsigned long tls; -diff -NurpP --minimal linux-3.3.1/arch/parisc/Kconfig linux-3.3.1-vs2.3.3.2/arch/parisc/Kconfig ---- linux-3.3.1/arch/parisc/Kconfig 2012-03-19 19:46:44.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/parisc/Kconfig 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/parisc/Kconfig linux-3.4-vs2.3.3.4/arch/parisc/Kconfig +--- linux-3.4/arch/parisc/Kconfig 2012-03-19 19:46:44.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/parisc/Kconfig 2012-05-21 18:15:04.000000000 +0200 @@ -279,6 +279,8 @@ source "fs/Kconfig" source "arch/parisc/Kconfig.debug" @@ -539,9 +539,9 @@ diff -NurpP --minimal linux-3.3.1/arch/parisc/Kconfig linux-3.3.1-vs2.3.3.2/arch source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/parisc/kernel/syscall_table.S linux-3.3.1-vs2.3.3.2/arch/parisc/kernel/syscall_table.S ---- linux-3.3.1/arch/parisc/kernel/syscall_table.S 2011-10-24 18:45:00.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/arch/parisc/kernel/syscall_table.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/parisc/kernel/syscall_table.S linux-3.4-vs2.3.3.4/arch/parisc/kernel/syscall_table.S +--- linux-3.4/arch/parisc/kernel/syscall_table.S 2011-10-24 18:45:00.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/parisc/kernel/syscall_table.S 2012-05-21 18:15:04.000000000 +0200 @@ -361,7 +361,7 @@ ENTRY_COMP(mbind) /* 260 */ ENTRY_COMP(get_mempolicy) @@ -551,10 +551,10 @@ diff -NurpP --minimal linux-3.3.1/arch/parisc/kernel/syscall_table.S linux-3.3.1 ENTRY_SAME(add_key) ENTRY_SAME(request_key) /* 265 */ ENTRY_SAME(keyctl) -diff -NurpP --minimal linux-3.3.1/arch/parisc/kernel/traps.c linux-3.3.1-vs2.3.3.2/arch/parisc/kernel/traps.c ---- linux-3.3.1/arch/parisc/kernel/traps.c 2011-10-24 18:45:00.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/arch/parisc/kernel/traps.c 2012-02-24 03:55:06.000000000 +0100 -@@ -236,8 +236,9 @@ void die_if_kernel(char *str, struct pt_ +diff -NurpP --minimal linux-3.4/arch/parisc/kernel/traps.c linux-3.4-vs2.3.3.4/arch/parisc/kernel/traps.c +--- linux-3.4/arch/parisc/kernel/traps.c 2012-05-21 18:06:28.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/parisc/kernel/traps.c 2012-05-21 18:15:04.000000000 +0200 +@@ -235,8 +235,9 @@ void die_if_kernel(char *str, struct pt_ if (err == 0) return; /* STFU */ @@ -566,7 +566,7 @@ diff -NurpP --minimal linux-3.3.1/arch/parisc/kernel/traps.c linux-3.3.1-vs2.3.3 #ifdef PRINT_USER_FAULTS /* XXX for debugging only */ show_regs(regs); -@@ -270,8 +271,8 @@ void die_if_kernel(char *str, struct pt_ +@@ -269,8 +270,8 @@ void die_if_kernel(char *str, struct pt_ pdc_console_restart(); if (err) @@ -577,9 +577,9 @@ diff -NurpP --minimal linux-3.3.1/arch/parisc/kernel/traps.c linux-3.3.1-vs2.3.3 /* Wot's wrong wif bein' racy? */ if (current->thread.flags & PARISC_KERNEL_DEATH) { -diff -NurpP --minimal linux-3.3.1/arch/parisc/mm/fault.c linux-3.3.1-vs2.3.3.2/arch/parisc/mm/fault.c ---- linux-3.3.1/arch/parisc/mm/fault.c 2010-08-02 16:52:06.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/arch/parisc/mm/fault.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/parisc/mm/fault.c linux-3.4-vs2.3.3.4/arch/parisc/mm/fault.c +--- linux-3.4/arch/parisc/mm/fault.c 2010-08-02 16:52:06.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/parisc/mm/fault.c 2012-05-21 18:15:04.000000000 +0200 @@ -237,8 +237,9 @@ bad_area: #ifdef PRINT_USER_FAULTS @@ -592,10 +592,10 @@ diff -NurpP --minimal linux-3.3.1/arch/parisc/mm/fault.c linux-3.3.1-vs2.3.3.2/a if (vma) { printk(KERN_DEBUG "vm_start = 0x%08lx, vm_end = 0x%08lx\n", vma->vm_start, vma->vm_end); -diff -NurpP --minimal linux-3.3.1/arch/powerpc/Kconfig linux-3.3.1-vs2.3.3.2/arch/powerpc/Kconfig ---- linux-3.3.1/arch/powerpc/Kconfig 2012-03-19 19:46:44.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/powerpc/Kconfig 2012-02-24 03:55:06.000000000 +0100 -@@ -997,6 +997,8 @@ source "lib/Kconfig" +diff -NurpP --minimal linux-3.4/arch/powerpc/Kconfig linux-3.4-vs2.3.3.4/arch/powerpc/Kconfig +--- linux-3.4/arch/powerpc/Kconfig 2012-05-21 18:06:28.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/powerpc/Kconfig 2012-05-21 18:15:04.000000000 +0200 +@@ -1002,6 +1002,8 @@ source "lib/Kconfig" source "arch/powerpc/Kconfig.debug" @@ -604,9 +604,9 @@ diff -NurpP --minimal linux-3.3.1/arch/powerpc/Kconfig linux-3.3.1-vs2.3.3.2/arc source "security/Kconfig" config KEYS_COMPAT -diff -NurpP --minimal linux-3.3.1/arch/powerpc/include/asm/unistd.h linux-3.3.1-vs2.3.3.2/arch/powerpc/include/asm/unistd.h ---- linux-3.3.1/arch/powerpc/include/asm/unistd.h 2012-01-09 16:14:05.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/powerpc/include/asm/unistd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/powerpc/include/asm/unistd.h linux-3.4-vs2.3.3.4/arch/powerpc/include/asm/unistd.h +--- linux-3.4/arch/powerpc/include/asm/unistd.h 2012-01-09 16:14:05.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/powerpc/include/asm/unistd.h 2012-05-21 18:15:04.000000000 +0200 @@ -275,7 +275,7 @@ #endif #define __NR_rtas 255 @@ -616,10 +616,10 @@ diff -NurpP --minimal linux-3.3.1/arch/powerpc/include/asm/unistd.h linux-3.3.1- #define __NR_migrate_pages 258 #define __NR_mbind 259 #define __NR_get_mempolicy 260 -diff -NurpP --minimal linux-3.3.1/arch/powerpc/kernel/process.c linux-3.3.1-vs2.3.3.2/arch/powerpc/kernel/process.c ---- linux-3.3.1/arch/powerpc/kernel/process.c 2012-03-19 19:46:45.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/powerpc/kernel/process.c 2012-02-24 03:55:06.000000000 +0100 -@@ -656,8 +656,9 @@ void show_regs(struct pt_regs * regs) +diff -NurpP --minimal linux-3.4/arch/powerpc/kernel/process.c linux-3.4-vs2.3.3.4/arch/powerpc/kernel/process.c +--- linux-3.4/arch/powerpc/kernel/process.c 2012-05-21 18:06:30.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/powerpc/kernel/process.c 2012-05-21 18:15:04.000000000 +0200 +@@ -661,8 +661,9 @@ void show_regs(struct pt_regs * regs) #else printk("DAR: "REG", DSISR: %08lx\n", regs->dar, regs->dsisr); #endif @@ -631,10 +631,10 @@ diff -NurpP --minimal linux-3.3.1/arch/powerpc/kernel/process.c linux-3.3.1-vs2. #ifdef CONFIG_SMP printk(" CPU: %d", raw_smp_processor_id()); -diff -NurpP --minimal linux-3.3.1/arch/powerpc/kernel/traps.c linux-3.3.1-vs2.3.3.2/arch/powerpc/kernel/traps.c ---- linux-3.3.1/arch/powerpc/kernel/traps.c 2012-03-19 19:46:45.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/powerpc/kernel/traps.c 2012-02-24 03:55:06.000000000 +0100 -@@ -1105,8 +1105,9 @@ void nonrecoverable_exception(struct pt_ +diff -NurpP --minimal linux-3.4/arch/powerpc/kernel/traps.c linux-3.4-vs2.3.3.4/arch/powerpc/kernel/traps.c +--- linux-3.4/arch/powerpc/kernel/traps.c 2012-05-21 18:06:30.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/powerpc/kernel/traps.c 2012-05-21 18:15:04.000000000 +0200 +@@ -1118,8 +1118,9 @@ void nonrecoverable_exception(struct pt_ void trace_syscall(struct pt_regs *regs) { @@ -646,10 +646,10 @@ diff -NurpP --minimal linux-3.3.1/arch/powerpc/kernel/traps.c linux-3.3.1-vs2.3. regs->ccr&0x10000000?"Error=":"", regs->gpr[3], print_tainted()); } -diff -NurpP --minimal linux-3.3.1/arch/s390/Kconfig linux-3.3.1-vs2.3.3.2/arch/s390/Kconfig ---- linux-3.3.1/arch/s390/Kconfig 2012-03-19 19:46:48.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/s390/Kconfig 2012-03-19 20:52:09.000000000 +0100 -@@ -638,6 +638,8 @@ source "fs/Kconfig" +diff -NurpP --minimal linux-3.4/arch/s390/Kconfig linux-3.4-vs2.3.3.4/arch/s390/Kconfig +--- linux-3.4/arch/s390/Kconfig 2012-05-21 18:06:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/s390/Kconfig 2012-05-21 18:15:04.000000000 +0200 +@@ -639,6 +639,8 @@ source "fs/Kconfig" source "arch/s390/Kconfig.debug" @@ -658,9 +658,9 @@ diff -NurpP --minimal linux-3.3.1/arch/s390/Kconfig linux-3.3.1-vs2.3.3.2/arch/s source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/s390/include/asm/tlb.h linux-3.3.1-vs2.3.3.2/arch/s390/include/asm/tlb.h ---- linux-3.3.1/arch/s390/include/asm/tlb.h 2011-07-22 11:17:41.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/arch/s390/include/asm/tlb.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/s390/include/asm/tlb.h linux-3.4-vs2.3.3.4/arch/s390/include/asm/tlb.h +--- linux-3.4/arch/s390/include/asm/tlb.h 2012-05-21 18:06:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/s390/include/asm/tlb.h 2012-05-21 18:15:04.000000000 +0200 @@ -24,6 +24,7 @@ #include #include @@ -669,9 +669,9 @@ diff -NurpP --minimal linux-3.3.1/arch/s390/include/asm/tlb.h linux-3.3.1-vs2.3. #include #include #include -diff -NurpP --minimal linux-3.3.1/arch/s390/include/asm/unistd.h linux-3.3.1-vs2.3.3.2/arch/s390/include/asm/unistd.h ---- linux-3.3.1/arch/s390/include/asm/unistd.h 2012-03-19 19:46:48.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/s390/include/asm/unistd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/s390/include/asm/unistd.h linux-3.4-vs2.3.3.4/arch/s390/include/asm/unistd.h +--- linux-3.4/arch/s390/include/asm/unistd.h 2012-03-19 19:46:48.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/s390/include/asm/unistd.h 2012-05-21 18:15:04.000000000 +0200 @@ -202,7 +202,7 @@ #define __NR_clock_gettime (__NR_timer_create+6) #define __NR_clock_getres (__NR_timer_create+7) @@ -681,9 +681,9 @@ diff -NurpP --minimal linux-3.3.1/arch/s390/include/asm/unistd.h linux-3.3.1-vs2 #define __NR_statfs64 265 #define __NR_fstatfs64 266 #define __NR_remap_file_pages 267 -diff -NurpP --minimal linux-3.3.1/arch/s390/kernel/ptrace.c linux-3.3.1-vs2.3.3.2/arch/s390/kernel/ptrace.c ---- linux-3.3.1/arch/s390/kernel/ptrace.c 2012-03-19 19:46:48.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/s390/kernel/ptrace.c 2012-03-19 20:53:54.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/s390/kernel/ptrace.c linux-3.4-vs2.3.3.4/arch/s390/kernel/ptrace.c +--- linux-3.4/arch/s390/kernel/ptrace.c 2012-05-21 18:06:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/s390/kernel/ptrace.c 2012-05-21 18:15:04.000000000 +0200 @@ -21,6 +21,7 @@ #include #include @@ -692,9 +692,9 @@ diff -NurpP --minimal linux-3.3.1/arch/s390/kernel/ptrace.c linux-3.3.1-vs2.3.3. #include #include #include -diff -NurpP --minimal linux-3.3.1/arch/s390/kernel/syscalls.S linux-3.3.1-vs2.3.3.2/arch/s390/kernel/syscalls.S ---- linux-3.3.1/arch/s390/kernel/syscalls.S 2012-01-09 16:14:06.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/s390/kernel/syscalls.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/s390/kernel/syscalls.S linux-3.4-vs2.3.3.4/arch/s390/kernel/syscalls.S +--- linux-3.4/arch/s390/kernel/syscalls.S 2012-01-09 16:14:06.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/s390/kernel/syscalls.S 2012-05-21 18:15:04.000000000 +0200 @@ -271,7 +271,7 @@ SYSCALL(sys_clock_settime,sys_clock_sett SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260 */ SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper) @@ -704,10 +704,10 @@ diff -NurpP --minimal linux-3.3.1/arch/s390/kernel/syscalls.S linux-3.3.1-vs2.3. SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper) SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper) SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper) -diff -NurpP --minimal linux-3.3.1/arch/sh/Kconfig linux-3.3.1-vs2.3.3.2/arch/sh/Kconfig ---- linux-3.3.1/arch/sh/Kconfig 2012-03-19 19:46:49.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/sh/Kconfig 2012-02-24 03:55:06.000000000 +0100 -@@ -901,6 +901,8 @@ source "fs/Kconfig" +diff -NurpP --minimal linux-3.4/arch/sh/Kconfig linux-3.4-vs2.3.3.4/arch/sh/Kconfig +--- linux-3.4/arch/sh/Kconfig 2012-05-21 18:06:33.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/sh/Kconfig 2012-05-21 18:15:04.000000000 +0200 +@@ -905,6 +905,8 @@ source "fs/Kconfig" source "arch/sh/Kconfig.debug" @@ -716,9 +716,9 @@ diff -NurpP --minimal linux-3.3.1/arch/sh/Kconfig linux-3.3.1-vs2.3.3.2/arch/sh/ source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/sh/kernel/irq.c linux-3.3.1-vs2.3.3.2/arch/sh/kernel/irq.c ---- linux-3.3.1/arch/sh/kernel/irq.c 2011-07-22 11:17:41.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/arch/sh/kernel/irq.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/sh/kernel/irq.c linux-3.4-vs2.3.3.4/arch/sh/kernel/irq.c +--- linux-3.4/arch/sh/kernel/irq.c 2011-07-22 11:17:41.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/sh/kernel/irq.c 2012-05-21 18:15:04.000000000 +0200 @@ -14,6 +14,7 @@ #include #include @@ -727,10 +727,10 @@ diff -NurpP --minimal linux-3.3.1/arch/sh/kernel/irq.c linux-3.3.1-vs2.3.3.2/arc #include #include #include -diff -NurpP --minimal linux-3.3.1/arch/sparc/Kconfig linux-3.3.1-vs2.3.3.2/arch/sparc/Kconfig ---- linux-3.3.1/arch/sparc/Kconfig 2012-03-19 19:46:49.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/sparc/Kconfig 2012-02-24 03:55:06.000000000 +0100 -@@ -594,6 +594,8 @@ source "fs/Kconfig" +diff -NurpP --minimal linux-3.4/arch/sparc/Kconfig linux-3.4-vs2.3.3.4/arch/sparc/Kconfig +--- linux-3.4/arch/sparc/Kconfig 2012-05-21 18:06:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/sparc/Kconfig 2012-05-21 18:15:04.000000000 +0200 +@@ -596,6 +596,8 @@ source "fs/Kconfig" source "arch/sparc/Kconfig.debug" @@ -739,9 +739,9 @@ diff -NurpP --minimal linux-3.3.1/arch/sparc/Kconfig linux-3.3.1-vs2.3.3.2/arch/ source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/sparc/include/asm/unistd.h linux-3.3.1-vs2.3.3.2/arch/sparc/include/asm/unistd.h ---- linux-3.3.1/arch/sparc/include/asm/unistd.h 2012-01-09 16:14:07.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/sparc/include/asm/unistd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/sparc/include/asm/unistd.h linux-3.4-vs2.3.3.4/arch/sparc/include/asm/unistd.h +--- linux-3.4/arch/sparc/include/asm/unistd.h 2012-01-09 16:14:07.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/sparc/include/asm/unistd.h 2012-05-21 18:15:04.000000000 +0200 @@ -335,7 +335,7 @@ #define __NR_timer_getoverrun 264 #define __NR_timer_delete 265 @@ -751,9 +751,9 @@ diff -NurpP --minimal linux-3.3.1/arch/sparc/include/asm/unistd.h linux-3.3.1-vs #define __NR_io_setup 268 #define __NR_io_destroy 269 #define __NR_io_submit 270 -diff -NurpP --minimal linux-3.3.1/arch/sparc/kernel/systbls_32.S linux-3.3.1-vs2.3.3.2/arch/sparc/kernel/systbls_32.S ---- linux-3.3.1/arch/sparc/kernel/systbls_32.S 2012-01-09 16:14:09.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/sparc/kernel/systbls_32.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/sparc/kernel/systbls_32.S linux-3.4-vs2.3.3.4/arch/sparc/kernel/systbls_32.S +--- linux-3.4/arch/sparc/kernel/systbls_32.S 2012-01-09 16:14:09.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/sparc/kernel/systbls_32.S 2012-05-21 18:15:04.000000000 +0200 @@ -70,7 +70,7 @@ sys_call_table: /*250*/ .long sys_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_ni_syscall /*255*/ .long sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep @@ -763,9 +763,9 @@ diff -NurpP --minimal linux-3.3.1/arch/sparc/kernel/systbls_32.S linux-3.3.1-vs2 /*270*/ .long sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink /*275*/ .long sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid /*280*/ .long sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat -diff -NurpP --minimal linux-3.3.1/arch/sparc/kernel/systbls_64.S linux-3.3.1-vs2.3.3.2/arch/sparc/kernel/systbls_64.S ---- linux-3.3.1/arch/sparc/kernel/systbls_64.S 2012-01-09 16:14:09.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/sparc/kernel/systbls_64.S 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/sparc/kernel/systbls_64.S linux-3.4-vs2.3.3.4/arch/sparc/kernel/systbls_64.S +--- linux-3.4/arch/sparc/kernel/systbls_64.S 2012-01-09 16:14:09.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/sparc/kernel/systbls_64.S 2012-05-21 18:15:04.000000000 +0200 @@ -71,7 +71,7 @@ sys_call_table32: /*250*/ .word sys_mremap, compat_sys_sysctl, sys32_getsid, sys_fdatasync, sys_nis_syscall .word sys32_sync_file_range, compat_sys_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, sys32_clock_nanosleep @@ -784,9 +784,9 @@ diff -NurpP --minimal linux-3.3.1/arch/sparc/kernel/systbls_64.S linux-3.3.1-vs2 /*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink .word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid /*280*/ .word sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat -diff -NurpP --minimal linux-3.3.1/arch/um/Kconfig.rest linux-3.3.1-vs2.3.3.2/arch/um/Kconfig.rest ---- linux-3.3.1/arch/um/Kconfig.rest 2012-01-09 16:14:09.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/um/Kconfig.rest 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/um/Kconfig.rest linux-3.4-vs2.3.3.4/arch/um/Kconfig.rest +--- linux-3.4/arch/um/Kconfig.rest 2012-01-09 16:14:09.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/um/Kconfig.rest 2012-05-21 18:15:04.000000000 +0200 @@ -12,6 +12,8 @@ source "arch/um/Kconfig.net" source "fs/Kconfig" @@ -796,14 +796,14 @@ diff -NurpP --minimal linux-3.3.1/arch/um/Kconfig.rest linux-3.3.1-vs2.3.3.2/arc source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/um/include/shared/kern_constants.h linux-3.3.1-vs2.3.3.2/arch/um/include/shared/kern_constants.h ---- linux-3.3.1/arch/um/include/shared/kern_constants.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/um/include/shared/kern_constants.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/um/include/shared/kern_constants.h linux-3.4-vs2.3.3.4/arch/um/include/shared/kern_constants.h +--- linux-3.4/arch/um/include/shared/kern_constants.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/um/include/shared/kern_constants.h 2012-05-21 18:15:04.000000000 +0200 @@ -0,0 +1 @@ +#include "../../../../include/generated/asm-offsets.h" -diff -NurpP --minimal linux-3.3.1/arch/um/include/shared/user_constants.h linux-3.3.1-vs2.3.3.2/arch/um/include/shared/user_constants.h ---- linux-3.3.1/arch/um/include/shared/user_constants.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/um/include/shared/user_constants.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/um/include/shared/user_constants.h linux-3.4-vs2.3.3.4/arch/um/include/shared/user_constants.h +--- linux-3.4/arch/um/include/shared/user_constants.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/arch/um/include/shared/user_constants.h 2012-05-21 18:15:04.000000000 +0200 @@ -0,0 +1,40 @@ +/* + * DO NOT MODIFY. @@ -845,10 +845,10 @@ diff -NurpP --minimal linux-3.3.1/arch/um/include/shared/user_constants.h linux- +#define UM_PROT_WRITE 2 /* PROT_WRITE # */ +#define UM_PROT_EXEC 4 /* PROT_EXEC # */ + -diff -NurpP --minimal linux-3.3.1/arch/x86/Kconfig linux-3.3.1-vs2.3.3.2/arch/x86/Kconfig ---- linux-3.3.1/arch/x86/Kconfig 2012-03-19 19:46:49.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/x86/Kconfig 2012-02-24 03:55:06.000000000 +0100 -@@ -2213,6 +2213,8 @@ source "fs/Kconfig" +diff -NurpP --minimal linux-3.4/arch/x86/Kconfig linux-3.4-vs2.3.3.4/arch/x86/Kconfig +--- linux-3.4/arch/x86/Kconfig 2012-05-21 18:06:35.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/x86/Kconfig 2012-05-21 18:15:04.000000000 +0200 +@@ -2225,6 +2225,8 @@ source "fs/Kconfig" source "arch/x86/Kconfig.debug" @@ -857,9 +857,9 @@ diff -NurpP --minimal linux-3.3.1/arch/x86/Kconfig linux-3.3.1-vs2.3.3.2/arch/x8 source "security/Kconfig" source "crypto/Kconfig" -diff -NurpP --minimal linux-3.3.1/arch/x86/syscalls/syscall_32.tbl linux-3.3.1-vs2.3.3.2/arch/x86/syscalls/syscall_32.tbl ---- linux-3.3.1/arch/x86/syscalls/syscall_32.tbl 2012-04-03 03:01:24.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/arch/x86/syscalls/syscall_32.tbl 2012-04-03 03:02:12.000000000 +0200 +diff -NurpP --minimal linux-3.4/arch/x86/syscalls/syscall_32.tbl linux-3.4-vs2.3.3.4/arch/x86/syscalls/syscall_32.tbl +--- linux-3.4/arch/x86/syscalls/syscall_32.tbl 2012-05-21 18:06:42.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/x86/syscalls/syscall_32.tbl 2012-05-21 18:15:04.000000000 +0200 @@ -279,7 +279,7 @@ 270 i386 tgkill sys_tgkill 271 i386 utimes sys_utimes compat_sys_utimes @@ -869,21 +869,22 @@ diff -NurpP --minimal linux-3.3.1/arch/x86/syscalls/syscall_32.tbl linux-3.3.1-v 274 i386 mbind sys_mbind 275 i386 get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy 276 i386 set_mempolicy sys_set_mempolicy -diff -NurpP --minimal linux-3.3.1/arch/x86/syscalls/syscall_64.tbl linux-3.3.1-vs2.3.3.2/arch/x86/syscalls/syscall_64.tbl ---- linux-3.3.1/arch/x86/syscalls/syscall_64.tbl 2012-03-19 19:46:51.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/arch/x86/syscalls/syscall_64.tbl 2012-02-24 16:29:25.000000000 +0100 +diff -NurpP --minimal linux-3.4/arch/x86/syscalls/syscall_64.tbl linux-3.4-vs2.3.3.4/arch/x86/syscalls/syscall_64.tbl +--- linux-3.4/arch/x86/syscalls/syscall_64.tbl 2012-05-21 18:06:42.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/arch/x86/syscalls/syscall_64.tbl 2012-05-21 18:15:04.000000000 +0200 @@ -242,7 +242,7 @@ - 233 64 epoll_ctl sys_epoll_ctl - 234 64 tgkill sys_tgkill - 235 64 utimes sys_utimes + 233 common epoll_ctl sys_epoll_ctl + 234 common tgkill sys_tgkill + 235 common utimes sys_utimes -236 64 vserver +236 64 vserver sys_vserver - 237 64 mbind sys_mbind - 238 64 set_mempolicy sys_set_mempolicy - 239 64 get_mempolicy sys_get_mempolicy -diff -NurpP --minimal linux-3.3.1/drivers/block/Kconfig linux-3.3.1-vs2.3.3.2/drivers/block/Kconfig ---- linux-3.3.1/drivers/block/Kconfig 2012-03-19 19:46:52.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/block/Kconfig 2012-02-24 03:55:06.000000000 +0100 + 237 common mbind sys_mbind + 238 common set_mempolicy sys_set_mempolicy + 239 common get_mempolicy sys_get_mempolicy +Files linux-3.4/arch/x86/tools/relocs and linux-3.4-vs2.3.3.4/arch/x86/tools/relocs differ +diff -NurpP --minimal linux-3.4/drivers/block/Kconfig linux-3.4-vs2.3.3.4/drivers/block/Kconfig +--- linux-3.4/drivers/block/Kconfig 2012-05-21 18:06:43.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/drivers/block/Kconfig 2012-05-21 18:15:04.000000000 +0200 @@ -290,6 +290,13 @@ config BLK_DEV_CRYPTOLOOP source "drivers/block/drbd/Kconfig" @@ -898,9 +899,9 @@ diff -NurpP --minimal linux-3.3.1/drivers/block/Kconfig linux-3.3.1-vs2.3.3.2/dr config BLK_DEV_NBD tristate "Network block device support" depends on NET -diff -NurpP --minimal linux-3.3.1/drivers/block/Makefile linux-3.3.1-vs2.3.3.2/drivers/block/Makefile ---- linux-3.3.1/drivers/block/Makefile 2012-03-19 19:46:52.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/block/Makefile 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/drivers/block/Makefile linux-3.4-vs2.3.3.4/drivers/block/Makefile +--- linux-3.4/drivers/block/Makefile 2012-03-19 19:46:52.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/drivers/block/Makefile 2012-05-21 18:15:04.000000000 +0200 @@ -35,6 +35,7 @@ obj-$(CONFIG_VIODASD) += viodasd.o obj-$(CONFIG_BLK_DEV_SX8) += sx8.o obj-$(CONFIG_BLK_DEV_UB) += ub.o @@ -909,9 +910,9 @@ diff -NurpP --minimal linux-3.3.1/drivers/block/Makefile linux-3.3.1-vs2.3.3.2/d obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += xen-blkfront.o obj-$(CONFIG_XEN_BLKDEV_BACKEND) += xen-blkback/ -diff -NurpP --minimal linux-3.3.1/drivers/block/loop.c linux-3.3.1-vs2.3.3.2/drivers/block/loop.c ---- linux-3.3.1/drivers/block/loop.c 2012-03-19 19:46:52.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/block/loop.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/drivers/block/loop.c linux-3.4-vs2.3.3.4/drivers/block/loop.c +--- linux-3.4/drivers/block/loop.c 2012-05-21 18:06:43.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/drivers/block/loop.c 2012-05-21 18:15:04.000000000 +0200 @@ -76,6 +76,7 @@ #include #include @@ -967,9 +968,9 @@ diff -NurpP --minimal linux-3.3.1/drivers/block/loop.c linux-3.3.1-vs2.3.3.2/dri mutex_lock(&lo->lo_ctl_mutex); lo->lo_refcnt++; mutex_unlock(&lo->lo_ctl_mutex); -diff -NurpP --minimal linux-3.3.1/drivers/block/vroot.c linux-3.3.1-vs2.3.3.2/drivers/block/vroot.c ---- linux-3.3.1/drivers/block/vroot.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/block/vroot.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/drivers/block/vroot.c linux-3.4-vs2.3.3.4/drivers/block/vroot.c +--- linux-3.4/drivers/block/vroot.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/drivers/block/vroot.c 2012-05-21 18:15:04.000000000 +0200 @@ -0,0 +1,291 @@ +/* + * linux/drivers/block/vroot.c @@ -1262,9 +1263,9 @@ diff -NurpP --minimal linux-3.3.1/drivers/block/vroot.c linux-3.3.1-vs2.3.3.2/dr + +#endif + -diff -NurpP --minimal linux-3.3.1/drivers/infiniband/Kconfig linux-3.3.1-vs2.3.3.2/drivers/infiniband/Kconfig ---- linux-3.3.1/drivers/infiniband/Kconfig 2012-03-19 19:46:54.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/infiniband/Kconfig 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/drivers/infiniband/Kconfig linux-3.4-vs2.3.3.4/drivers/infiniband/Kconfig +--- linux-3.4/drivers/infiniband/Kconfig 2012-03-19 19:46:54.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/drivers/infiniband/Kconfig 2012-05-21 18:15:04.000000000 +0200 @@ -39,7 +39,7 @@ config INFINIBAND_USER_MEM config INFINIBAND_ADDR_TRANS bool @@ -1274,10 +1275,10 @@ diff -NurpP --minimal linux-3.3.1/drivers/infiniband/Kconfig linux-3.3.1-vs2.3.3 default y source "drivers/infiniband/hw/mthca/Kconfig" -diff -NurpP --minimal linux-3.3.1/drivers/infiniband/core/addr.c linux-3.3.1-vs2.3.3.2/drivers/infiniband/core/addr.c ---- linux-3.3.1/drivers/infiniband/core/addr.c 2012-03-19 19:46:54.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/infiniband/core/addr.c 2012-02-24 03:55:06.000000000 +0100 -@@ -259,7 +259,7 @@ static int addr6_resolve(struct sockaddr +diff -NurpP --minimal linux-3.4/drivers/infiniband/core/addr.c linux-3.4-vs2.3.3.4/drivers/infiniband/core/addr.c +--- linux-3.4/drivers/infiniband/core/addr.c 2012-05-21 18:06:46.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/drivers/infiniband/core/addr.c 2012-05-21 18:15:04.000000000 +0200 +@@ -263,7 +263,7 @@ static int addr6_resolve(struct sockaddr if (ipv6_addr_any(&fl6.saddr)) { ret = ipv6_dev_get_saddr(&init_net, ip6_dst_idev(dst)->dev, @@ -1286,9 +1287,9 @@ diff -NurpP --minimal linux-3.3.1/drivers/infiniband/core/addr.c linux-3.3.1-vs2 if (ret) goto put; -diff -NurpP --minimal linux-3.3.1/drivers/md/dm-ioctl.c linux-3.3.1-vs2.3.3.2/drivers/md/dm-ioctl.c ---- linux-3.3.1/drivers/md/dm-ioctl.c 2012-03-19 19:46:59.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/md/dm-ioctl.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/drivers/md/dm-ioctl.c linux-3.4-vs2.3.3.4/drivers/md/dm-ioctl.c +--- linux-3.4/drivers/md/dm-ioctl.c 2012-05-21 18:06:49.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/drivers/md/dm-ioctl.c 2012-05-21 18:15:04.000000000 +0200 @@ -16,6 +16,7 @@ #include #include @@ -1363,7 +1364,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/md/dm-ioctl.c linux-3.3.1-vs2.3.3.2/dr if (old_nl) old_nl->next = (uint32_t) ((void *) nl - (void *) old_nl); -@@ -1615,8 +1627,8 @@ static int ctl_ioctl(uint command, struc +@@ -1616,8 +1628,8 @@ static int ctl_ioctl(uint command, struc ioctl_fn fn = NULL; size_t input_param_size; @@ -1374,9 +1375,9 @@ diff -NurpP --minimal linux-3.3.1/drivers/md/dm-ioctl.c linux-3.3.1-vs2.3.3.2/dr return -EACCES; if (_IOC_TYPE(command) != DM_IOCTL) -diff -NurpP --minimal linux-3.3.1/drivers/md/dm.c linux-3.3.1-vs2.3.3.2/drivers/md/dm.c ---- linux-3.3.1/drivers/md/dm.c 2012-03-19 19:46:59.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/md/dm.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/drivers/md/dm.c linux-3.4-vs2.3.3.4/drivers/md/dm.c +--- linux-3.4/drivers/md/dm.c 2012-05-21 18:06:49.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/drivers/md/dm.c 2012-05-21 18:15:04.000000000 +0200 @@ -19,6 +19,7 @@ #include #include @@ -1442,7 +1443,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/md/dm.c linux-3.3.1-vs2.3.3.2/drivers/ /*----------------------------------------------------------------- * CRUD START: * A more elegant soln is in the works that uses the queue -@@ -1849,6 +1861,7 @@ static struct mapped_device *alloc_dev(i +@@ -1850,6 +1862,7 @@ static struct mapped_device *alloc_dev(i INIT_LIST_HEAD(&md->uevent_list); spin_lock_init(&md->uevent_lock); @@ -1450,9 +1451,9 @@ diff -NurpP --minimal linux-3.3.1/drivers/md/dm.c linux-3.3.1-vs2.3.3.2/drivers/ md->queue = blk_alloc_queue(GFP_KERNEL); if (!md->queue) goto bad_queue; -diff -NurpP --minimal linux-3.3.1/drivers/md/dm.h linux-3.3.1-vs2.3.3.2/drivers/md/dm.h ---- linux-3.3.1/drivers/md/dm.h 2012-01-09 16:14:21.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/md/dm.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/drivers/md/dm.h linux-3.4-vs2.3.3.4/drivers/md/dm.h +--- linux-3.4/drivers/md/dm.h 2012-01-09 16:14:21.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/drivers/md/dm.h 2012-05-21 18:15:04.000000000 +0200 @@ -41,6 +41,8 @@ struct dm_dev_internal { struct dm_table; struct dm_md_mempools; @@ -1462,9 +1463,9 @@ diff -NurpP --minimal linux-3.3.1/drivers/md/dm.h linux-3.3.1-vs2.3.3.2/drivers/ /*----------------------------------------------------------------- * Internal table functions. *---------------------------------------------------------------*/ -diff -NurpP --minimal linux-3.3.1/drivers/net/tun.c linux-3.3.1-vs2.3.3.2/drivers/net/tun.c ---- linux-3.3.1/drivers/net/tun.c 2012-03-19 19:47:08.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/net/tun.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/drivers/net/tun.c linux-3.4-vs2.3.3.4/drivers/net/tun.c +--- linux-3.4/drivers/net/tun.c 2012-05-21 18:07:00.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/drivers/net/tun.c 2012-05-21 18:15:04.000000000 +0200 @@ -64,6 +64,7 @@ #include #include @@ -1473,7 +1474,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/net/tun.c linux-3.3.1-vs2.3.3.2/driver #include #include #include -@@ -121,6 +122,7 @@ struct tun_struct { +@@ -120,6 +121,7 @@ struct tun_struct { unsigned int flags; uid_t owner; gid_t group; @@ -1481,7 +1482,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/net/tun.c linux-3.3.1-vs2.3.3.2/driver struct net_device *dev; netdev_features_t set_features; -@@ -910,6 +912,7 @@ static void tun_setup(struct net_device +@@ -909,6 +911,7 @@ static void tun_setup(struct net_device tun->owner = -1; tun->group = -1; @@ -1489,7 +1490,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/net/tun.c linux-3.3.1-vs2.3.3.2/driver dev->ethtool_ops = &tun_ethtool_ops; dev->destructor = tun_free_netdev; -@@ -1068,7 +1071,7 @@ static int tun_set_iff(struct net *net, +@@ -1067,7 +1070,7 @@ static int tun_set_iff(struct net *net, if (((tun->owner != -1 && cred->euid != tun->owner) || (tun->group != -1 && !in_egroup_p(tun->group))) && @@ -1498,7 +1499,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/net/tun.c linux-3.3.1-vs2.3.3.2/driver return -EPERM; err = security_tun_dev_attach(tun->socket.sk); if (err < 0) -@@ -1082,7 +1085,7 @@ static int tun_set_iff(struct net *net, +@@ -1081,7 +1084,7 @@ static int tun_set_iff(struct net *net, char *name; unsigned long flags = 0; @@ -1507,7 +1508,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/net/tun.c linux-3.3.1-vs2.3.3.2/driver return -EPERM; err = security_tun_dev_create(); if (err < 0) -@@ -1151,6 +1154,9 @@ static int tun_set_iff(struct net *net, +@@ -1150,6 +1153,9 @@ static int tun_set_iff(struct net *net, sk->sk_destruct = tun_sock_destruct; @@ -1517,7 +1518,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/net/tun.c linux-3.3.1-vs2.3.3.2/driver err = tun_attach(tun, file); if (err < 0) goto failed; -@@ -1332,6 +1338,16 @@ static long __tun_chr_ioctl(struct file +@@ -1331,6 +1337,16 @@ static long __tun_chr_ioctl(struct file tun_debug(KERN_INFO, tun, "group set to %d\n", tun->group); break; @@ -1534,9 +1535,9 @@ diff -NurpP --minimal linux-3.3.1/drivers/net/tun.c linux-3.3.1-vs2.3.3.2/driver case TUNSETLINK: /* Only allow setting the type when the interface is down */ if (tun->dev->flags & IFF_UP) { -diff -NurpP --minimal linux-3.3.1/drivers/tty/sysrq.c linux-3.3.1-vs2.3.3.2/drivers/tty/sysrq.c ---- linux-3.3.1/drivers/tty/sysrq.c 2012-03-19 19:47:19.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/tty/sysrq.c 2012-02-24 04:03:15.000000000 +0100 +diff -NurpP --minimal linux-3.4/drivers/tty/sysrq.c linux-3.4-vs2.3.3.4/drivers/tty/sysrq.c +--- linux-3.4/drivers/tty/sysrq.c 2012-05-21 18:07:16.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/drivers/tty/sysrq.c 2012-05-21 18:15:04.000000000 +0200 @@ -41,6 +41,7 @@ #include #include @@ -1545,7 +1546,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/tty/sysrq.c linux-3.3.1-vs2.3.3.2/driv #include #include -@@ -395,6 +396,21 @@ static struct sysrq_key_op sysrq_unrt_op +@@ -398,6 +399,21 @@ static struct sysrq_key_op sysrq_unrt_op .enable_mask = SYSRQ_ENABLE_RTNICE, }; @@ -1567,7 +1568,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/tty/sysrq.c linux-3.3.1-vs2.3.3.2/driv /* Key Operations table and lock */ static DEFINE_SPINLOCK(sysrq_key_table_lock); -@@ -449,7 +465,11 @@ static struct sysrq_key_op *sysrq_key_ta +@@ -452,7 +468,11 @@ static struct sysrq_key_op *sysrq_key_ta NULL, /* v */ &sysrq_showstate_blocked_op, /* w */ /* x: May be registered on ppc/powerpc for xmon */ @@ -1579,7 +1580,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/tty/sysrq.c linux-3.3.1-vs2.3.3.2/driv /* y: May be registered on sparc64 for global register dump */ NULL, /* y */ &sysrq_ftrace_dump_op, /* z */ -@@ -464,6 +484,8 @@ static int sysrq_key_table_key2index(int +@@ -467,6 +487,8 @@ static int sysrq_key_table_key2index(int retval = key - '0'; else if ((key >= 'a') && (key <= 'z')) retval = key + 10 - 'a'; @@ -1588,10 +1589,10 @@ diff -NurpP --minimal linux-3.3.1/drivers/tty/sysrq.c linux-3.3.1-vs2.3.3.2/driv else retval = -1; return retval; -diff -NurpP --minimal linux-3.3.1/drivers/tty/tty_io.c linux-3.3.1-vs2.3.3.2/drivers/tty/tty_io.c ---- linux-3.3.1/drivers/tty/tty_io.c 2012-03-19 19:47:19.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/drivers/tty/tty_io.c 2012-02-24 03:55:06.000000000 +0100 -@@ -105,6 +105,7 @@ +diff -NurpP --minimal linux-3.4/drivers/tty/tty_io.c linux-3.4-vs2.3.3.4/drivers/tty/tty_io.c +--- linux-3.4/drivers/tty/tty_io.c 2012-05-21 18:07:16.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/drivers/tty/tty_io.c 2012-05-21 18:15:04.000000000 +0200 +@@ -104,6 +104,7 @@ #include #include @@ -1599,7 +1600,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/tty/tty_io.c linux-3.3.1-vs2.3.3.2/dri #undef TTY_DEBUG_HANGUP -@@ -2131,7 +2132,8 @@ static int tiocsti(struct tty_struct *tt +@@ -2118,7 +2119,8 @@ static int tiocsti(struct tty_struct *tt char ch, mbz = 0; struct tty_ldisc *ld; @@ -1609,7 +1610,7 @@ diff -NurpP --minimal linux-3.3.1/drivers/tty/tty_io.c linux-3.3.1-vs2.3.3.2/dri return -EPERM; if (get_user(ch, p)) return -EFAULT; -@@ -2419,6 +2421,7 @@ static int tiocspgrp(struct tty_struct * +@@ -2406,6 +2408,7 @@ static int tiocspgrp(struct tty_struct * return -ENOTTY; if (get_user(pgrp_nr, p)) return -EFAULT; @@ -1617,9 +1618,9 @@ diff -NurpP --minimal linux-3.3.1/drivers/tty/tty_io.c linux-3.3.1-vs2.3.3.2/dri if (pgrp_nr < 0) return -EINVAL; rcu_read_lock(); -diff -NurpP --minimal linux-3.3.1/fs/attr.c linux-3.3.1-vs2.3.3.2/fs/attr.c ---- linux-3.3.1/fs/attr.c 2012-03-19 19:47:24.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/attr.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/attr.c linux-3.4-vs2.3.3.4/fs/attr.c +--- linux-3.4/fs/attr.c 2012-05-21 18:07:18.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/attr.c 2012-05-21 18:15:04.000000000 +0200 @@ -14,6 +14,9 @@ #include #include @@ -1660,10 +1661,10 @@ diff -NurpP --minimal linux-3.3.1/fs/attr.c linux-3.3.1-vs2.3.3.2/fs/attr.c if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) return -EPERM; } -diff -NurpP --minimal linux-3.3.1/fs/block_dev.c linux-3.3.1-vs2.3.3.2/fs/block_dev.c ---- linux-3.3.1/fs/block_dev.c 2012-03-19 19:47:24.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/block_dev.c 2012-03-19 20:52:10.000000000 +0100 -@@ -26,6 +26,7 @@ +diff -NurpP --minimal linux-3.4/fs/block_dev.c linux-3.4-vs2.3.3.4/fs/block_dev.c +--- linux-3.4/fs/block_dev.c 2012-05-21 18:07:18.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/block_dev.c 2012-05-21 18:15:04.000000000 +0200 +@@ -27,6 +27,7 @@ #include #include #include @@ -1671,7 +1672,7 @@ diff -NurpP --minimal linux-3.3.1/fs/block_dev.c linux-3.3.1-vs2.3.3.2/fs/block_ #include #include "internal.h" -@@ -580,6 +581,7 @@ struct block_device *bdget(dev_t dev) +@@ -581,6 +582,7 @@ struct block_device *bdget(dev_t dev) bdev->bd_invalidated = 0; inode->i_mode = S_IFBLK; inode->i_rdev = dev; @@ -1679,7 +1680,7 @@ diff -NurpP --minimal linux-3.3.1/fs/block_dev.c linux-3.3.1-vs2.3.3.2/fs/block_ inode->i_bdev = bdev; inode->i_data.a_ops = &def_blk_aops; mapping_set_gfp_mask(&inode->i_data, GFP_USER); -@@ -626,6 +628,11 @@ EXPORT_SYMBOL(bdput); +@@ -627,6 +629,11 @@ EXPORT_SYMBOL(bdput); static struct block_device *bd_acquire(struct inode *inode) { struct block_device *bdev; @@ -1691,7 +1692,7 @@ diff -NurpP --minimal linux-3.3.1/fs/block_dev.c linux-3.3.1-vs2.3.3.2/fs/block_ spin_lock(&bdev_lock); bdev = inode->i_bdev; -@@ -636,7 +643,7 @@ static struct block_device *bd_acquire(s +@@ -637,7 +644,7 @@ static struct block_device *bd_acquire(s } spin_unlock(&bdev_lock); @@ -1700,10 +1701,10 @@ diff -NurpP --minimal linux-3.3.1/fs/block_dev.c linux-3.3.1-vs2.3.3.2/fs/block_ if (bdev) { spin_lock(&bdev_lock); if (!inode->i_bdev) { -diff -NurpP --minimal linux-3.3.1/fs/btrfs/ctree.h linux-3.3.1-vs2.3.3.2/fs/btrfs/ctree.h ---- linux-3.3.1/fs/btrfs/ctree.h 2012-03-19 19:47:24.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/btrfs/ctree.h 2012-03-19 20:52:10.000000000 +0100 -@@ -646,11 +646,14 @@ struct btrfs_inode_item { +diff -NurpP --minimal linux-3.4/fs/btrfs/ctree.h linux-3.4-vs2.3.3.4/fs/btrfs/ctree.h +--- linux-3.4/fs/btrfs/ctree.h 2012-05-21 18:07:18.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/btrfs/ctree.h 2012-05-21 18:15:04.000000000 +0200 +@@ -668,11 +668,14 @@ struct btrfs_inode_item { /* modification sequence number for NFS */ __le64 sequence; @@ -1719,16 +1720,16 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/ctree.h linux-3.3.1-vs2.3.3.2/fs/btrf struct btrfs_timespec atime; struct btrfs_timespec ctime; struct btrfs_timespec mtime; -@@ -1504,6 +1507,8 @@ struct btrfs_ioctl_defrag_range_args { - #define BTRFS_MOUNT_CHECK_INTEGRITY (1 << 20) +@@ -1542,6 +1545,8 @@ struct btrfs_ioctl_defrag_range_args { #define BTRFS_MOUNT_CHECK_INTEGRITY_INCLUDING_EXTENT_DATA (1 << 21) + #define BTRFS_MOUNT_PANIC_ON_FATAL_ERROR (1 << 22) +#define BTRFS_MOUNT_TAGGED (1 << 24) + #define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt) #define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt) #define btrfs_test_opt(root, opt) ((root)->fs_info->mount_opt & \ -@@ -1711,6 +1716,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st +@@ -1762,6 +1767,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st BTRFS_SETGET_FUNCS(inode_nlink, struct btrfs_inode_item, nlink, 32); BTRFS_SETGET_FUNCS(inode_uid, struct btrfs_inode_item, uid, 32); BTRFS_SETGET_FUNCS(inode_gid, struct btrfs_inode_item, gid, 32); @@ -1736,7 +1737,7 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/ctree.h linux-3.3.1-vs2.3.3.2/fs/btrf BTRFS_SETGET_FUNCS(inode_mode, struct btrfs_inode_item, mode, 32); BTRFS_SETGET_FUNCS(inode_rdev, struct btrfs_inode_item, rdev, 64); BTRFS_SETGET_FUNCS(inode_flags, struct btrfs_inode_item, flags, 64); -@@ -1764,6 +1770,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct +@@ -1815,6 +1821,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct BTRFS_SETGET_FUNCS(extent_refs_v0, struct btrfs_extent_item_v0, refs, 32); @@ -1747,7 +1748,7 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/ctree.h linux-3.3.1-vs2.3.3.2/fs/btrf BTRFS_SETGET_FUNCS(tree_block_level, struct btrfs_tree_block_info, level, 8); -@@ -2925,6 +2935,7 @@ extern const struct dentry_operations bt +@@ -2959,6 +2969,7 @@ extern const struct dentry_operations bt long btrfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg); void btrfs_update_iflags(struct inode *inode); void btrfs_inherit_iflags(struct inode *inode, struct inode *dir); @@ -1755,10 +1756,10 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/ctree.h linux-3.3.1-vs2.3.3.2/fs/btrf int btrfs_defrag_file(struct inode *inode, struct file *file, struct btrfs_ioctl_defrag_range_args *range, u64 newer_than, unsigned long max_pages); -diff -NurpP --minimal linux-3.3.1/fs/btrfs/disk-io.c linux-3.3.1-vs2.3.3.2/fs/btrfs/disk-io.c ---- linux-3.3.1/fs/btrfs/disk-io.c 2012-03-19 19:47:24.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/btrfs/disk-io.c 2012-03-19 20:52:10.000000000 +0100 -@@ -2125,6 +2125,9 @@ int open_ctree(struct super_block *sb, +diff -NurpP --minimal linux-3.4/fs/btrfs/disk-io.c linux-3.4-vs2.3.3.4/fs/btrfs/disk-io.c +--- linux-3.4/fs/btrfs/disk-io.c 2012-05-21 18:07:18.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/btrfs/disk-io.c 2012-05-21 18:15:04.000000000 +0200 +@@ -2083,6 +2083,9 @@ int open_ctree(struct super_block *sb, goto fail_alloc; } @@ -1768,9 +1769,9 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/disk-io.c linux-3.3.1-vs2.3.3.2/fs/bt features = btrfs_super_incompat_flags(disk_super) & ~BTRFS_FEATURE_INCOMPAT_SUPP; if (features) { -diff -NurpP --minimal linux-3.3.1/fs/btrfs/inode.c linux-3.3.1-vs2.3.3.2/fs/btrfs/inode.c ---- linux-3.3.1/fs/btrfs/inode.c 2012-03-19 19:47:24.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/btrfs/inode.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/btrfs/inode.c linux-3.4-vs2.3.3.4/fs/btrfs/inode.c +--- linux-3.4/fs/btrfs/inode.c 2012-05-21 18:07:19.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/btrfs/inode.c 2012-05-21 18:15:04.000000000 +0200 @@ -39,6 +39,7 @@ #include #include @@ -1779,7 +1780,7 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/inode.c linux-3.3.1-vs2.3.3.2/fs/btrf #include "compat.h" #include "ctree.h" #include "disk-io.h" -@@ -2350,6 +2351,8 @@ static void btrfs_read_locked_inode(stru +@@ -2465,6 +2466,8 @@ static void btrfs_read_locked_inode(stru struct btrfs_key location; int maybe_acls; u32 rdev; @@ -1788,7 +1789,7 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/inode.c linux-3.3.1-vs2.3.3.2/fs/btrf int ret; bool filled = false; -@@ -2377,8 +2380,13 @@ static void btrfs_read_locked_inode(stru +@@ -2492,8 +2495,13 @@ static void btrfs_read_locked_inode(stru struct btrfs_inode_item); inode->i_mode = btrfs_inode_mode(leaf, inode_item); set_nlink(inode, btrfs_inode_nlink(leaf, inode_item)); @@ -1804,7 +1805,7 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/inode.c linux-3.3.1-vs2.3.3.2/fs/btrf btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item)); tspec = btrfs_inode_atime(inode_item); -@@ -2456,8 +2464,14 @@ static void fill_inode_item(struct btrfs +@@ -2571,8 +2579,14 @@ static void fill_inode_item(struct btrfs struct btrfs_inode_item *item, struct inode *inode) { @@ -1821,7 +1822,7 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/inode.c linux-3.3.1-vs2.3.3.2/fs/btrf btrfs_set_inode_size(leaf, item, BTRFS_I(inode)->disk_i_size); btrfs_set_inode_mode(leaf, item, inode->i_mode); btrfs_set_inode_nlink(leaf, item, inode->i_nlink); -@@ -7412,11 +7426,13 @@ static const struct inode_operations btr +@@ -7573,11 +7587,13 @@ static const struct inode_operations btr .listxattr = btrfs_listxattr, .removexattr = btrfs_removexattr, .permission = btrfs_permission, @@ -1835,9 +1836,9 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/inode.c linux-3.3.1-vs2.3.3.2/fs/btrf .get_acl = btrfs_get_acl, }; -diff -NurpP --minimal linux-3.3.1/fs/btrfs/ioctl.c linux-3.3.1-vs2.3.3.2/fs/btrfs/ioctl.c ---- linux-3.3.1/fs/btrfs/ioctl.c 2012-03-19 19:47:24.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/btrfs/ioctl.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/btrfs/ioctl.c linux-3.4-vs2.3.3.4/fs/btrfs/ioctl.c +--- linux-3.4/fs/btrfs/ioctl.c 2012-05-21 18:07:19.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/btrfs/ioctl.c 2012-05-21 18:15:04.000000000 +0200 @@ -71,10 +71,13 @@ static unsigned int btrfs_flags_to_ioctl { unsigned int iflags = 0; @@ -2010,32 +2011,32 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/ioctl.c linux-3.3.1-vs2.3.3.2/fs/btrf if (flags & FS_APPEND_FL) ip->flags |= BTRFS_INODE_APPEND; else -diff -NurpP --minimal linux-3.3.1/fs/btrfs/super.c linux-3.3.1-vs2.3.3.2/fs/btrfs/super.c ---- linux-3.3.1/fs/btrfs/super.c 2012-03-19 19:47:24.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/btrfs/super.c 2012-02-24 04:42:16.000000000 +0100 -@@ -167,7 +167,7 @@ enum { +diff -NurpP --minimal linux-3.4/fs/btrfs/super.c linux-3.4-vs2.3.3.4/fs/btrfs/super.c +--- linux-3.4/fs/btrfs/super.c 2012-05-21 18:07:19.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/btrfs/super.c 2012-05-21 18:15:04.000000000 +0200 +@@ -279,7 +279,7 @@ enum { Opt_no_space_cache, Opt_recovery, Opt_skip_balance, Opt_check_integrity, Opt_check_integrity_including_extent_data, - Opt_check_integrity_print_mask, + Opt_check_integrity_print_mask, Opt_fatal_errors, - Opt_err, + Opt_tag, Opt_notag, Opt_tagid, Opt_err, }; static match_table_t tokens = { -@@ -206,6 +206,9 @@ static match_table_t tokens = { - {Opt_check_integrity, "check_int"}, +@@ -319,6 +319,9 @@ static match_table_t tokens = { {Opt_check_integrity_including_extent_data, "check_int_data"}, {Opt_check_integrity_print_mask, "check_int_print_mask=%d"}, + {Opt_fatal_errors, "fatal_errors=%s"}, + {Opt_tag, "tag"}, + {Opt_notag, "notag"}, + {Opt_tagid, "tagid=%u"}, {Opt_err, NULL}, }; -@@ -438,6 +441,22 @@ int btrfs_parse_options(struct btrfs_roo - ret = -EINVAL; - goto out; - #endif +@@ -564,6 +567,22 @@ int btrfs_parse_options(struct btrfs_roo + goto out; + } + break; +#ifndef CONFIG_TAGGING_NONE + case Opt_tag: + printk(KERN_INFO "btrfs: use tagging\n"); @@ -2055,9 +2056,9 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/super.c linux-3.3.1-vs2.3.3.2/fs/btrf case Opt_err: printk(KERN_INFO "btrfs: unrecognized mount option " "'%s'\n", p); -@@ -1005,6 +1024,12 @@ static int btrfs_remount(struct super_bl - if (ret) - return -EINVAL; +@@ -1137,6 +1156,12 @@ static int btrfs_remount(struct super_bl + goto restore; + } + if (btrfs_test_opt(root, TAGGED) && !(sb->s_flags & MS_TAGGED)) { + printk("btrfs: %s: tagging not permitted on remount.\n", @@ -2068,9 +2069,9 @@ diff -NurpP --minimal linux-3.3.1/fs/btrfs/super.c linux-3.3.1-vs2.3.3.2/fs/btrf if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) return 0; -diff -NurpP --minimal linux-3.3.1/fs/char_dev.c linux-3.3.1-vs2.3.3.2/fs/char_dev.c ---- linux-3.3.1/fs/char_dev.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/char_dev.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/char_dev.c linux-3.4-vs2.3.3.4/fs/char_dev.c +--- linux-3.4/fs/char_dev.c 2012-03-19 19:47:25.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/char_dev.c 2012-05-21 18:15:04.000000000 +0200 @@ -21,6 +21,8 @@ #include #include @@ -2103,9 +2104,9 @@ diff -NurpP --minimal linux-3.3.1/fs/char_dev.c linux-3.3.1-vs2.3.3.2/fs/char_de if (!kobj) return -ENXIO; new = container_of(kobj, struct cdev, kobj); -diff -NurpP --minimal linux-3.3.1/fs/dcache.c linux-3.3.1-vs2.3.3.2/fs/dcache.c ---- linux-3.3.1/fs/dcache.c 2012-04-03 03:01:26.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/dcache.c 2012-04-03 03:02:12.000000000 +0200 +diff -NurpP --minimal linux-3.4/fs/dcache.c linux-3.4-vs2.3.3.4/fs/dcache.c +--- linux-3.4/fs/dcache.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/dcache.c 2012-05-21 18:15:04.000000000 +0200 @@ -37,6 +37,7 @@ #include #include @@ -2114,7 +2115,7 @@ diff -NurpP --minimal linux-3.3.1/fs/dcache.c linux-3.3.1-vs2.3.3.2/fs/dcache.c #include "internal.h" #include "mount.h" -@@ -560,6 +561,8 @@ int d_invalidate(struct dentry * dentry) +@@ -601,6 +602,8 @@ int d_invalidate(struct dentry * dentry) spin_lock(&dentry->d_lock); } @@ -2123,7 +2124,7 @@ diff -NurpP --minimal linux-3.3.1/fs/dcache.c linux-3.3.1-vs2.3.3.2/fs/dcache.c /* * Somebody else still using it? * -@@ -589,6 +592,7 @@ EXPORT_SYMBOL(d_invalidate); +@@ -630,6 +633,7 @@ EXPORT_SYMBOL(d_invalidate); static inline void __dget_dlock(struct dentry *dentry) { dentry->d_count++; @@ -2131,7 +2132,7 @@ diff -NurpP --minimal linux-3.3.1/fs/dcache.c linux-3.3.1-vs2.3.3.2/fs/dcache.c } static inline void __dget(struct dentry *dentry) -@@ -1213,6 +1217,9 @@ struct dentry *__d_alloc(struct super_bl +@@ -1254,6 +1258,9 @@ struct dentry *__d_alloc(struct super_bl struct dentry *dentry; char *dname; @@ -2141,7 +2142,7 @@ diff -NurpP --minimal linux-3.3.1/fs/dcache.c linux-3.3.1-vs2.3.3.2/fs/dcache.c dentry = kmem_cache_alloc(dentry_cache, GFP_KERNEL); if (!dentry) return NULL; -@@ -1235,6 +1242,7 @@ struct dentry *__d_alloc(struct super_bl +@@ -1276,6 +1283,7 @@ struct dentry *__d_alloc(struct super_bl dentry->d_count = 1; dentry->d_flags = 0; @@ -2149,7 +2150,7 @@ diff -NurpP --minimal linux-3.3.1/fs/dcache.c linux-3.3.1-vs2.3.3.2/fs/dcache.c spin_lock_init(&dentry->d_lock); seqcount_init(&dentry->d_seq); dentry->d_inode = NULL; -@@ -1920,6 +1928,7 @@ struct dentry *__d_lookup(struct dentry +@@ -1937,6 +1945,7 @@ struct dentry *__d_lookup(struct dentry } dentry->d_count++; @@ -2157,9 +2158,9 @@ diff -NurpP --minimal linux-3.3.1/fs/dcache.c linux-3.3.1-vs2.3.3.2/fs/dcache.c found = dentry; spin_unlock(&dentry->d_lock); break; -diff -NurpP --minimal linux-3.3.1/fs/devpts/inode.c linux-3.3.1-vs2.3.3.2/fs/devpts/inode.c ---- linux-3.3.1/fs/devpts/inode.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/devpts/inode.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/devpts/inode.c linux-3.4-vs2.3.3.4/fs/devpts/inode.c +--- linux-3.4/fs/devpts/inode.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/devpts/inode.c 2012-05-21 18:15:04.000000000 +0200 @@ -25,6 +25,7 @@ #include #include @@ -2168,7 +2169,7 @@ diff -NurpP --minimal linux-3.3.1/fs/devpts/inode.c linux-3.3.1-vs2.3.3.2/fs/dev #define DEVPTS_DEFAULT_MODE 0600 /* -@@ -36,6 +37,20 @@ +@@ -36,6 +37,21 @@ #define DEVPTS_DEFAULT_PTMX_MODE 0000 #define PTMX_MINOR 2 @@ -2186,10 +2187,11 @@ diff -NurpP --minimal linux-3.3.1/fs/devpts/inode.c linux-3.3.1-vs2.3.3.2/fs/dev + .permission = devpts_permission, +}; + - extern int pty_limit; /* Config limit on Unix98 ptys */ - static DEFINE_MUTEX(allocated_ptys_lock); - -@@ -263,6 +278,34 @@ static int devpts_show_options(struct se ++ + /* + * sysctl support for setting limits on the number of Unix98 ptys allocated. + * Otherwise one can eat up all kernel memory by opening /dev/ptmx repeatedly. +@@ -328,6 +344,34 @@ static int devpts_show_options(struct se return 0; } @@ -2224,7 +2226,7 @@ diff -NurpP --minimal linux-3.3.1/fs/devpts/inode.c linux-3.3.1-vs2.3.3.2/fs/dev static const struct super_operations devpts_sops = { .statfs = simple_statfs, .remount_fs = devpts_remount, -@@ -306,8 +349,10 @@ devpts_fill_super(struct super_block *s, +@@ -371,8 +415,10 @@ devpts_fill_super(struct super_block *s, inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR; inode->i_op = &simple_dir_inode_operations; @@ -2234,9 +2236,9 @@ diff -NurpP --minimal linux-3.3.1/fs/devpts/inode.c linux-3.3.1-vs2.3.3.2/fs/dev + /* devpts is xid tagged */ + inode->i_tag = (tag_t)vx_current_xid(); - s->s_root = d_alloc_root(inode); + s->s_root = d_make_root(inode); if (s->s_root) -@@ -492,6 +537,9 @@ int devpts_pty_new(struct inode *ptmx_in +@@ -564,6 +610,9 @@ int devpts_pty_new(struct inode *ptmx_in inode->i_gid = opts->setgid ? opts->gid : current_fsgid(); inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; init_special_inode(inode, S_IFCHR|opts->mode, device); @@ -2246,9 +2248,9 @@ diff -NurpP --minimal linux-3.3.1/fs/devpts/inode.c linux-3.3.1-vs2.3.3.2/fs/dev inode->i_private = tty; tty->driver_data = inode; -diff -NurpP --minimal linux-3.3.1/fs/ext2/balloc.c linux-3.3.1-vs2.3.3.2/fs/ext2/balloc.c ---- linux-3.3.1/fs/ext2/balloc.c 2012-01-09 16:14:54.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext2/balloc.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ext2/balloc.c linux-3.4-vs2.3.3.4/fs/ext2/balloc.c +--- linux-3.4/fs/ext2/balloc.c 2012-01-09 16:14:54.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ext2/balloc.c 2012-05-21 18:15:04.000000000 +0200 @@ -701,7 +701,6 @@ ext2_try_to_allocate(struct super_block start = 0; end = EXT2_BLOCKS_PER_GROUP(sb); @@ -2257,10 +2259,49 @@ diff -NurpP --minimal linux-3.3.1/fs/ext2/balloc.c linux-3.3.1-vs2.3.3.2/fs/ext2 BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb)); repeat: -diff -NurpP --minimal linux-3.3.1/fs/ext2/ext2.h linux-3.3.1-vs2.3.3.2/fs/ext2/ext2.h ---- linux-3.3.1/fs/ext2/ext2.h 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext2/ext2.h 2012-02-24 03:55:06.000000000 +0100 -@@ -126,6 +126,7 @@ extern void ext2_set_inode_flags(struct +diff -NurpP --minimal linux-3.4/fs/ext2/ext2.h linux-3.4-vs2.3.3.4/fs/ext2/ext2.h +--- linux-3.4/fs/ext2/ext2.h 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext2/ext2.h 2012-05-21 18:15:05.000000000 +0200 +@@ -244,8 +244,12 @@ struct ext2_group_desc + #define EXT2_NOTAIL_FL FS_NOTAIL_FL /* file tail should not be merged */ + #define EXT2_DIRSYNC_FL FS_DIRSYNC_FL /* dirsync behaviour (directories only) */ + #define EXT2_TOPDIR_FL FS_TOPDIR_FL /* Top of directory hierarchies*/ ++#define EXT2_IXUNLINK_FL FS_IXUNLINK_FL /* Immutable invert on unlink */ + #define EXT2_RESERVED_FL FS_RESERVED_FL /* reserved for ext2 lib */ + ++#define EXT2_BARRIER_FL FS_BARRIER_FL /* Barrier for chroot() */ ++#define EXT2_COW_FL FS_COW_FL /* Copy on Write marker */ ++ + #define EXT2_FL_USER_VISIBLE FS_FL_USER_VISIBLE /* User visible flags */ + #define EXT2_FL_USER_MODIFIABLE FS_FL_USER_MODIFIABLE /* User modifiable flags */ + +@@ -329,7 +333,8 @@ struct ext2_inode { + __u16 i_pad1; + __le16 l_i_uid_high; /* these 2 fields */ + __le16 l_i_gid_high; /* were reserved2[0] */ +- __u32 l_i_reserved2; ++ __le16 l_i_tag; /* Context Tag */ ++ __u16 l_i_reserved2; + } linux2; + struct { + __u8 h_i_frag; /* Fragment number */ +@@ -357,6 +362,7 @@ struct ext2_inode { + #define i_gid_low i_gid + #define i_uid_high osd2.linux2.l_i_uid_high + #define i_gid_high osd2.linux2.l_i_gid_high ++#define i_raw_tag osd2.linux2.l_i_tag + #define i_reserved2 osd2.linux2.l_i_reserved2 + + /* +@@ -384,6 +390,7 @@ struct ext2_inode { + #define EXT2_MOUNT_USRQUOTA 0x020000 /* user quota */ + #define EXT2_MOUNT_GRPQUOTA 0x040000 /* group quota */ + #define EXT2_MOUNT_RESERVATION 0x080000 /* Preallocation */ ++#define EXT2_MOUNT_TAGGED (1<<24) /* Enable Context Tags */ + + + #define clear_opt(o, opt) o &= ~EXT2_MOUNT_##opt +@@ -757,6 +764,7 @@ extern void ext2_set_inode_flags(struct extern void ext2_get_inode_flags(struct ext2_inode_info *); extern int ext2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, u64 start, u64 len); @@ -2268,18 +2309,18 @@ diff -NurpP --minimal linux-3.3.1/fs/ext2/ext2.h linux-3.3.1-vs2.3.3.2/fs/ext2/e /* ioctl.c */ extern long ext2_ioctl(struct file *, unsigned int, unsigned long); -diff -NurpP --minimal linux-3.3.1/fs/ext2/file.c linux-3.3.1-vs2.3.3.2/fs/ext2/file.c ---- linux-3.3.1/fs/ext2/file.c 2011-10-24 18:45:27.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/ext2/file.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ext2/file.c linux-3.4-vs2.3.3.4/fs/ext2/file.c +--- linux-3.4/fs/ext2/file.c 2011-10-24 18:45:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext2/file.c 2012-05-21 18:15:05.000000000 +0200 @@ -104,4 +104,5 @@ const struct inode_operations ext2_file_ .setattr = ext2_setattr, .get_acl = ext2_get_acl, .fiemap = ext2_fiemap, + .sync_flags = ext2_sync_flags, }; -diff -NurpP --minimal linux-3.3.1/fs/ext2/ialloc.c linux-3.3.1-vs2.3.3.2/fs/ext2/ialloc.c ---- linux-3.3.1/fs/ext2/ialloc.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext2/ialloc.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ext2/ialloc.c linux-3.4-vs2.3.3.4/fs/ext2/ialloc.c +--- linux-3.4/fs/ext2/ialloc.c 2012-03-19 19:47:25.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ext2/ialloc.c 2012-05-21 18:15:05.000000000 +0200 @@ -17,6 +17,7 @@ #include #include @@ -2296,9 +2337,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ext2/ialloc.c linux-3.3.1-vs2.3.3.2/fs/ext2 } else inode_init_owner(inode, dir, mode); -diff -NurpP --minimal linux-3.3.1/fs/ext2/inode.c linux-3.3.1-vs2.3.3.2/fs/ext2/inode.c ---- linux-3.3.1/fs/ext2/inode.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext2/inode.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ext2/inode.c linux-3.4-vs2.3.3.4/fs/ext2/inode.c +--- linux-3.4/fs/ext2/inode.c 2012-03-19 19:47:25.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ext2/inode.c 2012-05-21 18:15:05.000000000 +0200 @@ -31,6 +31,7 @@ #include #include @@ -2446,9 +2487,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ext2/inode.c linux-3.3.1-vs2.3.3.2/fs/ext2/ error = dquot_transfer(inode, iattr); if (error) return error; -diff -NurpP --minimal linux-3.3.1/fs/ext2/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ext2/ioctl.c ---- linux-3.3.1/fs/ext2/ioctl.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext2/ioctl.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ext2/ioctl.c linux-3.4-vs2.3.3.4/fs/ext2/ioctl.c +--- linux-3.4/fs/ext2/ioctl.c 2012-03-19 19:47:25.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ext2/ioctl.c 2012-05-21 18:15:05.000000000 +0200 @@ -17,6 +17,16 @@ #include @@ -2498,9 +2539,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ext2/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ext2/ flags |= oldflags & ~EXT2_FL_USER_MODIFIABLE; ei->i_flags = flags; -diff -NurpP --minimal linux-3.3.1/fs/ext2/namei.c linux-3.3.1-vs2.3.3.2/fs/ext2/namei.c ---- linux-3.3.1/fs/ext2/namei.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext2/namei.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ext2/namei.c linux-3.4-vs2.3.3.4/fs/ext2/namei.c +--- linux-3.4/fs/ext2/namei.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext2/namei.c 2012-05-21 18:15:05.000000000 +0200 @@ -32,6 +32,7 @@ #include @@ -2517,7 +2558,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext2/namei.c linux-3.3.1-vs2.3.3.2/fs/ext2/ } return d_splice_alias(inode, dentry); } -@@ -408,6 +410,7 @@ const struct inode_operations ext2_dir_i +@@ -397,6 +399,7 @@ const struct inode_operations ext2_dir_i .removexattr = generic_removexattr, #endif .setattr = ext2_setattr, @@ -2525,9 +2566,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ext2/namei.c linux-3.3.1-vs2.3.3.2/fs/ext2/ .get_acl = ext2_get_acl, }; -diff -NurpP --minimal linux-3.3.1/fs/ext2/super.c linux-3.3.1-vs2.3.3.2/fs/ext2/super.c ---- linux-3.3.1/fs/ext2/super.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext2/super.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ext2/super.c linux-3.4-vs2.3.3.4/fs/ext2/super.c +--- linux-3.4/fs/ext2/super.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext2/super.c 2012-05-21 18:15:05.000000000 +0200 @@ -393,7 +393,8 @@ enum { Opt_err_ro, Opt_nouid32, Opt_nocheck, Opt_debug, Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr, @@ -2593,28 +2634,82 @@ diff -NurpP --minimal linux-3.3.1/fs/ext2/super.c linux-3.3.1-vs2.3.3.2/fs/ext2/ sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | ((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0); -diff -NurpP --minimal linux-3.3.1/fs/ext3/file.c linux-3.3.1-vs2.3.3.2/fs/ext3/file.c ---- linux-3.3.1/fs/ext3/file.c 2011-10-24 18:45:27.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/ext3/file.c 2012-02-24 03:55:06.000000000 +0100 -@@ -80,5 +80,6 @@ const struct inode_operations ext3_file_ +diff -NurpP --minimal linux-3.4/fs/ext3/ext3.h linux-3.4-vs2.3.3.4/fs/ext3/ext3.h +--- linux-3.4/fs/ext3/ext3.h 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext3/ext3.h 2012-05-21 19:13:31.000000000 +0200 +@@ -151,10 +151,14 @@ struct ext3_group_desc + #define EXT3_NOTAIL_FL 0x00008000 /* file tail should not be merged */ + #define EXT3_DIRSYNC_FL 0x00010000 /* dirsync behaviour (directories only) */ + #define EXT3_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/ ++#define EXT3_IXUNLINK_FL 0x08000000 /* Immutable invert on unlink */ + #define EXT3_RESERVED_FL 0x80000000 /* reserved for ext3 lib */ + +-#define EXT3_FL_USER_VISIBLE 0x0003DFFF /* User visible flags */ +-#define EXT3_FL_USER_MODIFIABLE 0x000380FF /* User modifiable flags */ ++#define EXT3_BARRIER_FL 0x04000000 /* Barrier for chroot() */ ++#define EXT3_COW_FL 0x20000000 /* Copy on Write marker */ ++ ++#define EXT3_FL_USER_VISIBLE 0x0103DFFF /* User visible flags */ ++#define EXT3_FL_USER_MODIFIABLE 0x010380FF /* User modifiable flags */ + + /* Flags that should be inherited by new inodes from their parent. */ + #define EXT3_FL_INHERITED (EXT3_SECRM_FL | EXT3_UNRM_FL | EXT3_COMPR_FL |\ +@@ -290,7 +294,8 @@ struct ext3_inode { + __u16 i_pad1; + __le16 l_i_uid_high; /* these 2 fields */ + __le16 l_i_gid_high; /* were reserved2[0] */ +- __u32 l_i_reserved2; ++ __le16 l_i_tag; /* Context Tag */ ++ __u16 l_i_reserved2; + } linux2; + struct { + __u8 h_i_frag; /* Fragment number */ +@@ -320,6 +325,7 @@ struct ext3_inode { + #define i_gid_low i_gid + #define i_uid_high osd2.linux2.l_i_uid_high + #define i_gid_high osd2.linux2.l_i_gid_high ++#define i_raw_tag osd2.linux2.l_i_tag + #define i_reserved2 osd2.linux2.l_i_reserved2 + + /* +@@ -364,6 +370,7 @@ struct ext3_inode { + #define EXT3_MOUNT_GRPQUOTA 0x200000 /* "old" group quota */ + #define EXT3_MOUNT_DATA_ERR_ABORT 0x400000 /* Abort on file data write + * error in ordered mode */ ++#define EXT3_MOUNT_TAGGED (1<<24) /* Enable Context Tags */ + + /* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */ + #ifndef _LINUX_EXT2_FS_H +@@ -1057,6 +1064,7 @@ extern void ext3_get_inode_flags(struct + extern void ext3_set_aops(struct inode *inode); + extern int ext3_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, + u64 start, u64 len); ++extern int ext3_sync_flags(struct inode *, int, int); + + /* ioctl.c */ + extern long ext3_ioctl(struct file *, unsigned int, unsigned long); +diff -NurpP --minimal linux-3.4/fs/ext3/file.c linux-3.4-vs2.3.3.4/fs/ext3/file.c +--- linux-3.4/fs/ext3/file.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext3/file.c 2012-05-21 18:15:05.000000000 +0200 +@@ -76,5 +76,6 @@ const struct inode_operations ext3_file_ #endif .get_acl = ext3_get_acl, .fiemap = ext3_fiemap, + .sync_flags = ext3_sync_flags, }; -diff -NurpP --minimal linux-3.3.1/fs/ext3/ialloc.c linux-3.3.1-vs2.3.3.2/fs/ext3/ialloc.c ---- linux-3.3.1/fs/ext3/ialloc.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext3/ialloc.c 2012-02-24 03:55:06.000000000 +0100 -@@ -23,6 +23,7 @@ - #include +diff -NurpP --minimal linux-3.4/fs/ext3/ialloc.c linux-3.4-vs2.3.3.4/fs/ext3/ialloc.c +--- linux-3.4/fs/ext3/ialloc.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext3/ialloc.c 2012-05-21 18:15:05.000000000 +0200 +@@ -14,6 +14,7 @@ + + #include #include - #include +#include - #include - #include -@@ -496,6 +497,7 @@ got: + #include "ext3.h" + #include "xattr.h" +@@ -485,6 +486,7 @@ got: inode->i_mode = mode; inode->i_uid = current_fsuid(); inode->i_gid = dir->i_gid; @@ -2622,18 +2717,19 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/ialloc.c linux-3.3.1-vs2.3.3.2/fs/ext3 } else inode_init_owner(inode, dir, mode); -diff -NurpP --minimal linux-3.3.1/fs/ext3/inode.c linux-3.3.1-vs2.3.3.2/fs/ext3/inode.c ---- linux-3.3.1/fs/ext3/inode.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext3/inode.c 2012-02-24 03:55:06.000000000 +0100 -@@ -37,6 +37,7 @@ - #include - #include +diff -NurpP --minimal linux-3.4/fs/ext3/inode.c linux-3.4-vs2.3.3.4/fs/ext3/inode.c +--- linux-3.4/fs/ext3/inode.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext3/inode.c 2012-05-21 18:15:05.000000000 +0200 +@@ -27,6 +27,8 @@ + #include + #include #include +#include - #include ++ + #include "ext3.h" #include "xattr.h" #include "acl.h" -@@ -2855,36 +2856,60 @@ void ext3_set_inode_flags(struct inode * +@@ -2848,36 +2850,60 @@ void ext3_set_inode_flags(struct inode * { unsigned int flags = EXT3_I(inode)->i_flags; @@ -2701,7 +2797,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/inode.c linux-3.3.1-vs2.3.3.2/fs/ext3/ } struct inode *ext3_iget(struct super_block *sb, unsigned long ino) -@@ -2898,6 +2923,8 @@ struct inode *ext3_iget(struct super_blo +@@ -2891,6 +2917,8 @@ struct inode *ext3_iget(struct super_blo transaction_t *transaction; long ret; int block; @@ -2710,7 +2806,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/inode.c linux-3.3.1-vs2.3.3.2/fs/ext3/ inode = iget_locked(sb, ino); if (!inode) -@@ -2914,12 +2941,16 @@ struct inode *ext3_iget(struct super_blo +@@ -2907,12 +2935,16 @@ struct inode *ext3_iget(struct super_blo bh = iloc.bh; raw_inode = ext3_raw_inode(&iloc); inode->i_mode = le16_to_cpu(raw_inode->i_mode); @@ -2731,7 +2827,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/inode.c linux-3.3.1-vs2.3.3.2/fs/ext3/ set_nlink(inode, le16_to_cpu(raw_inode->i_links_count)); inode->i_size = le32_to_cpu(raw_inode->i_size); inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime); -@@ -3074,6 +3105,8 @@ static int ext3_do_update_inode(handle_t +@@ -3067,6 +3099,8 @@ static int ext3_do_update_inode(handle_t struct ext3_inode *raw_inode = ext3_raw_inode(iloc); struct ext3_inode_info *ei = EXT3_I(inode); struct buffer_head *bh = iloc->bh; @@ -2740,7 +2836,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/inode.c linux-3.3.1-vs2.3.3.2/fs/ext3/ int err = 0, rc, block; again: -@@ -3088,29 +3121,32 @@ again: +@@ -3081,29 +3115,32 @@ again: ext3_get_inode_flags(ei); raw_inode->i_mode = cpu_to_le16(inode->i_mode); if(!(test_opt(inode->i_sb, NO_UID32))) { @@ -2779,7 +2875,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/inode.c linux-3.3.1-vs2.3.3.2/fs/ext3/ raw_inode->i_links_count = cpu_to_le16(inode->i_nlink); raw_inode->i_size = cpu_to_le32(ei->i_disksize); raw_inode->i_atime = cpu_to_le32(inode->i_atime.tv_sec); -@@ -3270,7 +3306,8 @@ int ext3_setattr(struct dentry *dentry, +@@ -3263,7 +3300,8 @@ int ext3_setattr(struct dentry *dentry, if (is_quota_modification(inode, attr)) dquot_initialize(inode); if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) || @@ -2789,7 +2885,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/inode.c linux-3.3.1-vs2.3.3.2/fs/ext3/ handle_t *handle; /* (user+group)*(old+new) structure, inode write (sb, -@@ -3292,6 +3329,8 @@ int ext3_setattr(struct dentry *dentry, +@@ -3285,6 +3323,8 @@ int ext3_setattr(struct dentry *dentry, inode->i_uid = attr->ia_uid; if (attr->ia_valid & ATTR_GID) inode->i_gid = attr->ia_gid; @@ -2798,20 +2894,12 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/inode.c linux-3.3.1-vs2.3.3.2/fs/ext3/ error = ext3_mark_inode_dirty(handle, inode); ext3_journal_stop(handle); } -diff -NurpP --minimal linux-3.3.1/fs/ext3/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ext3/ioctl.c ---- linux-3.3.1/fs/ext3/ioctl.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext3/ioctl.c 2012-02-24 03:55:06.000000000 +0100 -@@ -8,6 +8,7 @@ - */ - - #include -+#include - #include - #include - #include -@@ -17,6 +18,34 @@ - #include +diff -NurpP --minimal linux-3.4/fs/ext3/ioctl.c linux-3.4-vs2.3.3.4/fs/ext3/ioctl.c +--- linux-3.4/fs/ext3/ioctl.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext3/ioctl.c 2012-05-21 18:15:05.000000000 +0200 +@@ -12,6 +12,34 @@ #include + #include "ext3.h" + +int ext3_sync_flags(struct inode *inode, int flags, int vflags) @@ -2844,7 +2932,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ext3/ long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { struct inode *inode = filp->f_dentry->d_inode; -@@ -50,6 +79,11 @@ long ext3_ioctl(struct file *filp, unsig +@@ -45,6 +73,11 @@ long ext3_ioctl(struct file *filp, unsig flags = ext3_mask_flags(inode->i_mode, flags); @@ -2856,7 +2944,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ext3/ mutex_lock(&inode->i_mutex); /* Is it quota file? Do not allow user to mess with it */ -@@ -68,7 +102,9 @@ long ext3_ioctl(struct file *filp, unsig +@@ -63,7 +96,9 @@ long ext3_ioctl(struct file *filp, unsig * * This test looks nicer. Thanks to Pauline Middelink */ @@ -2867,7 +2955,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ext3/ if (!capable(CAP_LINUX_IMMUTABLE)) goto flags_out; } -@@ -93,7 +129,7 @@ long ext3_ioctl(struct file *filp, unsig +@@ -88,7 +123,7 @@ long ext3_ioctl(struct file *filp, unsig if (err) goto flags_err; @@ -2876,18 +2964,19 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ext3/ flags |= oldflags & ~EXT3_FL_USER_MODIFIABLE; ei->i_flags = flags; -diff -NurpP --minimal linux-3.3.1/fs/ext3/namei.c linux-3.3.1-vs2.3.3.2/fs/ext3/namei.c ---- linux-3.3.1/fs/ext3/namei.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext3/namei.c 2012-02-24 03:55:06.000000000 +0100 -@@ -36,6 +36,7 @@ +diff -NurpP --minimal linux-3.4/fs/ext3/namei.c linux-3.4-vs2.3.3.4/fs/ext3/namei.c +--- linux-3.4/fs/ext3/namei.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext3/namei.c 2012-05-21 18:15:05.000000000 +0200 +@@ -25,6 +25,8 @@ + */ + #include - #include - #include +#include - #include - ++ + #include "ext3.h" #include "namei.h" -@@ -927,6 +928,7 @@ restart: + #include "xattr.h" +@@ -915,6 +917,7 @@ restart: submit_bh(READ | REQ_META | REQ_PRIO, bh); } @@ -2895,7 +2984,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/namei.c linux-3.3.1-vs2.3.3.2/fs/ext3/ } } if ((bh = bh_use[ra_ptr++]) == NULL) -@@ -2538,6 +2540,7 @@ const struct inode_operations ext3_dir_i +@@ -2526,6 +2529,7 @@ const struct inode_operations ext3_dir_i .listxattr = ext3_listxattr, .removexattr = generic_removexattr, #endif @@ -2903,10 +2992,10 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/namei.c linux-3.3.1-vs2.3.3.2/fs/ext3/ .get_acl = ext3_get_acl, }; -diff -NurpP --minimal linux-3.3.1/fs/ext3/super.c linux-3.3.1-vs2.3.3.2/fs/ext3/super.c ---- linux-3.3.1/fs/ext3/super.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext3/super.c 2012-02-24 03:55:06.000000000 +0100 -@@ -830,7 +830,8 @@ enum { +diff -NurpP --minimal linux-3.4/fs/ext3/super.c linux-3.4-vs2.3.3.4/fs/ext3/super.c +--- linux-3.4/fs/ext3/super.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext3/super.c 2012-05-21 18:15:05.000000000 +0200 +@@ -820,7 +820,8 @@ enum { Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota, Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota, Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err, @@ -2916,7 +3005,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/super.c linux-3.3.1-vs2.3.3.2/fs/ext3/ }; static const match_table_t tokens = { -@@ -887,6 +888,9 @@ static const match_table_t tokens = { +@@ -877,6 +878,9 @@ static const match_table_t tokens = { {Opt_barrier, "barrier"}, {Opt_nobarrier, "nobarrier"}, {Opt_resize, "resize"}, @@ -2926,7 +3015,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/super.c linux-3.3.1-vs2.3.3.2/fs/ext3/ {Opt_err, NULL}, }; -@@ -1039,6 +1043,20 @@ static int parse_options (char *options, +@@ -1029,6 +1033,20 @@ static int parse_options (char *options, case Opt_nouid32: set_opt (sbi->s_mount_opt, NO_UID32); break; @@ -2947,7 +3036,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/super.c linux-3.3.1-vs2.3.3.2/fs/ext3/ case Opt_nocheck: clear_opt (sbi->s_mount_opt, CHECK); break; -@@ -1737,6 +1755,9 @@ static int ext3_fill_super (struct super +@@ -1727,6 +1745,9 @@ static int ext3_fill_super (struct super NULL, 0)) goto failed_mount; @@ -2957,7 +3046,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/super.c linux-3.3.1-vs2.3.3.2/fs/ext3/ sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0); -@@ -2619,6 +2640,14 @@ static int ext3_remount (struct super_bl +@@ -2608,6 +2629,14 @@ static int ext3_remount (struct super_bl if (test_opt(sb, ABORT)) ext3_abort(sb, __func__, "Abort forced by user"); @@ -2972,10 +3061,10 @@ diff -NurpP --minimal linux-3.3.1/fs/ext3/super.c linux-3.3.1-vs2.3.3.2/fs/ext3/ sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0); -diff -NurpP --minimal linux-3.3.1/fs/ext4/ext4.h linux-3.3.1-vs2.3.3.2/fs/ext4/ext4.h ---- linux-3.3.1/fs/ext4/ext4.h 2012-04-03 03:01:26.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/ext4/ext4.h 2012-04-03 03:02:12.000000000 +0200 -@@ -373,8 +373,12 @@ struct flex_groups { +diff -NurpP --minimal linux-3.4/fs/ext4/ext4.h linux-3.4-vs2.3.3.4/fs/ext4/ext4.h +--- linux-3.4/fs/ext4/ext4.h 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext4/ext4.h 2012-05-21 18:15:05.000000000 +0200 +@@ -380,8 +380,12 @@ struct flex_groups { #define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */ #define EXT4_EA_INODE_FL 0x00200000 /* Inode used for large EA */ #define EXT4_EOFBLOCKS_FL 0x00400000 /* Blocks allocated beyond EOF */ @@ -2988,7 +3077,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/ext4.h linux-3.3.1-vs2.3.3.2/fs/ext4/e #define EXT4_FL_USER_VISIBLE 0x004BDFFF /* User visible flags */ #define EXT4_FL_USER_MODIFIABLE 0x004B80FF /* User modifiable flags */ -@@ -643,7 +647,8 @@ struct ext4_inode { +@@ -650,7 +654,8 @@ struct ext4_inode { __le16 l_i_file_acl_high; __le16 l_i_uid_high; /* these 2 fields */ __le16 l_i_gid_high; /* were reserved2[0] */ @@ -2998,7 +3087,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/ext4.h linux-3.3.1-vs2.3.3.2/fs/ext4/e } linux2; struct { __le16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */ -@@ -761,6 +766,7 @@ do { \ +@@ -768,6 +773,7 @@ do { \ #define i_gid_low i_gid #define i_uid_high osd2.linux2.l_i_uid_high #define i_gid_high osd2.linux2.l_i_gid_high @@ -3006,7 +3095,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/ext4.h linux-3.3.1-vs2.3.3.2/fs/ext4/e #define i_reserved2 osd2.linux2.l_i_reserved2 #elif defined(__GNU__) -@@ -937,6 +943,7 @@ struct ext4_inode_info { +@@ -945,6 +951,7 @@ struct ext4_inode_info { #define EXT4_MOUNT_POSIX_ACL 0x08000 /* POSIX Access Control Lists */ #define EXT4_MOUNT_NO_AUTO_DA_ALLOC 0x10000 /* No auto delalloc mapping */ #define EXT4_MOUNT_BARRIER 0x20000 /* Use block barriers */ @@ -3014,7 +3103,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/ext4.h linux-3.3.1-vs2.3.3.2/fs/ext4/e #define EXT4_MOUNT_QUOTA 0x80000 /* Some quota option set */ #define EXT4_MOUNT_USRQUOTA 0x100000 /* "old" user quota */ #define EXT4_MOUNT_GRPQUOTA 0x200000 /* "old" group quota */ -@@ -2277,6 +2284,7 @@ extern int ext4_map_blocks(handle_t *han +@@ -2294,6 +2301,7 @@ extern int ext4_map_blocks(handle_t *han struct ext4_map_blocks *map, int flags); extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, __u64 start, __u64 len); @@ -3022,9 +3111,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/ext4.h linux-3.3.1-vs2.3.3.2/fs/ext4/e /* move_extent.c */ extern int ext4_move_extents(struct file *o_filp, struct file *d_filp, __u64 start_orig, __u64 start_donor, -diff -NurpP --minimal linux-3.3.1/fs/ext4/file.c linux-3.3.1-vs2.3.3.2/fs/ext4/file.c ---- linux-3.3.1/fs/ext4/file.c 2012-01-09 16:14:54.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext4/file.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ext4/file.c linux-3.4-vs2.3.3.4/fs/ext4/file.c +--- linux-3.4/fs/ext4/file.c 2012-01-09 16:14:54.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ext4/file.c 2012-05-21 18:15:05.000000000 +0200 @@ -258,5 +258,6 @@ const struct inode_operations ext4_file_ #endif .get_acl = ext4_get_acl, @@ -3032,9 +3121,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/file.c linux-3.3.1-vs2.3.3.2/fs/ext4/f + .sync_flags = ext4_sync_flags, }; -diff -NurpP --minimal linux-3.3.1/fs/ext4/ialloc.c linux-3.3.1-vs2.3.3.2/fs/ext4/ialloc.c ---- linux-3.3.1/fs/ext4/ialloc.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext4/ialloc.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ext4/ialloc.c linux-3.4-vs2.3.3.4/fs/ext4/ialloc.c +--- linux-3.4/fs/ext4/ialloc.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext4/ialloc.c 2012-05-21 18:15:05.000000000 +0200 @@ -22,6 +22,7 @@ #include #include @@ -3043,7 +3132,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/ialloc.c linux-3.3.1-vs2.3.3.2/fs/ext4 #include #include "ext4.h" -@@ -860,6 +861,7 @@ got: +@@ -814,6 +815,7 @@ got: inode->i_mode = mode; inode->i_uid = current_fsuid(); inode->i_gid = dir->i_gid; @@ -3051,9 +3140,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/ialloc.c linux-3.3.1-vs2.3.3.2/fs/ext4 } else inode_init_owner(inode, dir, mode); -diff -NurpP --minimal linux-3.3.1/fs/ext4/inode.c linux-3.3.1-vs2.3.3.2/fs/ext4/inode.c ---- linux-3.3.1/fs/ext4/inode.c 2012-04-03 03:01:26.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/ext4/inode.c 2012-04-03 03:02:12.000000000 +0200 +diff -NurpP --minimal linux-3.4/fs/ext4/inode.c linux-3.4-vs2.3.3.4/fs/ext4/inode.c +--- linux-3.4/fs/ext4/inode.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext4/inode.c 2012-05-21 18:15:05.000000000 +0200 @@ -37,6 +37,7 @@ #include #include @@ -3062,7 +3151,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/inode.c linux-3.3.1-vs2.3.3.2/fs/ext4/ #include "ext4_jbd2.h" #include "xattr.h" -@@ -3557,41 +3558,64 @@ void ext4_set_inode_flags(struct inode * +@@ -3560,41 +3561,64 @@ void ext4_set_inode_flags(struct inode * { unsigned int flags = EXT4_I(inode)->i_flags; @@ -3134,7 +3223,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/inode.c linux-3.3.1-vs2.3.3.2/fs/ext4/ } while (cmpxchg(&ei->i_flags, old_fl, new_fl) != old_fl); } -@@ -3627,6 +3651,8 @@ struct inode *ext4_iget(struct super_blo +@@ -3630,6 +3654,8 @@ struct inode *ext4_iget(struct super_blo journal_t *journal = EXT4_SB(sb)->s_journal; long ret; int block; @@ -3143,7 +3232,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/inode.c linux-3.3.1-vs2.3.3.2/fs/ext4/ inode = iget_locked(sb, ino); if (!inode) -@@ -3642,12 +3668,16 @@ struct inode *ext4_iget(struct super_blo +@@ -3645,12 +3671,16 @@ struct inode *ext4_iget(struct super_blo goto bad_inode; raw_inode = ext4_raw_inode(&iloc); inode->i_mode = le16_to_cpu(raw_inode->i_mode); @@ -3164,7 +3253,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/inode.c linux-3.3.1-vs2.3.3.2/fs/ext4/ set_nlink(inode, le16_to_cpu(raw_inode->i_links_count)); ext4_clear_state_flags(ei); /* Only relevant on 32-bit archs */ -@@ -3866,6 +3896,8 @@ static int ext4_do_update_inode(handle_t +@@ -3869,6 +3899,8 @@ static int ext4_do_update_inode(handle_t struct ext4_inode *raw_inode = ext4_raw_inode(iloc); struct ext4_inode_info *ei = EXT4_I(inode); struct buffer_head *bh = iloc->bh; @@ -3173,7 +3262,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/inode.c linux-3.3.1-vs2.3.3.2/fs/ext4/ int err = 0, rc, block; /* For fields not not tracking in the in-memory inode, -@@ -3876,29 +3908,32 @@ static int ext4_do_update_inode(handle_t +@@ -3879,29 +3911,32 @@ static int ext4_do_update_inode(handle_t ext4_get_inode_flags(ei); raw_inode->i_mode = cpu_to_le16(inode->i_mode); if (!(test_opt(inode->i_sb, NO_UID32))) { @@ -3212,7 +3301,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/inode.c linux-3.3.1-vs2.3.3.2/fs/ext4/ raw_inode->i_links_count = cpu_to_le16(inode->i_nlink); EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode); -@@ -4084,7 +4119,8 @@ int ext4_setattr(struct dentry *dentry, +@@ -4085,7 +4120,8 @@ int ext4_setattr(struct dentry *dentry, if (is_quota_modification(inode, attr)) dquot_initialize(inode); if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) || @@ -3222,7 +3311,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/inode.c linux-3.3.1-vs2.3.3.2/fs/ext4/ handle_t *handle; /* (user+group)*(old+new) structure, inode write (sb, -@@ -4106,6 +4142,8 @@ int ext4_setattr(struct dentry *dentry, +@@ -4107,6 +4143,8 @@ int ext4_setattr(struct dentry *dentry, inode->i_uid = attr->ia_uid; if (attr->ia_valid & ATTR_GID) inode->i_gid = attr->ia_gid; @@ -3231,9 +3320,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/inode.c linux-3.3.1-vs2.3.3.2/fs/ext4/ error = ext4_mark_inode_dirty(handle, inode); ext4_journal_stop(handle); } -diff -NurpP --minimal linux-3.3.1/fs/ext4/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ext4/ioctl.c ---- linux-3.3.1/fs/ext4/ioctl.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext4/ioctl.c 2012-02-24 04:29:04.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ext4/ioctl.c linux-3.4-vs2.3.3.4/fs/ext4/ioctl.c +--- linux-3.4/fs/ext4/ioctl.c 2012-03-19 19:47:25.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ext4/ioctl.c 2012-05-21 18:15:05.000000000 +0200 @@ -14,12 +14,40 @@ #include #include @@ -3298,9 +3387,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ext4/ if (!capable(CAP_LINUX_IMMUTABLE)) goto flags_out; } -diff -NurpP --minimal linux-3.3.1/fs/ext4/namei.c linux-3.3.1-vs2.3.3.2/fs/ext4/namei.c ---- linux-3.3.1/fs/ext4/namei.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext4/namei.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ext4/namei.c linux-3.4-vs2.3.3.4/fs/ext4/namei.c +--- linux-3.4/fs/ext4/namei.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext4/namei.c 2012-05-21 18:15:05.000000000 +0200 @@ -34,6 +34,7 @@ #include #include @@ -3325,10 +3414,10 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/namei.c linux-3.3.1-vs2.3.3.2/fs/ext4/ }; const struct inode_operations ext4_special_inode_operations = { -diff -NurpP --minimal linux-3.3.1/fs/ext4/super.c linux-3.3.1-vs2.3.3.2/fs/ext4/super.c ---- linux-3.3.1/fs/ext4/super.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ext4/super.c 2012-02-24 03:55:06.000000000 +0100 -@@ -1333,6 +1333,7 @@ enum { +diff -NurpP --minimal linux-3.4/fs/ext4/super.c linux-3.4-vs2.3.3.4/fs/ext4/super.c +--- linux-3.4/fs/ext4/super.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ext4/super.c 2012-05-21 18:15:05.000000000 +0200 +@@ -1186,6 +1186,7 @@ enum { Opt_inode_readahead_blks, Opt_journal_ioprio, Opt_dioread_nolock, Opt_dioread_lock, Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable, @@ -3336,38 +3425,38 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/super.c linux-3.3.1-vs2.3.3.2/fs/ext4/ }; static const match_table_t tokens = { -@@ -1408,6 +1409,9 @@ static const match_table_t tokens = { - {Opt_init_itable, "init_itable=%u"}, - {Opt_init_itable, "init_itable"}, - {Opt_noinit_itable, "noinit_itable"}, +@@ -1264,6 +1265,9 @@ static const match_table_t tokens = { + {Opt_removed, "reservation"}, /* mount option from ext2/3 */ + {Opt_removed, "noreservation"}, /* mount option from ext2/3 */ + {Opt_removed, "journal=%u"}, /* mount option from ext2/3 */ + {Opt_tag, "tag"}, + {Opt_notag, "notag"}, + {Opt_tagid, "tagid=%u"}, {Opt_err, NULL}, }; -@@ -1576,6 +1580,20 @@ static int parse_options(char *options, - case Opt_nouid32: - set_opt(sb, NO_UID32); - break; +@@ -1498,6 +1502,20 @@ static int handle_mount_opt(struct super + return -1; + *journal_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, arg); + return 1; +#ifndef CONFIG_TAGGING_NONE -+ case Opt_tag: -+ set_opt(sb, TAGGED); -+ break; -+ case Opt_notag: -+ clear_opt(sb, TAGGED); -+ break; ++ case Opt_tag: ++ set_opt(sb, TAGGED); ++ return 1; ++ case Opt_notag: ++ clear_opt(sb, TAGGED); ++ return 1; +#endif +#ifdef CONFIG_PROPAGATE -+ case Opt_tagid: -+ /* use args[0] */ -+ set_opt(sb, TAGGED); -+ break; ++ case Opt_tagid: ++ /* use args[0] */ ++ set_opt(sb, TAGGED); ++ return 1; +#endif - case Opt_debug: - set_opt(sb, DEBUG); - break; -@@ -3276,6 +3294,9 @@ static int ext4_fill_super(struct super_ + } + + for (m = ext4_mount_opts; m->token != Opt_err; m++) { +@@ -3121,6 +3139,9 @@ static int ext4_fill_super(struct super_ } } @@ -3377,7 +3466,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/super.c linux-3.3.1-vs2.3.3.2/fs/ext4/ sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0); -@@ -4428,6 +4449,14 @@ static int ext4_remount(struct super_blo +@@ -4267,6 +4288,14 @@ static int ext4_remount(struct super_blo if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED) ext4_abort(sb, "Abort forced by user"); @@ -3392,9 +3481,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ext4/super.c linux-3.3.1-vs2.3.3.2/fs/ext4/ sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0); -diff -NurpP --minimal linux-3.3.1/fs/fcntl.c linux-3.3.1-vs2.3.3.2/fs/fcntl.c ---- linux-3.3.1/fs/fcntl.c 2011-05-22 16:17:52.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/fcntl.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/fcntl.c linux-3.4-vs2.3.3.4/fs/fcntl.c +--- linux-3.4/fs/fcntl.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/fcntl.c 2012-05-21 18:15:05.000000000 +0200 @@ -20,6 +20,7 @@ #include #include @@ -3421,9 +3510,9 @@ diff -NurpP --minimal linux-3.3.1/fs/fcntl.c linux-3.3.1-vs2.3.3.2/fs/fcntl.c if (unlikely(filp->f_mode & FMODE_PATH)) { if (!check_fcntl_cmd(cmd)) { -diff -NurpP --minimal linux-3.3.1/fs/file.c linux-3.3.1-vs2.3.3.2/fs/file.c ---- linux-3.3.1/fs/file.c 2011-05-22 16:17:52.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/file.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/file.c linux-3.4-vs2.3.3.4/fs/file.c +--- linux-3.4/fs/file.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/file.c 2012-05-21 18:15:05.000000000 +0200 @@ -21,6 +21,7 @@ #include #include @@ -3432,7 +3521,7 @@ diff -NurpP --minimal linux-3.3.1/fs/file.c linux-3.3.1-vs2.3.3.2/fs/file.c struct fdtable_defer { spinlock_t lock; -@@ -359,6 +360,8 @@ struct files_struct *dup_fd(struct files +@@ -358,6 +359,8 @@ struct files_struct *dup_fd(struct files struct file *f = *old_fds++; if (f) { get_file(f); @@ -3441,17 +3530,17 @@ diff -NurpP --minimal linux-3.3.1/fs/file.c linux-3.3.1-vs2.3.3.2/fs/file.c } else { /* * The fd may be claimed in the fd bitmap but not yet -@@ -466,6 +469,7 @@ repeat: +@@ -464,6 +467,7 @@ repeat: else - FD_CLR(fd, fdt->close_on_exec); + __clear_close_on_exec(fd, fdt); error = fd; + vx_openfd_inc(fd); #if 1 /* Sanity check */ if (rcu_dereference_raw(fdt->fd[fd]) != NULL) { -diff -NurpP --minimal linux-3.3.1/fs/file_table.c linux-3.3.1-vs2.3.3.2/fs/file_table.c ---- linux-3.3.1/fs/file_table.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/file_table.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/file_table.c linux-3.4-vs2.3.3.4/fs/file_table.c +--- linux-3.4/fs/file_table.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/file_table.c 2012-05-21 18:15:05.000000000 +0200 @@ -24,6 +24,8 @@ #include #include @@ -3470,7 +3559,7 @@ diff -NurpP --minimal linux-3.3.1/fs/file_table.c linux-3.3.1-vs2.3.3.2/fs/file_ return f; over: -@@ -253,6 +257,8 @@ static void __fput(struct file *file) +@@ -252,6 +256,8 @@ static void __fput(struct file *file) } fops_put(file->f_op); put_pid(file->f_owner.pid); @@ -3479,7 +3568,7 @@ diff -NurpP --minimal linux-3.3.1/fs/file_table.c linux-3.3.1-vs2.3.3.2/fs/file_ file_sb_list_del(file); if ((file->f_mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) i_readcount_dec(inode); -@@ -383,6 +389,8 @@ void put_filp(struct file *file) +@@ -382,6 +388,8 @@ void put_filp(struct file *file) { if (atomic_long_dec_and_test(&file->f_count)) { security_file_free(file); @@ -3488,9 +3577,9 @@ diff -NurpP --minimal linux-3.3.1/fs/file_table.c linux-3.3.1-vs2.3.3.2/fs/file_ file_sb_list_del(file); file_free(file); } -diff -NurpP --minimal linux-3.3.1/fs/fs_struct.c linux-3.3.1-vs2.3.3.2/fs/fs_struct.c ---- linux-3.3.1/fs/fs_struct.c 2011-03-15 18:07:31.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/fs_struct.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/fs_struct.c linux-3.4-vs2.3.3.4/fs/fs_struct.c +--- linux-3.4/fs/fs_struct.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/fs_struct.c 2012-05-21 18:15:05.000000000 +0200 @@ -4,6 +4,7 @@ #include #include @@ -3499,7 +3588,7 @@ diff -NurpP --minimal linux-3.3.1/fs/fs_struct.c linux-3.3.1-vs2.3.3.2/fs/fs_str #include "internal.h" static inline void path_get_longterm(struct path *path) -@@ -96,6 +97,7 @@ void free_fs_struct(struct fs_struct *fs +@@ -99,6 +100,7 @@ void free_fs_struct(struct fs_struct *fs { path_put_longterm(&fs->root); path_put_longterm(&fs->pwd); @@ -3507,7 +3596,7 @@ diff -NurpP --minimal linux-3.3.1/fs/fs_struct.c linux-3.3.1-vs2.3.3.2/fs/fs_str kmem_cache_free(fs_cachep, fs); } -@@ -135,6 +137,7 @@ struct fs_struct *copy_fs_struct(struct +@@ -136,6 +138,7 @@ struct fs_struct *copy_fs_struct(struct fs->pwd = old->pwd; path_get_longterm(&fs->pwd); spin_unlock(&old->lock); @@ -3515,10 +3604,10 @@ diff -NurpP --minimal linux-3.3.1/fs/fs_struct.c linux-3.3.1-vs2.3.3.2/fs/fs_str } return fs; } -diff -NurpP --minimal linux-3.3.1/fs/gfs2/file.c linux-3.3.1-vs2.3.3.2/fs/gfs2/file.c ---- linux-3.3.1/fs/gfs2/file.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/gfs2/file.c 2012-02-24 03:55:06.000000000 +0100 -@@ -143,6 +143,9 @@ static const u32 fsflags_to_gfs2[32] = { +diff -NurpP --minimal linux-3.4/fs/gfs2/file.c linux-3.4-vs2.3.3.4/fs/gfs2/file.c +--- linux-3.4/fs/gfs2/file.c 2012-05-21 18:07:20.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/gfs2/file.c 2012-05-21 18:15:05.000000000 +0200 +@@ -142,6 +142,9 @@ static const u32 fsflags_to_gfs2[32] = { [7] = GFS2_DIF_NOATIME, [12] = GFS2_DIF_EXHASH, [14] = GFS2_DIF_INHERIT_JDATA, @@ -3528,7 +3617,7 @@ diff -NurpP --minimal linux-3.3.1/fs/gfs2/file.c linux-3.3.1-vs2.3.3.2/fs/gfs2/f }; static const u32 gfs2_to_fsflags[32] = { -@@ -152,6 +155,9 @@ static const u32 gfs2_to_fsflags[32] = { +@@ -151,6 +154,9 @@ static const u32 gfs2_to_fsflags[32] = { [gfs2fl_NoAtime] = FS_NOATIME_FL, [gfs2fl_ExHash] = FS_INDEX_FL, [gfs2fl_InheritJdata] = FS_JOURNAL_DATA_FL, @@ -3538,7 +3627,7 @@ diff -NurpP --minimal linux-3.3.1/fs/gfs2/file.c linux-3.3.1-vs2.3.3.2/fs/gfs2/f }; static int gfs2_get_flags(struct file *filp, u32 __user *ptr) -@@ -182,12 +188,18 @@ void gfs2_set_inode_flags(struct inode * +@@ -181,12 +187,18 @@ void gfs2_set_inode_flags(struct inode * { struct gfs2_inode *ip = GFS2_I(inode); unsigned int flags = inode->i_flags; @@ -3558,7 +3647,7 @@ diff -NurpP --minimal linux-3.3.1/fs/gfs2/file.c linux-3.3.1-vs2.3.3.2/fs/gfs2/f if (ip->i_diskflags & GFS2_DIF_APPENDONLY) flags |= S_APPEND; if (ip->i_diskflags & GFS2_DIF_NOATIME) -@@ -195,6 +207,43 @@ void gfs2_set_inode_flags(struct inode * +@@ -194,6 +206,43 @@ void gfs2_set_inode_flags(struct inode * if (ip->i_diskflags & GFS2_DIF_SYNC) flags |= S_SYNC; inode->i_flags = flags; @@ -3602,7 +3691,7 @@ diff -NurpP --minimal linux-3.3.1/fs/gfs2/file.c linux-3.3.1-vs2.3.3.2/fs/gfs2/f } /* Flags that can be set by user space */ -@@ -306,6 +355,37 @@ static int gfs2_set_flags(struct file *f +@@ -305,6 +354,37 @@ static int gfs2_set_flags(struct file *f return do_gfs2_set_flags(filp, gfsflags, ~GFS2_DIF_JDATA); } @@ -3640,9 +3729,9 @@ diff -NurpP --minimal linux-3.3.1/fs/gfs2/file.c linux-3.3.1-vs2.3.3.2/fs/gfs2/f static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { switch(cmd) { -diff -NurpP --minimal linux-3.3.1/fs/gfs2/inode.h linux-3.3.1-vs2.3.3.2/fs/gfs2/inode.h ---- linux-3.3.1/fs/gfs2/inode.h 2012-01-09 16:14:54.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/gfs2/inode.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/gfs2/inode.h linux-3.4-vs2.3.3.4/fs/gfs2/inode.h +--- linux-3.4/fs/gfs2/inode.h 2012-01-09 16:14:54.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/gfs2/inode.h 2012-05-21 18:15:05.000000000 +0200 @@ -120,6 +120,7 @@ extern const struct file_operations gfs2 extern const struct file_operations gfs2_dir_fops_nolock; @@ -3651,18 +3740,18 @@ diff -NurpP --minimal linux-3.3.1/fs/gfs2/inode.h linux-3.3.1-vs2.3.3.2/fs/gfs2/ #ifdef CONFIG_GFS2_FS_LOCKING_DLM extern const struct file_operations gfs2_file_fops; -diff -NurpP --minimal linux-3.3.1/fs/inode.c linux-3.3.1-vs2.3.3.2/fs/inode.c ---- linux-3.3.1/fs/inode.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/inode.c 2012-03-19 20:52:10.000000000 +0100 -@@ -27,6 +27,7 @@ - #include +diff -NurpP --minimal linux-3.4/fs/inode.c linux-3.4-vs2.3.3.4/fs/inode.c +--- linux-3.4/fs/inode.c 2012-05-21 18:07:24.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/inode.c 2012-05-21 18:15:05.000000000 +0200 +@@ -17,6 +17,7 @@ + #include #include /* for inode_has_buffers */ #include +#include #include "internal.h" /* -@@ -138,6 +139,9 @@ int inode_init_always(struct super_block +@@ -128,6 +129,9 @@ int inode_init_always(struct super_block struct address_space *const mapping = &inode->i_data; inode->i_sb = sb; @@ -3672,7 +3761,7 @@ diff -NurpP --minimal linux-3.3.1/fs/inode.c linux-3.3.1-vs2.3.3.2/fs/inode.c inode->i_blkbits = sb->s_blocksize_bits; inode->i_flags = 0; atomic_set(&inode->i_count, 1); -@@ -159,6 +163,7 @@ int inode_init_always(struct super_block +@@ -149,6 +153,7 @@ int inode_init_always(struct super_block inode->i_bdev = NULL; inode->i_cdev = NULL; inode->i_rdev = 0; @@ -3680,7 +3769,7 @@ diff -NurpP --minimal linux-3.3.1/fs/inode.c linux-3.3.1-vs2.3.3.2/fs/inode.c inode->dirtied_when = 0; if (security_inode_alloc(inode)) -@@ -480,6 +485,8 @@ void __insert_inode_hash(struct inode *i +@@ -470,6 +475,8 @@ void __insert_inode_hash(struct inode *i } EXPORT_SYMBOL(__insert_inode_hash); @@ -3689,7 +3778,7 @@ diff -NurpP --minimal linux-3.3.1/fs/inode.c linux-3.3.1-vs2.3.3.2/fs/inode.c /** * __remove_inode_hash - remove an inode from the hash * @inode: inode to unhash -@@ -1709,9 +1716,11 @@ void init_special_inode(struct inode *in +@@ -1689,9 +1696,11 @@ void init_special_inode(struct inode *in if (S_ISCHR(mode)) { inode->i_fop = &def_chr_fops; inode->i_rdev = rdev; @@ -3701,7 +3790,7 @@ diff -NurpP --minimal linux-3.3.1/fs/inode.c linux-3.3.1-vs2.3.3.2/fs/inode.c } else if (S_ISFIFO(mode)) inode->i_fop = &def_fifo_fops; else if (S_ISSOCK(mode)) -@@ -1740,6 +1749,7 @@ void inode_init_owner(struct inode *inod +@@ -1720,6 +1729,7 @@ void inode_init_owner(struct inode *inod } else inode->i_gid = current_fsgid(); inode->i_mode = mode; @@ -3709,9 +3798,9 @@ diff -NurpP --minimal linux-3.3.1/fs/inode.c linux-3.3.1-vs2.3.3.2/fs/inode.c } EXPORT_SYMBOL(inode_init_owner); -diff -NurpP --minimal linux-3.3.1/fs/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ioctl.c ---- linux-3.3.1/fs/ioctl.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ioctl.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ioctl.c linux-3.4-vs2.3.3.4/fs/ioctl.c +--- linux-3.4/fs/ioctl.c 2012-05-21 18:07:24.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ioctl.c 2012-05-21 18:15:05.000000000 +0200 @@ -15,6 +15,9 @@ #include #include @@ -3722,9 +3811,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ioctl.c #include -diff -NurpP --minimal linux-3.3.1/fs/ioprio.c linux-3.3.1-vs2.3.3.2/fs/ioprio.c ---- linux-3.3.1/fs/ioprio.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ioprio.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ioprio.c linux-3.4-vs2.3.3.4/fs/ioprio.c +--- linux-3.4/fs/ioprio.c 2012-03-19 19:47:25.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ioprio.c 2012-05-21 18:15:05.000000000 +0200 @@ -28,6 +28,7 @@ #include #include @@ -3751,9 +3840,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ioprio.c linux-3.3.1-vs2.3.3.2/fs/ioprio.c tmpio = get_task_ioprio(p); if (tmpio < 0) continue; -diff -NurpP --minimal linux-3.3.1/fs/jfs/file.c linux-3.3.1-vs2.3.3.2/fs/jfs/file.c ---- linux-3.3.1/fs/jfs/file.c 2011-10-24 18:45:27.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/jfs/file.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/jfs/file.c linux-3.4-vs2.3.3.4/fs/jfs/file.c +--- linux-3.4/fs/jfs/file.c 2011-10-24 18:45:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/jfs/file.c 2012-05-21 18:15:05.000000000 +0200 @@ -109,7 +109,8 @@ int jfs_setattr(struct dentry *dentry, s if (is_quota_modification(inode, iattr)) dquot_initialize(inode); @@ -3772,9 +3861,9 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/file.c linux-3.3.1-vs2.3.3.2/fs/jfs/fil }; const struct file_operations jfs_file_operations = { -diff -NurpP --minimal linux-3.3.1/fs/jfs/ioctl.c linux-3.3.1-vs2.3.3.2/fs/jfs/ioctl.c ---- linux-3.3.1/fs/jfs/ioctl.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/jfs/ioctl.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/jfs/ioctl.c linux-3.4-vs2.3.3.4/fs/jfs/ioctl.c +--- linux-3.4/fs/jfs/ioctl.c 2012-03-19 19:47:25.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/jfs/ioctl.c 2012-05-21 18:15:05.000000000 +0200 @@ -11,6 +11,7 @@ #include #include @@ -3832,9 +3921,9 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/ioctl.c linux-3.3.1-vs2.3.3.2/fs/jfs/io flags |= oldflags & ~JFS_FL_USER_MODIFIABLE; jfs_inode->mode2 = flags; -diff -NurpP --minimal linux-3.3.1/fs/jfs/jfs_dinode.h linux-3.3.1-vs2.3.3.2/fs/jfs/jfs_dinode.h ---- linux-3.3.1/fs/jfs/jfs_dinode.h 2008-12-25 00:26:37.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/jfs/jfs_dinode.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/jfs/jfs_dinode.h linux-3.4-vs2.3.3.4/fs/jfs/jfs_dinode.h +--- linux-3.4/fs/jfs/jfs_dinode.h 2008-12-25 00:26:37.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/jfs/jfs_dinode.h 2012-05-21 18:15:05.000000000 +0200 @@ -161,9 +161,13 @@ struct dinode { #define JFS_APPEND_FL 0x01000000 /* writes to file may only append */ @@ -3851,9 +3940,9 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/jfs_dinode.h linux-3.3.1-vs2.3.3.2/fs/j #define JFS_FL_INHERIT 0x03C80000 /* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */ -diff -NurpP --minimal linux-3.3.1/fs/jfs/jfs_filsys.h linux-3.3.1-vs2.3.3.2/fs/jfs/jfs_filsys.h ---- linux-3.3.1/fs/jfs/jfs_filsys.h 2008-12-25 00:26:37.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/jfs/jfs_filsys.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/jfs/jfs_filsys.h linux-3.4-vs2.3.3.4/fs/jfs/jfs_filsys.h +--- linux-3.4/fs/jfs/jfs_filsys.h 2008-12-25 00:26:37.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/jfs/jfs_filsys.h 2012-05-21 18:15:05.000000000 +0200 @@ -263,6 +263,7 @@ #define JFS_NAME_MAX 255 #define JFS_PATH_MAX BPSIZE @@ -3862,9 +3951,9 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/jfs_filsys.h linux-3.3.1-vs2.3.3.2/fs/j /* * file system state (superblock state) -diff -NurpP --minimal linux-3.3.1/fs/jfs/jfs_imap.c linux-3.3.1-vs2.3.3.2/fs/jfs/jfs_imap.c ---- linux-3.3.1/fs/jfs/jfs_imap.c 2012-01-09 16:14:54.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/jfs/jfs_imap.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/jfs/jfs_imap.c linux-3.4-vs2.3.3.4/fs/jfs/jfs_imap.c +--- linux-3.4/fs/jfs/jfs_imap.c 2012-01-09 16:14:54.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/jfs/jfs_imap.c 2012-05-21 18:15:05.000000000 +0200 @@ -46,6 +46,7 @@ #include #include @@ -3924,9 +4013,9 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/jfs_imap.c linux-3.3.1-vs2.3.3.2/fs/jfs jfs_get_inode_flags(jfs_ip); /* * mode2 is only needed for storing the higher order bits. -diff -NurpP --minimal linux-3.3.1/fs/jfs/jfs_inode.c linux-3.3.1-vs2.3.3.2/fs/jfs/jfs_inode.c ---- linux-3.3.1/fs/jfs/jfs_inode.c 2012-01-09 16:14:54.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/jfs/jfs_inode.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/jfs/jfs_inode.c linux-3.4-vs2.3.3.4/fs/jfs/jfs_inode.c +--- linux-3.4/fs/jfs/jfs_inode.c 2012-01-09 16:14:54.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/jfs/jfs_inode.c 2012-05-21 18:15:05.000000000 +0200 @@ -18,6 +18,7 @@ #include @@ -4000,9 +4089,9 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/jfs_inode.c linux-3.3.1-vs2.3.3.2/fs/jf } /* -diff -NurpP --minimal linux-3.3.1/fs/jfs/jfs_inode.h linux-3.3.1-vs2.3.3.2/fs/jfs/jfs_inode.h ---- linux-3.3.1/fs/jfs/jfs_inode.h 2011-10-24 18:45:27.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/jfs/jfs_inode.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/jfs/jfs_inode.h linux-3.4-vs2.3.3.4/fs/jfs/jfs_inode.h +--- linux-3.4/fs/jfs/jfs_inode.h 2011-10-24 18:45:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/jfs/jfs_inode.h 2012-05-21 18:15:05.000000000 +0200 @@ -39,6 +39,7 @@ extern struct dentry *jfs_fh_to_dentry(s extern struct dentry *jfs_fh_to_parent(struct super_block *sb, struct fid *fid, int fh_len, int fh_type); @@ -4011,9 +4100,9 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/jfs_inode.h linux-3.3.1-vs2.3.3.2/fs/jf extern int jfs_get_block(struct inode *, sector_t, struct buffer_head *, int); extern int jfs_setattr(struct dentry *, struct iattr *); -diff -NurpP --minimal linux-3.3.1/fs/jfs/namei.c linux-3.3.1-vs2.3.3.2/fs/jfs/namei.c ---- linux-3.3.1/fs/jfs/namei.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/jfs/namei.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/jfs/namei.c linux-3.4-vs2.3.3.4/fs/jfs/namei.c +--- linux-3.4/fs/jfs/namei.c 2012-05-21 18:07:25.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/jfs/namei.c 2012-05-21 18:15:05.000000000 +0200 @@ -22,6 +22,7 @@ #include #include @@ -4022,7 +4111,7 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/namei.c linux-3.3.1-vs2.3.3.2/fs/jfs/na #include "jfs_incore.h" #include "jfs_superblock.h" #include "jfs_inode.h" -@@ -1474,6 +1475,7 @@ static struct dentry *jfs_lookup(struct +@@ -1461,6 +1462,7 @@ static struct dentry *jfs_lookup(struct jfs_err("jfs_lookup: iget failed on inum %d", (uint)inum); } @@ -4030,7 +4119,7 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/namei.c linux-3.3.1-vs2.3.3.2/fs/jfs/na return d_splice_alias(ip, dentry); } -@@ -1538,6 +1540,7 @@ const struct inode_operations jfs_dir_in +@@ -1525,6 +1527,7 @@ const struct inode_operations jfs_dir_in #ifdef CONFIG_JFS_POSIX_ACL .get_acl = jfs_get_acl, #endif @@ -4038,9 +4127,9 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/namei.c linux-3.3.1-vs2.3.3.2/fs/jfs/na }; const struct file_operations jfs_dir_operations = { -diff -NurpP --minimal linux-3.3.1/fs/jfs/super.c linux-3.3.1-vs2.3.3.2/fs/jfs/super.c ---- linux-3.3.1/fs/jfs/super.c 2012-03-19 19:47:25.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/jfs/super.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/jfs/super.c linux-3.4-vs2.3.3.4/fs/jfs/super.c +--- linux-3.4/fs/jfs/super.c 2012-05-21 18:07:25.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/jfs/super.c 2012-05-21 18:15:05.000000000 +0200 @@ -197,7 +197,8 @@ static void jfs_put_super(struct super_b enum { Opt_integrity, Opt_nointegrity, Opt_iocharset, Opt_resize, @@ -4096,7 +4185,7 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/super.c linux-3.3.1-vs2.3.3.2/fs/jfs/su if (newLVSize) { if (sb->s_flags & MS_RDONLY) { printk(KERN_ERR -@@ -454,6 +479,9 @@ static int jfs_fill_super(struct super_b +@@ -455,6 +480,9 @@ static int jfs_fill_super(struct super_b #ifdef CONFIG_JFS_POSIX_ACL sb->s_flags |= MS_POSIXACL; #endif @@ -4106,9 +4195,9 @@ diff -NurpP --minimal linux-3.3.1/fs/jfs/super.c linux-3.3.1-vs2.3.3.2/fs/jfs/su if (newLVSize) { printk(KERN_ERR "resize option for remount only\n"); -diff -NurpP --minimal linux-3.3.1/fs/libfs.c linux-3.3.1-vs2.3.3.2/fs/libfs.c ---- linux-3.3.1/fs/libfs.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/libfs.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/libfs.c linux-3.4-vs2.3.3.4/fs/libfs.c +--- linux-3.4/fs/libfs.c 2012-05-21 18:07:25.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/libfs.c 2012-05-21 18:15:05.000000000 +0200 @@ -135,7 +135,8 @@ static inline unsigned char dt_type(stru * both impossible due to the lock on directory. */ @@ -4146,7 +4235,7 @@ diff -NurpP --minimal linux-3.3.1/fs/libfs.c linux-3.3.1-vs2.3.3.2/fs/libfs.c ssize_t generic_read_dir(struct file *filp, char __user *buf, size_t siz, loff_t *ppos) { return -EISDIR; -@@ -977,6 +991,7 @@ EXPORT_SYMBOL(dcache_dir_close); +@@ -983,6 +997,7 @@ EXPORT_SYMBOL(dcache_dir_close); EXPORT_SYMBOL(dcache_dir_lseek); EXPORT_SYMBOL(dcache_dir_open); EXPORT_SYMBOL(dcache_readdir); @@ -4154,9 +4243,9 @@ diff -NurpP --minimal linux-3.3.1/fs/libfs.c linux-3.3.1-vs2.3.3.2/fs/libfs.c EXPORT_SYMBOL(generic_read_dir); EXPORT_SYMBOL(mount_pseudo); EXPORT_SYMBOL(simple_write_begin); -diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c ---- linux-3.3.1/fs/locks.c 2012-01-09 16:14:54.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/locks.c 2012-03-23 18:52:48.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/locks.c linux-3.4-vs2.3.3.4/fs/locks.c +--- linux-3.4/fs/locks.c 2012-05-21 18:07:25.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/locks.c 2012-05-21 18:15:05.000000000 +0200 @@ -126,6 +126,8 @@ #include #include @@ -4243,7 +4332,7 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c error = lease_init(filp, type, fl); if (error) { locks_free_lock(fl); -@@ -772,6 +794,7 @@ static int flock_lock_file(struct file * +@@ -773,6 +795,7 @@ static int flock_lock_file(struct file * lock_flocks(); } @@ -4251,7 +4340,7 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c find_conflict: for_each_lock(inode, before) { struct file_lock *fl = *before; -@@ -792,6 +815,7 @@ find_conflict: +@@ -793,6 +816,7 @@ find_conflict: goto out; locks_copy_lock(new_fl, request); locks_insert_lock(before, new_fl); @@ -4259,7 +4348,7 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c new_fl = NULL; error = 0; -@@ -802,7 +826,8 @@ out: +@@ -803,7 +827,8 @@ out: return error; } @@ -4269,7 +4358,7 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c { struct file_lock *fl; struct file_lock *new_fl = NULL; -@@ -812,6 +837,8 @@ static int __posix_lock_file(struct inod +@@ -813,6 +838,8 @@ static int __posix_lock_file(struct inod struct file_lock **before; int error, added = 0; @@ -4278,7 +4367,7 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c /* * We may need two file_lock structures for this operation, * so we get them in advance to avoid races. -@@ -822,7 +849,11 @@ static int __posix_lock_file(struct inod +@@ -823,7 +850,11 @@ static int __posix_lock_file(struct inod (request->fl_type != F_UNLCK || request->fl_start != 0 || request->fl_end != OFFSET_MAX)) { new_fl = locks_alloc_lock(); @@ -4290,7 +4379,7 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c } lock_flocks(); -@@ -1021,7 +1052,8 @@ static int __posix_lock_file(struct inod +@@ -1022,7 +1053,8 @@ static int __posix_lock_file(struct inod int posix_lock_file(struct file *filp, struct file_lock *fl, struct file_lock *conflock) { @@ -4300,7 +4389,7 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c } EXPORT_SYMBOL(posix_lock_file); -@@ -1111,7 +1143,7 @@ int locks_mandatory_area(int read_write, +@@ -1112,7 +1144,7 @@ int locks_mandatory_area(int read_write, fl.fl_end = offset + count - 1; for (;;) { @@ -4309,7 +4398,7 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c if (error != FILE_LOCK_DEFERRED) break; error = wait_event_interruptible(fl.fl_wait, !fl.fl_next); -@@ -1406,6 +1438,7 @@ int generic_add_lease(struct file *filp, +@@ -1407,6 +1439,7 @@ int generic_add_lease(struct file *filp, goto out; locks_insert_lock(before, lease); @@ -4317,7 +4406,7 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c return 0; out: -@@ -1846,6 +1879,11 @@ int fcntl_setlk(unsigned int fd, struct +@@ -1847,6 +1880,11 @@ int fcntl_setlk(unsigned int fd, struct if (file_lock == NULL) return -ENOLCK; @@ -4329,7 +4418,7 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c /* * This might block, so we do it before checking the inode. */ -@@ -1964,6 +2002,11 @@ int fcntl_setlk64(unsigned int fd, struc +@@ -1965,6 +2003,11 @@ int fcntl_setlk64(unsigned int fd, struc if (file_lock == NULL) return -ENOLCK; @@ -4341,7 +4430,7 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c /* * This might block, so we do it before checking the inode. */ -@@ -2229,8 +2272,11 @@ static int locks_show(struct seq_file *f +@@ -2230,8 +2273,11 @@ static int locks_show(struct seq_file *f lock_get_status(f, fl, *((loff_t *)f->private), ""); @@ -4354,9 +4443,9 @@ diff -NurpP --minimal linux-3.3.1/fs/locks.c linux-3.3.1-vs2.3.3.2/fs/locks.c return 0; } -diff -NurpP --minimal linux-3.3.1/fs/mount.h linux-3.3.1-vs2.3.3.2/fs/mount.h ---- linux-3.3.1/fs/mount.h 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/mount.h 2012-02-24 17:29:48.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/mount.h linux-3.4-vs2.3.3.4/fs/mount.h +--- linux-3.4/fs/mount.h 2012-03-19 19:47:26.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/mount.h 2012-05-21 18:15:05.000000000 +0200 @@ -47,6 +47,7 @@ struct mount { int mnt_expiry_mark; /* true if marked for expiry */ int mnt_pinned; @@ -4365,9 +4454,9 @@ diff -NurpP --minimal linux-3.3.1/fs/mount.h linux-3.3.1-vs2.3.3.2/fs/mount.h }; static inline struct mount *real_mount(struct vfsmount *mnt) -diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c ---- linux-3.3.1/fs/namei.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/namei.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/namei.c linux-3.4-vs2.3.3.4/fs/namei.c +--- linux-3.4/fs/namei.c 2012-05-21 18:07:25.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/namei.c 2012-05-21 18:15:05.000000000 +0200 @@ -33,6 +33,14 @@ #include #include @@ -4499,26 +4588,27 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c } if (nd->path.dentry != nd->path.mnt->mnt_root) { /* rare case of legitimate dget_parent()... */ -@@ -1149,6 +1245,9 @@ static int do_lookup(struct nameidata *n +@@ -1174,6 +1270,9 @@ static int do_lookup(struct nameidata *n + goto unlazy; + } } - if (unlikely(d_need_lookup(dentry))) - goto unlazy; + + /* FIXME: check dx permission */ + path->mnt = mnt; path->dentry = dentry; if (unlikely(!__follow_mount_rcu(nd, path, inode))) -@@ -1210,6 +1309,8 @@ retry: +@@ -1208,6 +1307,9 @@ unlazy: + goto need_lookup; } } - ++ + /* FIXME: check dx permission */ + + done: path->mnt = mnt; path->dentry = dentry; - err = follow_managed(path, nd->flags); -@@ -1926,7 +2027,7 @@ static int may_delete(struct inode *dir, +@@ -1981,7 +2083,7 @@ static int may_delete(struct inode *dir, if (IS_APPEND(dir)) return -EPERM; if (check_sticky(dir, victim->d_inode)||IS_APPEND(victim->d_inode)|| @@ -4527,7 +4617,7 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c return -EPERM; if (isdir) { if (!S_ISDIR(victim->d_inode->i_mode)) -@@ -2006,19 +2107,25 @@ int vfs_create(struct inode *dir, struct +@@ -2061,19 +2163,25 @@ int vfs_create(struct inode *dir, struct { int error = may_create(dir, dentry); @@ -4555,7 +4645,7 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c return error; } -@@ -2053,6 +2160,15 @@ static int may_open(struct path *path, i +@@ -2108,6 +2216,15 @@ static int may_open(struct path *path, i break; } @@ -4571,7 +4661,7 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c error = inode_permission(inode, acc_mode); if (error) return error; -@@ -2277,6 +2393,16 @@ ok: +@@ -2332,6 +2449,16 @@ ok: } common: error = may_open(&nd->path, acc_mode, open_flag); @@ -4588,7 +4678,7 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c if (error) goto exit; filp = nameidata_to_filp(nd); -@@ -2319,6 +2445,7 @@ static struct file *path_openat(int dfd, +@@ -2374,6 +2501,7 @@ static struct file *path_openat(int dfd, struct path path; int error; @@ -4596,7 +4686,7 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c filp = get_empty_filp(); if (!filp) return ERR_PTR(-ENFILE); -@@ -2356,6 +2483,17 @@ static struct file *path_openat(int dfd, +@@ -2411,6 +2539,17 @@ static struct file *path_openat(int dfd, filp = do_last(nd, &path, op, pathname); put_link(nd, &link, cookie); } @@ -4614,7 +4704,7 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c out: if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT)) path_put(&nd->root); -@@ -2445,6 +2583,11 @@ struct dentry *kern_path_create(int dfd, +@@ -2500,6 +2639,11 @@ struct dentry *kern_path_create(int dfd, goto fail; } *path = nd.path; @@ -4626,7 +4716,7 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c return dentry; eexist: dput(dentry); -@@ -2926,7 +3069,7 @@ int vfs_link(struct dentry *old_dentry, +@@ -2986,7 +3130,7 @@ int vfs_link(struct dentry *old_dentry, /* * A link to an append-only or immutable file cannot be created. */ @@ -4635,7 +4725,7 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c return -EPERM; if (!dir->i_op->link) return -EPERM; -@@ -3307,6 +3450,227 @@ int vfs_follow_link(struct nameidata *nd +@@ -3375,6 +3519,253 @@ int vfs_follow_link(struct nameidata *nd return __vfs_follow_link(nd, link); } @@ -4650,6 +4740,8 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c + return do_splice_direct(in, &ppos, out, len, 0); +} + ++extern unsigned int mnt_get_count(struct mount *mnt); ++ +struct dentry *cow_break_link(const char *pathname) +{ + int ret, mode, pathlen, redo = 0; @@ -4672,7 +4764,7 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c + ret = do_path_lookup(AT_FDCWD, pathname, LOOKUP_FOLLOW, &old_nd); + vxdprintk(VXD_CBIT(misc, 2), + "do_path_lookup(old): %d [r=%d]", -+ ret, mnt_get_count(old_nd.path.mnt)); ++ ret, mnt_get_count(real_mount(old_nd.path.mnt))); + if (ret < 0) + goto out_free_path; + @@ -4854,18 +4946,47 @@ diff -NurpP --minimal linux-3.3.1/fs/namei.c linux-3.3.1-vs2.3.3.2/fs/namei.c + } + vxdprintk(VXD_CBIT(misc, 3), + "cow_break_link returning with %p [r=%d]", -+ new_dentry, mnt_get_count(old_nd.path.mnt)); ++ new_dentry, mnt_get_count(real_mount(old_nd.path.mnt))); + return new_dentry; +} + +#endif ++ ++int vx_info_mnt_namespace(struct mnt_namespace *ns, char *buffer) ++{ ++ struct path path; ++ struct vfsmount *vmnt; ++ char *pstr, *root; ++ int length = 0; ++ ++ pstr = kmalloc(PATH_MAX, GFP_KERNEL); ++ if (!pstr) ++ return 0; ++ ++ vmnt = &ns->root->mnt; ++ path.mnt = vmnt; ++ path.dentry = vmnt->mnt_root; ++ root = d_path(&path, pstr, PATH_MAX - 2); ++ length = sprintf(buffer + length, ++ "Namespace:\t%p [#%u]\n" ++ "RootPath:\t%s\n", ++ ns, atomic_read(&ns->count), ++ root); ++ kfree(pstr); ++ return length; ++} + /* get the link contents into pagecache */ static char *page_getlink(struct dentry * dentry, struct page **ppage) { -diff -NurpP --minimal linux-3.3.1/fs/namespace.c linux-3.3.1-vs2.3.3.2/fs/namespace.c ---- linux-3.3.1/fs/namespace.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/namespace.c 2012-02-24 17:38:42.000000000 +0100 +@@ -3499,3 +3890,4 @@ EXPORT_SYMBOL(vfs_symlink); + EXPORT_SYMBOL(vfs_unlink); + EXPORT_SYMBOL(dentry_unhash); + EXPORT_SYMBOL(generic_readlink); ++EXPORT_SYMBOL(vx_info_mnt_namespace); +diff -NurpP --minimal linux-3.4/fs/namespace.c linux-3.4-vs2.3.3.4/fs/namespace.c +--- linux-3.4/fs/namespace.c 2012-03-19 19:47:26.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/namespace.c 2012-05-21 18:15:05.000000000 +0200 @@ -20,6 +20,11 @@ #include /* get_fs_root et.al. */ #include /* fsnotify_vfsmount_delete */ @@ -5052,10 +5173,10 @@ diff -NurpP --minimal linux-3.3.1/fs/namespace.c linux-3.3.1-vs2.3.3.2/fs/namesp kfree(ns); } -diff -NurpP --minimal linux-3.3.1/fs/nfs/client.c linux-3.3.1-vs2.3.3.2/fs/nfs/client.c ---- linux-3.3.1/fs/nfs/client.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/nfs/client.c 2012-02-24 03:55:06.000000000 +0100 -@@ -784,6 +784,9 @@ static int nfs_init_server_rpcclient(str +diff -NurpP --minimal linux-3.4/fs/nfs/client.c linux-3.4-vs2.3.3.4/fs/nfs/client.c +--- linux-3.4/fs/nfs/client.c 2012-05-21 18:07:25.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/nfs/client.c 2012-05-21 18:15:05.000000000 +0200 +@@ -802,6 +802,9 @@ static int nfs_init_server_rpcclient(str if (server->flags & NFS_MOUNT_SOFT) server->client->cl_softrtry = 1; @@ -5065,7 +5186,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/client.c linux-3.3.1-vs2.3.3.2/fs/nfs/c return 0; } -@@ -958,6 +961,10 @@ static void nfs_server_set_fsinfo(struct +@@ -977,6 +980,10 @@ static void nfs_server_set_fsinfo(struct server->acdirmin = server->acdirmax = 0; } @@ -5076,9 +5197,9 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/client.c linux-3.3.1-vs2.3.3.2/fs/nfs/c server->maxfilesize = fsinfo->maxfilesize; server->time_delta = fsinfo->time_delta; -diff -NurpP --minimal linux-3.3.1/fs/nfs/dir.c linux-3.3.1-vs2.3.3.2/fs/nfs/dir.c ---- linux-3.3.1/fs/nfs/dir.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/nfs/dir.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/nfs/dir.c linux-3.4-vs2.3.3.4/fs/nfs/dir.c +--- linux-3.4/fs/nfs/dir.c 2012-05-21 18:07:25.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/nfs/dir.c 2012-05-21 18:15:05.000000000 +0200 @@ -35,6 +35,7 @@ #include #include @@ -5095,18 +5216,18 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/dir.c linux-3.3.1-vs2.3.3.2/fs/nfs/dir. no_entry: res = d_materialise_unique(dentry, inode); if (res != NULL) { -diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/inode.c ---- linux-3.3.1/fs/nfs/inode.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/nfs/inode.c 2012-02-24 04:40:22.000000000 +0100 -@@ -39,6 +39,7 @@ - #include +diff -NurpP --minimal linux-3.4/fs/nfs/inode.c linux-3.4-vs2.3.3.4/fs/nfs/inode.c +--- linux-3.4/fs/nfs/inode.c 2012-05-21 18:07:25.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/nfs/inode.c 2012-05-21 18:15:05.000000000 +0200 +@@ -40,6 +40,7 @@ #include #include + #include +#include - #include #include -@@ -274,6 +275,8 @@ nfs_fhget(struct super_block *sb, struct + +@@ -275,6 +276,8 @@ nfs_fhget(struct super_block *sb, struct if (inode->i_state & I_NEW) { struct nfs_inode *nfsi = NFS_I(inode); unsigned long now = jiffies; @@ -5115,7 +5236,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in /* We set i_ino for the few things that still rely on it, * such as stat(2) */ -@@ -322,8 +325,8 @@ nfs_fhget(struct super_block *sb, struct +@@ -323,8 +326,8 @@ nfs_fhget(struct super_block *sb, struct inode->i_version = 0; inode->i_size = 0; clear_nlink(inode); @@ -5126,7 +5247,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in inode->i_blocks = 0; memset(nfsi->cookieverf, 0, sizeof(nfsi->cookieverf)); -@@ -360,13 +363,13 @@ nfs_fhget(struct super_block *sb, struct +@@ -361,13 +364,13 @@ nfs_fhget(struct super_block *sb, struct else if (nfs_server_capable(inode, NFS_CAP_NLINK)) nfsi->cache_validity |= NFS_INO_INVALID_ATTR; if (fattr->valid & NFS_ATTR_FATTR_OWNER) @@ -5142,7 +5263,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in else if (nfs_server_capable(inode, NFS_CAP_OWNER_GROUP)) nfsi->cache_validity |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS -@@ -379,6 +382,11 @@ nfs_fhget(struct super_block *sb, struct +@@ -380,6 +383,11 @@ nfs_fhget(struct super_block *sb, struct */ inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used); } @@ -5154,7 +5275,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in nfsi->attrtimeo = NFS_MINATTRTIMEO(inode); nfsi->attrtimeo_timestamp = now; nfsi->access_cache = RB_ROOT; -@@ -495,6 +503,8 @@ void nfs_setattr_update_inode(struct ino +@@ -497,6 +505,8 @@ void nfs_setattr_update_inode(struct ino inode->i_uid = attr->ia_uid; if ((attr->ia_valid & ATTR_GID) != 0) inode->i_gid = attr->ia_gid; @@ -5163,7 +5284,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL; spin_unlock(&inode->i_lock); } -@@ -944,6 +954,9 @@ static int nfs_check_inode_attributes(st +@@ -946,6 +956,9 @@ static int nfs_check_inode_attributes(st struct nfs_inode *nfsi = NFS_I(inode); loff_t cur_size, new_isize; unsigned long invalid = 0; @@ -5173,7 +5294,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in /* Has the inode gone and changed behind our back? */ -@@ -967,13 +980,18 @@ static int nfs_check_inode_attributes(st +@@ -969,13 +982,18 @@ static int nfs_check_inode_attributes(st invalid |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE; } @@ -5194,7 +5315,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in /* Has the link count changed? */ if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink) -@@ -1210,6 +1228,9 @@ static int nfs_update_inode(struct inode +@@ -1273,6 +1291,9 @@ static int nfs_update_inode(struct inode unsigned long invalid = 0; unsigned long now = jiffies; unsigned long save_cache_validity; @@ -5202,9 +5323,9 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in + gid_t gid; + tag_t tag; - dfprintk(VFS, "NFS: %s(%s/%ld ct=%d info=0x%x)\n", + dfprintk(VFS, "NFS: %s(%s/%ld fh_crc=0x%08x ct=%d info=0x%x)\n", __func__, inode->i_sb->s_id, inode->i_ino, -@@ -1317,6 +1338,9 @@ static int nfs_update_inode(struct inode +@@ -1381,6 +1402,9 @@ static int nfs_update_inode(struct inode | NFS_INO_REVAL_PAGECACHE | NFS_INO_REVAL_FORCED); @@ -5214,7 +5335,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in if (fattr->valid & NFS_ATTR_FATTR_ATIME) memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime)); -@@ -1338,9 +1362,9 @@ static int nfs_update_inode(struct inode +@@ -1402,9 +1426,9 @@ static int nfs_update_inode(struct inode | NFS_INO_REVAL_FORCED); if (fattr->valid & NFS_ATTR_FATTR_OWNER) { @@ -5226,7 +5347,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in } } else if (server->caps & NFS_CAP_OWNER) invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR -@@ -1349,9 +1373,9 @@ static int nfs_update_inode(struct inode +@@ -1413,9 +1437,9 @@ static int nfs_update_inode(struct inode | NFS_INO_REVAL_FORCED); if (fattr->valid & NFS_ATTR_FATTR_GROUP) { @@ -5238,7 +5359,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in } } else if (server->caps & NFS_CAP_OWNER_GROUP) invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR -@@ -1359,6 +1383,10 @@ static int nfs_update_inode(struct inode +@@ -1423,6 +1447,10 @@ static int nfs_update_inode(struct inode | NFS_INO_INVALID_ACL | NFS_INO_REVAL_FORCED); @@ -5249,9 +5370,9 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/inode.c linux-3.3.1-vs2.3.3.2/fs/nfs/in if (fattr->valid & NFS_ATTR_FATTR_NLINK) { if (inode->i_nlink != fattr->nlink) { invalid |= NFS_INO_INVALID_ATTR; -diff -NurpP --minimal linux-3.3.1/fs/nfs/nfs3xdr.c linux-3.3.1-vs2.3.3.2/fs/nfs/nfs3xdr.c ---- linux-3.3.1/fs/nfs/nfs3xdr.c 2011-03-15 18:07:32.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/nfs/nfs3xdr.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/nfs/nfs3xdr.c linux-3.4-vs2.3.3.4/fs/nfs/nfs3xdr.c +--- linux-3.4/fs/nfs/nfs3xdr.c 2012-05-21 18:07:25.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/nfs/nfs3xdr.c 2012-05-21 18:15:05.000000000 +0200 @@ -20,6 +20,7 @@ #include #include @@ -5397,17 +5518,17 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/nfs3xdr.c linux-3.3.1-vs2.3.3.2/fs/nfs/ } /* -diff -NurpP --minimal linux-3.3.1/fs/nfs/super.c linux-3.3.1-vs2.3.3.2/fs/nfs/super.c ---- linux-3.3.1/fs/nfs/super.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/nfs/super.c 2012-02-24 03:55:06.000000000 +0100 -@@ -52,6 +52,7 @@ - #include - #include +diff -NurpP --minimal linux-3.4/fs/nfs/super.c linux-3.4-vs2.3.3.4/fs/nfs/super.c +--- linux-3.4/fs/nfs/super.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/nfs/super.c 2012-05-21 18:15:05.000000000 +0200 +@@ -54,6 +54,7 @@ #include + #include + #include +#include - #include #include + @@ -86,6 +87,7 @@ enum { Opt_sharecache, Opt_nosharecache, Opt_resvport, Opt_noresvport, @@ -5416,17 +5537,17 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/super.c linux-3.3.1-vs2.3.3.2/fs/nfs/su /* Mount options that take integer arguments */ Opt_port, -@@ -99,6 +101,7 @@ enum { +@@ -98,6 +100,7 @@ enum { + Opt_mountport, Opt_mountvers, - Opt_nfsvers, Opt_minorversion, + Opt_tagid, /* Mount options that take string arguments */ - Opt_sec, Opt_proto, Opt_mountproto, Opt_mounthost, -@@ -179,6 +182,10 @@ static const match_table_t nfs_mount_opt - { Opt_fscache_uniq, "fsc=%s" }, - { Opt_local_lock, "local_lock=%s" }, + Opt_nfsvers, +@@ -180,6 +183,10 @@ static const match_table_t nfs_mount_opt + /* The following needs to be listed after all other options */ + { Opt_nfsvers, "v%s" }, + { Opt_tag, "tag" }, + { Opt_notag, "notag" }, @@ -5435,7 +5556,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/super.c linux-3.3.1-vs2.3.3.2/fs/nfs/su { Opt_err, NULL } }; -@@ -649,6 +656,7 @@ static void nfs_show_mount_options(struc +@@ -674,6 +681,7 @@ static void nfs_show_mount_options(struc { NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" }, { NFS_MOUNT_UNSHARED, ",nosharecache", "" }, { NFS_MOUNT_NORESVPORT, ",noresvport", "" }, @@ -5443,7 +5564,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/super.c linux-3.3.1-vs2.3.3.2/fs/nfs/su { 0, NULL, NULL } }; const struct proc_nfs_info *nfs_infop; -@@ -1216,6 +1224,14 @@ static int nfs_parse_mount_options(char +@@ -1286,6 +1294,14 @@ static int nfs_parse_mount_options(char kfree(mnt->fscache_uniq); mnt->fscache_uniq = NULL; break; @@ -5458,7 +5579,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/super.c linux-3.3.1-vs2.3.3.2/fs/nfs/su /* * options that take numeric values -@@ -1322,6 +1338,12 @@ static int nfs_parse_mount_options(char +@@ -1372,6 +1388,12 @@ static int nfs_parse_mount_options(char goto out_invalid_value; mnt->minorversion = option; break; @@ -5471,9 +5592,9 @@ diff -NurpP --minimal linux-3.3.1/fs/nfs/super.c linux-3.3.1-vs2.3.3.2/fs/nfs/su /* * options that take text values -diff -NurpP --minimal linux-3.3.1/fs/nfsd/auth.c linux-3.3.1-vs2.3.3.2/fs/nfsd/auth.c ---- linux-3.3.1/fs/nfsd/auth.c 2010-02-25 11:52:05.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/nfsd/auth.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/nfsd/auth.c linux-3.4-vs2.3.3.4/fs/nfsd/auth.c +--- linux-3.4/fs/nfsd/auth.c 2010-02-25 11:52:05.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/nfsd/auth.c 2012-05-21 18:15:05.000000000 +0200 @@ -1,6 +1,7 @@ /* Copyright (C) 1995, 1996 Olaf Kirch */ @@ -5492,9 +5613,9 @@ diff -NurpP --minimal linux-3.3.1/fs/nfsd/auth.c linux-3.3.1-vs2.3.3.2/fs/nfsd/a rqgi = rqstp->rq_cred.cr_group_info; -diff -NurpP --minimal linux-3.3.1/fs/nfsd/nfs3xdr.c linux-3.3.1-vs2.3.3.2/fs/nfsd/nfs3xdr.c ---- linux-3.3.1/fs/nfsd/nfs3xdr.c 2011-07-22 11:18:05.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/nfsd/nfs3xdr.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/nfsd/nfs3xdr.c linux-3.4-vs2.3.3.4/fs/nfsd/nfs3xdr.c +--- linux-3.4/fs/nfsd/nfs3xdr.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/nfsd/nfs3xdr.c 2012-05-21 18:15:05.000000000 +0200 @@ -7,6 +7,7 @@ */ @@ -5545,9 +5666,9 @@ diff -NurpP --minimal linux-3.3.1/fs/nfsd/nfs3xdr.c linux-3.3.1-vs2.3.3.2/fs/nfs if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) { p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN); } else { -diff -NurpP --minimal linux-3.3.1/fs/nfsd/nfs4xdr.c linux-3.3.1-vs2.3.3.2/fs/nfsd/nfs4xdr.c ---- linux-3.3.1/fs/nfsd/nfs4xdr.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/nfsd/nfs4xdr.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/nfsd/nfs4xdr.c linux-3.4-vs2.3.3.4/fs/nfsd/nfs4xdr.c +--- linux-3.4/fs/nfsd/nfs4xdr.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/nfsd/nfs4xdr.c 2012-05-21 18:15:05.000000000 +0200 @@ -46,6 +46,7 @@ #include #include @@ -5556,7 +5677,7 @@ diff -NurpP --minimal linux-3.3.1/fs/nfsd/nfs4xdr.c linux-3.3.1-vs2.3.3.2/fs/nfs #include "idmap.h" #include "acl.h" -@@ -2327,14 +2328,18 @@ out_acl: +@@ -2325,14 +2326,18 @@ out_acl: WRITE32(stat.nlink); } if (bmval1 & FATTR4_WORD1_OWNER) { @@ -5577,9 +5698,9 @@ diff -NurpP --minimal linux-3.3.1/fs/nfsd/nfs4xdr.c linux-3.3.1-vs2.3.3.2/fs/nfs if (status == nfserr_resource) goto out_resource; if (status) -diff -NurpP --minimal linux-3.3.1/fs/nfsd/nfsxdr.c linux-3.3.1-vs2.3.3.2/fs/nfsd/nfsxdr.c ---- linux-3.3.1/fs/nfsd/nfsxdr.c 2011-05-22 16:17:53.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/nfsd/nfsxdr.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/nfsd/nfsxdr.c linux-3.4-vs2.3.3.4/fs/nfsd/nfsxdr.c +--- linux-3.4/fs/nfsd/nfsxdr.c 2011-05-22 16:17:53.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/nfsd/nfsxdr.c 2012-05-21 18:15:05.000000000 +0200 @@ -6,6 +6,7 @@ #include "xdr.h" @@ -5628,9 +5749,9 @@ diff -NurpP --minimal linux-3.3.1/fs/nfsd/nfsxdr.c linux-3.3.1-vs2.3.3.2/fs/nfsd if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) { *p++ = htonl(NFS_MAXPATHLEN); -diff -NurpP --minimal linux-3.3.1/fs/ocfs2/dlmglue.c linux-3.3.1-vs2.3.3.2/fs/ocfs2/dlmglue.c ---- linux-3.3.1/fs/ocfs2/dlmglue.c 2012-01-09 16:14:55.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ocfs2/dlmglue.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ocfs2/dlmglue.c linux-3.4-vs2.3.3.4/fs/ocfs2/dlmglue.c +--- linux-3.4/fs/ocfs2/dlmglue.c 2012-01-09 16:14:55.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ocfs2/dlmglue.c 2012-05-21 18:15:05.000000000 +0200 @@ -2047,6 +2047,7 @@ static void __ocfs2_stuff_meta_lvb(struc lvb->lvb_iclusters = cpu_to_be32(oi->ip_clusters); lvb->lvb_iuid = cpu_to_be32(inode->i_uid); @@ -5647,9 +5768,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/dlmglue.c linux-3.3.1-vs2.3.3.2/fs/oc inode->i_mode = be16_to_cpu(lvb->lvb_imode); set_nlink(inode, be16_to_cpu(lvb->lvb_inlink)); ocfs2_unpack_timespec(&inode->i_atime, -diff -NurpP --minimal linux-3.3.1/fs/ocfs2/dlmglue.h linux-3.3.1-vs2.3.3.2/fs/ocfs2/dlmglue.h ---- linux-3.3.1/fs/ocfs2/dlmglue.h 2010-10-21 13:07:50.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/ocfs2/dlmglue.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ocfs2/dlmglue.h linux-3.4-vs2.3.3.4/fs/ocfs2/dlmglue.h +--- linux-3.4/fs/ocfs2/dlmglue.h 2010-10-21 13:07:50.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ocfs2/dlmglue.h 2012-05-21 18:15:05.000000000 +0200 @@ -46,7 +46,8 @@ struct ocfs2_meta_lvb { __be16 lvb_inlink; __be32 lvb_iattr; @@ -5660,9 +5781,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/dlmglue.h linux-3.3.1-vs2.3.3.2/fs/oc }; #define OCFS2_QINFO_LVB_VERSION 1 -diff -NurpP --minimal linux-3.3.1/fs/ocfs2/file.c linux-3.3.1-vs2.3.3.2/fs/ocfs2/file.c ---- linux-3.3.1/fs/ocfs2/file.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ocfs2/file.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ocfs2/file.c linux-3.4-vs2.3.3.4/fs/ocfs2/file.c +--- linux-3.4/fs/ocfs2/file.c 2012-03-19 19:47:26.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ocfs2/file.c 2012-05-21 18:15:05.000000000 +0200 @@ -1123,7 +1123,7 @@ int ocfs2_setattr(struct dentry *dentry, attr->ia_valid &= ~ATTR_SIZE; @@ -5672,9 +5793,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/file.c linux-3.3.1-vs2.3.3.2/fs/ocfs2 if (!(attr->ia_valid & OCFS2_VALID_ATTRS)) return 0; -diff -NurpP --minimal linux-3.3.1/fs/ocfs2/inode.c linux-3.3.1-vs2.3.3.2/fs/ocfs2/inode.c ---- linux-3.3.1/fs/ocfs2/inode.c 2012-01-09 16:14:55.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ocfs2/inode.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ocfs2/inode.c linux-3.4-vs2.3.3.4/fs/ocfs2/inode.c +--- linux-3.4/fs/ocfs2/inode.c 2012-01-09 16:14:55.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ocfs2/inode.c 2012-05-21 18:15:05.000000000 +0200 @@ -28,6 +28,7 @@ #include #include @@ -5771,9 +5892,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/inode.c linux-3.3.1-vs2.3.3.2/fs/ocfs /* Fast symlinks will have i_size but no allocated clusters. */ if (S_ISLNK(inode->i_mode) && !fe->i_clusters) -diff -NurpP --minimal linux-3.3.1/fs/ocfs2/inode.h linux-3.3.1-vs2.3.3.2/fs/ocfs2/inode.h ---- linux-3.3.1/fs/ocfs2/inode.h 2012-01-09 16:14:55.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ocfs2/inode.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ocfs2/inode.h linux-3.4-vs2.3.3.4/fs/ocfs2/inode.h +--- linux-3.4/fs/ocfs2/inode.h 2012-01-09 16:14:55.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ocfs2/inode.h 2012-05-21 18:15:05.000000000 +0200 @@ -154,6 +154,7 @@ struct buffer_head *ocfs2_bread(struct i void ocfs2_set_inode_flags(struct inode *inode); @@ -5782,10 +5903,10 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/inode.h linux-3.3.1-vs2.3.3.2/fs/ocfs static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode) { -diff -NurpP --minimal linux-3.3.1/fs/ocfs2/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ocfs2/ioctl.c ---- linux-3.3.1/fs/ocfs2/ioctl.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ocfs2/ioctl.c 2012-02-24 03:55:06.000000000 +0100 -@@ -78,7 +78,41 @@ static int ocfs2_get_inode_attr(struct i +diff -NurpP --minimal linux-3.4/fs/ocfs2/ioctl.c linux-3.4-vs2.3.3.4/fs/ocfs2/ioctl.c +--- linux-3.4/fs/ocfs2/ioctl.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ocfs2/ioctl.c 2012-05-21 18:15:05.000000000 +0200 +@@ -76,7 +76,41 @@ static int ocfs2_get_inode_attr(struct i return status; } @@ -5828,7 +5949,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ocfs unsigned mask) { struct ocfs2_inode_info *ocfs2_inode = OCFS2_I(inode); -@@ -103,6 +137,11 @@ static int ocfs2_set_inode_attr(struct i +@@ -101,6 +135,11 @@ static int ocfs2_set_inode_attr(struct i if (!S_ISDIR(inode->i_mode)) flags &= ~OCFS2_DIRSYNC_FL; @@ -5840,7 +5961,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ocfs handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS); if (IS_ERR(handle)) { status = PTR_ERR(handle); -@@ -881,6 +920,7 @@ bail: +@@ -879,6 +918,7 @@ bail: return status; } @@ -5848,9 +5969,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/ioctl.c linux-3.3.1-vs2.3.3.2/fs/ocfs long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { struct inode *inode = filp->f_path.dentry->d_inode; -diff -NurpP --minimal linux-3.3.1/fs/ocfs2/namei.c linux-3.3.1-vs2.3.3.2/fs/ocfs2/namei.c ---- linux-3.3.1/fs/ocfs2/namei.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ocfs2/namei.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ocfs2/namei.c linux-3.4-vs2.3.3.4/fs/ocfs2/namei.c +--- linux-3.4/fs/ocfs2/namei.c 2012-03-19 19:47:26.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ocfs2/namei.c 2012-05-21 18:15:05.000000000 +0200 @@ -41,6 +41,7 @@ #include #include @@ -5881,9 +6002,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/namei.c linux-3.3.1-vs2.3.3.2/fs/ocfs fe->i_mode = cpu_to_le16(inode->i_mode); if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) fe->id1.dev1.i_rdev = cpu_to_le64(huge_encode_dev(dev)); -diff -NurpP --minimal linux-3.3.1/fs/ocfs2/ocfs2.h linux-3.3.1-vs2.3.3.2/fs/ocfs2/ocfs2.h ---- linux-3.3.1/fs/ocfs2/ocfs2.h 2012-01-09 16:14:55.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ocfs2/ocfs2.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ocfs2/ocfs2.h linux-3.4-vs2.3.3.4/fs/ocfs2/ocfs2.h +--- linux-3.4/fs/ocfs2/ocfs2.h 2012-01-09 16:14:55.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/ocfs2/ocfs2.h 2012-05-21 18:15:05.000000000 +0200 @@ -272,6 +272,7 @@ enum ocfs2_mount_options writes */ OCFS2_MOUNT_HB_NONE = 1 << 13, /* No heartbeat */ @@ -5892,9 +6013,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/ocfs2.h linux-3.3.1-vs2.3.3.2/fs/ocfs }; #define OCFS2_OSB_SOFT_RO 0x0001 -diff -NurpP --minimal linux-3.3.1/fs/ocfs2/ocfs2_fs.h linux-3.3.1-vs2.3.3.2/fs/ocfs2/ocfs2_fs.h ---- linux-3.3.1/fs/ocfs2/ocfs2_fs.h 2011-05-22 16:17:53.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/ocfs2/ocfs2_fs.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ocfs2/ocfs2_fs.h linux-3.4-vs2.3.3.4/fs/ocfs2/ocfs2_fs.h +--- linux-3.4/fs/ocfs2/ocfs2_fs.h 2011-05-22 16:17:53.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ocfs2/ocfs2_fs.h 2012-05-21 18:15:05.000000000 +0200 @@ -266,6 +266,11 @@ #define OCFS2_TOPDIR_FL FS_TOPDIR_FL /* Top of directory hierarchies*/ #define OCFS2_RESERVED_FL FS_RESERVED_FL /* reserved for ext2 lib */ @@ -5907,9 +6028,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/ocfs2_fs.h linux-3.3.1-vs2.3.3.2/fs/o #define OCFS2_FL_VISIBLE FS_FL_USER_VISIBLE /* User visible flags */ #define OCFS2_FL_MODIFIABLE FS_FL_USER_MODIFIABLE /* User modifiable flags */ -diff -NurpP --minimal linux-3.3.1/fs/ocfs2/super.c linux-3.3.1-vs2.3.3.2/fs/ocfs2/super.c ---- linux-3.3.1/fs/ocfs2/super.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/ocfs2/super.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/ocfs2/super.c linux-3.4-vs2.3.3.4/fs/ocfs2/super.c +--- linux-3.4/fs/ocfs2/super.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/ocfs2/super.c 2012-05-21 18:15:05.000000000 +0200 @@ -185,6 +185,7 @@ enum { Opt_coherency_full, Opt_resv_level, @@ -5952,7 +6073,7 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/super.c linux-3.3.1-vs2.3.3.2/fs/ocfs if (ocfs2_mount_local(osb)) snprintf(nodestr, sizeof(nodestr), "local"); else -@@ -1506,6 +1520,20 @@ static int ocfs2_parse_options(struct su +@@ -1503,6 +1517,20 @@ static int ocfs2_parse_options(struct su option < OCFS2_MAX_RESV_LEVEL) mopt->dir_resv_level = option; break; @@ -5973,9 +6094,9 @@ diff -NurpP --minimal linux-3.3.1/fs/ocfs2/super.c linux-3.3.1-vs2.3.3.2/fs/ocfs default: mlog(ML_ERROR, "Unrecognized mount option \"%s\" " -diff -NurpP --minimal linux-3.3.1/fs/open.c linux-3.3.1-vs2.3.3.2/fs/open.c ---- linux-3.3.1/fs/open.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/open.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/open.c linux-3.4-vs2.3.3.4/fs/open.c +--- linux-3.4/fs/open.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/open.c 2012-05-21 18:15:05.000000000 +0200 @@ -30,6 +30,11 @@ #include #include @@ -6060,16 +6181,16 @@ diff -NurpP --minimal linux-3.3.1/fs/open.c linux-3.3.1-vs2.3.3.2/fs/open.c mnt_drop_write(path.mnt); out_release: @@ -839,6 +866,7 @@ static void __put_unused_fd(struct files - __FD_CLR(fd, fdt->open_fds); + __clear_open_fd(fd, fdt); if (fd < files->next_fd) files->next_fd = fd; + vx_openfd_dec(fd); } void put_unused_fd(unsigned int fd) -diff -NurpP --minimal linux-3.3.1/fs/proc/array.c linux-3.3.1-vs2.3.3.2/fs/proc/array.c ---- linux-3.3.1/fs/proc/array.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/proc/array.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/proc/array.c linux-3.4-vs2.3.3.4/fs/proc/array.c +--- linux-3.4/fs/proc/array.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/proc/array.c 2012-05-21 18:15:05.000000000 +0200 @@ -81,6 +81,8 @@ #include #include @@ -6180,12 +6301,12 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/array.c linux-3.3.1-vs2.3.3.2/fs/proc/ + start_time = 0; + } + - seq_printf(m, "%d (%s) %c %d %d %d %d %d %u %lu \ - %lu %lu %lu %lu %lu %ld %ld %ld %ld %d 0 %llu %lu %ld %lu %lu %lu %lu %lu \ - %lu %lu %lu %lu %lu %lu %lu %lu %d %d %u %u %llu %lu %ld %lu %lu %lu\n", -diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/base.c ---- linux-3.3.1/fs/proc/base.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/proc/base.c 2012-02-24 04:45:58.000000000 +0100 + seq_printf(m, "%d (%s) %c", pid_nr_ns(pid, ns), tcomm, state); + seq_put_decimal_ll(m, ' ', ppid); + seq_put_decimal_ll(m, ' ', pgid); +diff -NurpP --minimal linux-3.4/fs/proc/base.c linux-3.4-vs2.3.3.4/fs/proc/base.c +--- linux-3.4/fs/proc/base.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/proc/base.c 2012-05-21 18:15:05.000000000 +0200 @@ -84,6 +84,8 @@ #include #include @@ -6213,7 +6334,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b /* * Warn that /proc/pid/oom_adj is deprecated, see * Documentation/feature-removal-schedule.txt. -@@ -1542,6 +1549,8 @@ struct inode *proc_pid_make_inode(struct +@@ -1541,6 +1548,8 @@ struct inode *proc_pid_make_inode(struct inode->i_gid = cred->egid; rcu_read_unlock(); } @@ -6222,7 +6343,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b security_task_to_inode(task, inode); out: -@@ -1587,6 +1596,8 @@ int pid_getattr(struct vfsmount *mnt, st +@@ -1586,6 +1595,8 @@ int pid_getattr(struct vfsmount *mnt, st /* dentry stuff */ @@ -6231,7 +6352,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b /* * Exceptional case: normally we are not allowed to unhash a busy * directory. In this case, however, we can do it - no aliasing problems -@@ -1615,6 +1626,12 @@ int pid_revalidate(struct dentry *dentry +@@ -1614,6 +1625,12 @@ int pid_revalidate(struct dentry *dentry task = get_proc_task(inode); if (task) { @@ -6244,7 +6365,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) || task_dumpable(task)) { rcu_read_lock(); -@@ -1631,6 +1648,7 @@ int pid_revalidate(struct dentry *dentry +@@ -1630,6 +1647,7 @@ int pid_revalidate(struct dentry *dentry put_task_struct(task); return 1; } @@ -6252,7 +6373,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b d_drop(dentry); return 0; } -@@ -2469,6 +2487,13 @@ static struct dentry *proc_pident_lookup +@@ -2449,6 +2467,13 @@ static struct dentry *proc_pident_lookup if (!task) goto out_no_task; @@ -6266,7 +6387,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b /* * Yes, it does not scale. And it should not. Don't add * new entries into /proc// without very good reasons. -@@ -2854,7 +2879,7 @@ out_iput: +@@ -2834,7 +2859,7 @@ out_iput: static struct dentry *proc_base_lookup(struct inode *dir, struct dentry *dentry) { struct dentry *error; @@ -6275,7 +6396,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b const struct pid_entry *p, *last; error = ERR_PTR(-ENOENT); -@@ -2961,6 +2986,9 @@ static int proc_pid_personality(struct s +@@ -2941,6 +2966,9 @@ static int proc_pid_personality(struct s static const struct file_operations proc_task_operations; static const struct inode_operations proc_task_inode_operations; @@ -6285,7 +6406,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b static const struct pid_entry tgid_base_stuff[] = { DIR("task", S_IRUGO|S_IXUGO, proc_task_inode_operations, proc_task_operations), DIR("fd", S_IRUSR|S_IXUSR, proc_fd_inode_operations, proc_fd_operations), -@@ -3027,6 +3055,8 @@ static const struct pid_entry tgid_base_ +@@ -3007,6 +3035,8 @@ static const struct pid_entry tgid_base_ #ifdef CONFIG_CGROUPS REG("cgroup", S_IRUGO, proc_cgroup_operations), #endif @@ -6294,7 +6415,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b INF("oom_score", S_IRUGO, proc_oom_score), REG("oom_adj", S_IRUGO|S_IWUSR, proc_oom_adjust_operations), REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations), -@@ -3046,6 +3076,7 @@ static const struct pid_entry tgid_base_ +@@ -3026,6 +3056,7 @@ static const struct pid_entry tgid_base_ #ifdef CONFIG_HARDWALL INF("hardwall", S_IRUGO, proc_pid_hardwall), #endif @@ -6302,7 +6423,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b }; static int proc_tgid_base_readdir(struct file * filp, -@@ -3239,7 +3270,7 @@ retry: +@@ -3219,7 +3250,7 @@ retry: iter.task = NULL; pid = find_ge_pid(iter.tgid, ns); if (pid) { @@ -6311,7 +6432,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b iter.task = pid_task(pid, PIDTYPE_PID); /* What we to know is if the pid we have find is the * pid of a thread_group_leader. Testing for task -@@ -3269,7 +3300,7 @@ static int proc_pid_fill_cache(struct fi +@@ -3249,7 +3280,7 @@ static int proc_pid_fill_cache(struct fi struct tgid_iter iter) { char name[PROC_NUMBUF]; @@ -6320,7 +6441,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b return proc_fill_cache(filp, dirent, filldir, name, len, proc_pid_instantiate, iter.task, NULL); } -@@ -3293,7 +3324,7 @@ int proc_pid_readdir(struct file * filp, +@@ -3273,7 +3304,7 @@ int proc_pid_readdir(struct file * filp, goto out_no_task; nr = filp->f_pos - FIRST_PROCESS_ENTRY; @@ -6329,7 +6450,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b if (!reaper) goto out_no_task; -@@ -3315,6 +3346,8 @@ int proc_pid_readdir(struct file * filp, +@@ -3295,6 +3326,8 @@ int proc_pid_readdir(struct file * filp, __filldir = fake_filldir; filp->f_pos = iter.tgid + TGID_OFFSET; @@ -6338,7 +6459,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b if (proc_pid_fill_cache(filp, dirent, __filldir, iter) < 0) { put_task_struct(iter.task); goto out; -@@ -3468,6 +3501,8 @@ static struct dentry *proc_task_lookup(s +@@ -3448,6 +3481,8 @@ static struct dentry *proc_task_lookup(s tid = name_to_int(dentry); if (tid == ~0U) goto out; @@ -6347,9 +6468,9 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/base.c linux-3.3.1-vs2.3.3.2/fs/proc/b ns = dentry->d_sb->s_fs_info; rcu_read_lock(); -diff -NurpP --minimal linux-3.3.1/fs/proc/generic.c linux-3.3.1-vs2.3.3.2/fs/proc/generic.c ---- linux-3.3.1/fs/proc/generic.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/proc/generic.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/proc/generic.c linux-3.4-vs2.3.3.4/fs/proc/generic.c +--- linux-3.4/fs/proc/generic.c 2012-03-19 19:47:26.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/proc/generic.c 2012-05-21 18:15:05.000000000 +0200 @@ -22,6 +22,7 @@ #include #include @@ -6409,10 +6530,10 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/generic.c linux-3.3.1-vs2.3.3.2/fs/pro } else { kfree(ent); ent = NULL; -diff -NurpP --minimal linux-3.3.1/fs/proc/inode.c linux-3.3.1-vs2.3.3.2/fs/proc/inode.c ---- linux-3.3.1/fs/proc/inode.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/proc/inode.c 2012-02-24 03:55:06.000000000 +0100 -@@ -459,6 +459,8 @@ struct inode *proc_get_inode(struct supe +diff -NurpP --minimal linux-3.4/fs/proc/inode.c linux-3.4-vs2.3.3.4/fs/proc/inode.c +--- linux-3.4/fs/proc/inode.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/proc/inode.c 2012-05-21 18:15:05.000000000 +0200 +@@ -458,6 +458,8 @@ struct inode *proc_get_inode(struct supe inode->i_uid = de->uid; inode->i_gid = de->gid; } @@ -6421,18 +6542,19 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/inode.c linux-3.3.1-vs2.3.3.2/fs/proc/ if (de->size) inode->i_size = de->size; if (de->nlink) -diff -NurpP --minimal linux-3.3.1/fs/proc/internal.h linux-3.3.1-vs2.3.3.2/fs/proc/internal.h ---- linux-3.3.1/fs/proc/internal.h 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/proc/internal.h 2012-02-24 03:55:06.000000000 +0100 -@@ -10,6 +10,7 @@ +diff -NurpP --minimal linux-3.4/fs/proc/internal.h linux-3.4-vs2.3.3.4/fs/proc/internal.h +--- linux-3.4/fs/proc/internal.h 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/proc/internal.h 2012-05-21 18:15:05.000000000 +0200 +@@ -10,6 +10,8 @@ */ #include +#include ++ + struct ctl_table_header; extern struct proc_dir_entry proc_root; - #ifdef CONFIG_PROC_SYSCTL -@@ -51,6 +52,9 @@ extern int proc_pid_status(struct seq_fi +@@ -54,6 +56,9 @@ extern int proc_pid_status(struct seq_fi struct pid *pid, struct task_struct *task); extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task); @@ -6441,8 +6563,8 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/internal.h linux-3.3.1-vs2.3.3.2/fs/pr + extern loff_t mem_lseek(struct file *file, loff_t offset, int orig); - extern const struct file_operations proc_maps_operations; -@@ -76,11 +80,16 @@ static inline struct pid *proc_pid(struc + extern const struct file_operations proc_pid_maps_operations; +@@ -82,11 +87,16 @@ static inline struct pid *proc_pid(struc return PROC_I(inode)->pid; } @@ -6460,9 +6582,9 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/internal.h linux-3.3.1-vs2.3.3.2/fs/pr static inline int proc_fd(struct inode *inode) { return PROC_I(inode)->fd; -diff -NurpP --minimal linux-3.3.1/fs/proc/loadavg.c linux-3.3.1-vs2.3.3.2/fs/proc/loadavg.c ---- linux-3.3.1/fs/proc/loadavg.c 2009-09-10 15:26:23.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/proc/loadavg.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/proc/loadavg.c linux-3.4-vs2.3.3.4/fs/proc/loadavg.c +--- linux-3.4/fs/proc/loadavg.c 2009-09-10 15:26:23.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/proc/loadavg.c 2012-05-21 18:15:05.000000000 +0200 @@ -12,15 +12,27 @@ static int loadavg_proc_show(struct seq_file *m, void *v) @@ -6492,9 +6614,9 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/loadavg.c linux-3.3.1-vs2.3.3.2/fs/pro task_active_pid_ns(current)->last_pid); return 0; } -diff -NurpP --minimal linux-3.3.1/fs/proc/meminfo.c linux-3.3.1-vs2.3.3.2/fs/proc/meminfo.c ---- linux-3.3.1/fs/proc/meminfo.c 2012-01-09 16:14:55.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/proc/meminfo.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/proc/meminfo.c linux-3.4-vs2.3.3.4/fs/proc/meminfo.c +--- linux-3.4/fs/proc/meminfo.c 2012-01-09 16:14:55.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/proc/meminfo.c 2012-05-21 18:15:05.000000000 +0200 @@ -39,7 +39,8 @@ static int meminfo_proc_show(struct seq_ allowed = ((totalram_pages - hugetlb_total_pages()) * sysctl_overcommit_ratio / 100) + total_swap_pages; @@ -6505,9 +6627,9 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/meminfo.c linux-3.3.1-vs2.3.3.2/fs/pro total_swapcache_pages - i.bufferram; if (cached < 0) cached = 0; -diff -NurpP --minimal linux-3.3.1/fs/proc/root.c linux-3.3.1-vs2.3.3.2/fs/proc/root.c ---- linux-3.3.1/fs/proc/root.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/proc/root.c 2012-02-24 04:46:50.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/proc/root.c linux-3.4-vs2.3.3.4/fs/proc/root.c +--- linux-3.4/fs/proc/root.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/proc/root.c 2012-05-21 18:15:05.000000000 +0200 @@ -19,9 +19,14 @@ #include #include @@ -6523,7 +6645,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/root.c linux-3.3.1-vs2.3.3.2/fs/proc/r static int proc_test_super(struct super_block *sb, void *data) { return sb->s_fs_info == data; -@@ -189,6 +194,7 @@ void __init proc_root_init(void) +@@ -190,6 +195,7 @@ void __init proc_root_init(void) #endif proc_mkdir("bus", NULL); proc_sys_init(); @@ -6531,7 +6653,7 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/root.c linux-3.3.1-vs2.3.3.2/fs/proc/r } static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat -@@ -256,6 +262,7 @@ struct proc_dir_entry proc_root = { +@@ -257,6 +263,7 @@ struct proc_dir_entry proc_root = { .proc_iops = &proc_root_inode_operations, .proc_fops = &proc_root_operations, .parent = &proc_root, @@ -6539,9 +6661,31 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/root.c linux-3.3.1-vs2.3.3.2/fs/proc/r .name = "/proc", }; -diff -NurpP --minimal linux-3.3.1/fs/proc/uptime.c linux-3.3.1-vs2.3.3.2/fs/proc/uptime.c ---- linux-3.3.1/fs/proc/uptime.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/proc/uptime.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/proc/stat.c linux-3.4-vs2.3.3.4/fs/proc/stat.c +--- linux-3.4/fs/proc/stat.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/proc/stat.c 2012-05-21 18:15:05.000000000 +0200 +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -86,6 +87,10 @@ static int show_stat(struct seq_file *p, + irq = softirq = steal = 0; + guest = guest_nice = 0; + getboottime(&boottime); ++ ++ if (vx_flags(VXF_VIRT_UPTIME, 0)) ++ vx_vsi_boottime(&boottime); ++ + jif = boottime.tv_sec; + + for_each_possible_cpu(i) { +diff -NurpP --minimal linux-3.4/fs/proc/uptime.c linux-3.4-vs2.3.3.4/fs/proc/uptime.c +--- linux-3.4/fs/proc/uptime.c 2012-03-19 19:47:26.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/proc/uptime.c 2012-05-21 18:15:05.000000000 +0200 @@ -5,6 +5,7 @@ #include #include @@ -6561,9 +6705,9 @@ diff -NurpP --minimal linux-3.3.1/fs/proc/uptime.c linux-3.3.1-vs2.3.3.2/fs/proc seq_printf(m, "%lu.%02lu %lu.%02lu\n", (unsigned long) uptime.tv_sec, (uptime.tv_nsec / (NSEC_PER_SEC / 100)), -diff -NurpP --minimal linux-3.3.1/fs/proc_namespace.c linux-3.3.1-vs2.3.3.2/fs/proc_namespace.c ---- linux-3.3.1/fs/proc_namespace.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/proc_namespace.c 2012-02-24 17:41:22.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/proc_namespace.c linux-3.4-vs2.3.3.4/fs/proc_namespace.c +--- linux-3.4/fs/proc_namespace.c 2012-03-19 19:47:26.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/proc_namespace.c 2012-05-21 18:15:05.000000000 +0200 @@ -44,6 +44,8 @@ static int show_sb_opts(struct seq_file { MS_SYNCHRONOUS, ",sync" }, { MS_DIRSYNC, ",dirsync" }, @@ -6673,12 +6817,12 @@ diff -NurpP --minimal linux-3.3.1/fs/proc_namespace.c linux-3.3.1-vs2.3.3.2/fs/p /* file system type */ seq_puts(m, "with fstype "); show_type(m, sb); -diff -NurpP --minimal linux-3.3.1/fs/quota/dquot.c linux-3.3.1-vs2.3.3.2/fs/quota/dquot.c ---- linux-3.3.1/fs/quota/dquot.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/quota/dquot.c 2012-02-24 03:55:06.000000000 +0100 -@@ -1547,6 +1547,9 @@ int __dquot_alloc_space(struct inode *in +diff -NurpP --minimal linux-3.4/fs/quota/dquot.c linux-3.4-vs2.3.3.4/fs/quota/dquot.c +--- linux-3.4/fs/quota/dquot.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/quota/dquot.c 2012-05-21 18:15:05.000000000 +0200 +@@ -1563,6 +1563,9 @@ int __dquot_alloc_space(struct inode *in + struct dquot **dquots = inode->i_dquot; int reserve = flags & DQUOT_SPACE_RESERVE; - int nofail = flags & DQUOT_SPACE_NOFAIL; + if ((ret = dl_alloc_space(inode, number))) + return ret; @@ -6686,9 +6830,9 @@ diff -NurpP --minimal linux-3.3.1/fs/quota/dquot.c linux-3.3.1-vs2.3.3.2/fs/quot /* * First test before acquiring mutex - solves deadlocks when we * re-enter the quota code and are already holding the mutex -@@ -1601,6 +1604,9 @@ int dquot_alloc_inode(const struct inode - int cnt, ret = 0; - char warntype[MAXQUOTAS]; +@@ -1618,6 +1621,9 @@ int dquot_alloc_inode(const struct inode + struct dquot_warn warn[MAXQUOTAS]; + struct dquot * const *dquots = inode->i_dquot; + if ((ret = dl_alloc_inode(inode))) + return ret; @@ -6696,8 +6840,8 @@ diff -NurpP --minimal linux-3.3.1/fs/quota/dquot.c linux-3.3.1-vs2.3.3.2/fs/quot /* First test before acquiring mutex - solves deadlocks when we * re-enter the quota code and are already holding the mutex */ if (!dquot_active(inode)) -@@ -1671,6 +1677,8 @@ void __dquot_free_space(struct inode *in - char warntype[MAXQUOTAS]; +@@ -1689,6 +1695,8 @@ void __dquot_free_space(struct inode *in + struct dquot **dquots = inode->i_dquot; int reserve = flags & DQUOT_SPACE_RESERVE; + dl_free_space(inode, number); @@ -6705,18 +6849,18 @@ diff -NurpP --minimal linux-3.3.1/fs/quota/dquot.c linux-3.3.1-vs2.3.3.2/fs/quot /* First test before acquiring mutex - solves deadlocks when we * re-enter the quota code and are already holding the mutex */ if (!dquot_active(inode)) { -@@ -1709,6 +1717,8 @@ void dquot_free_inode(const struct inode - unsigned int cnt; - char warntype[MAXQUOTAS]; +@@ -1733,6 +1741,8 @@ void dquot_free_inode(const struct inode + struct dquot_warn warn[MAXQUOTAS]; + struct dquot * const *dquots = inode->i_dquot; + dl_free_inode(inode); + /* First test before acquiring mutex - solves deadlocks when we * re-enter the quota code and are already holding the mutex */ if (!dquot_active(inode)) -diff -NurpP --minimal linux-3.3.1/fs/quota/quota.c linux-3.3.1-vs2.3.3.2/fs/quota/quota.c ---- linux-3.3.1/fs/quota/quota.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/quota/quota.c 2012-03-19 20:54:39.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/quota/quota.c linux-3.4-vs2.3.3.4/fs/quota/quota.c +--- linux-3.4/fs/quota/quota.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/quota/quota.c 2012-05-21 18:15:05.000000000 +0200 @@ -8,6 +8,7 @@ #include #include @@ -6734,7 +6878,7 @@ diff -NurpP --minimal linux-3.3.1/fs/quota/quota.c linux-3.3.1-vs2.3.3.2/fs/quot return -EPERM; } -@@ -292,6 +293,46 @@ static int do_quotactl(struct super_bloc +@@ -291,6 +292,46 @@ static int do_quotactl(struct super_bloc } } @@ -6781,7 +6925,7 @@ diff -NurpP --minimal linux-3.3.1/fs/quota/quota.c linux-3.3.1-vs2.3.3.2/fs/quot /* Return 1 if 'cmd' will block on frozen filesystem */ static int quotactl_cmd_write(int cmd) { -@@ -324,6 +365,22 @@ static struct super_block *quotactl_bloc +@@ -323,6 +364,22 @@ static struct super_block *quotactl_bloc putname(tmp); if (IS_ERR(bdev)) return ERR_CAST(bdev); @@ -6804,9 +6948,9 @@ diff -NurpP --minimal linux-3.3.1/fs/quota/quota.c linux-3.3.1-vs2.3.3.2/fs/quot if (quotactl_cmd_write(cmd)) sb = get_super_thawed(bdev); else -diff -NurpP --minimal linux-3.3.1/fs/reiserfs/file.c linux-3.3.1-vs2.3.3.2/fs/reiserfs/file.c ---- linux-3.3.1/fs/reiserfs/file.c 2011-10-24 18:45:27.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/reiserfs/file.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/reiserfs/file.c linux-3.4-vs2.3.3.4/fs/reiserfs/file.c +--- linux-3.4/fs/reiserfs/file.c 2012-05-21 18:07:26.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/reiserfs/file.c 2012-05-21 18:15:05.000000000 +0200 @@ -319,5 +319,6 @@ const struct inode_operations reiserfs_f .listxattr = reiserfs_listxattr, .removexattr = reiserfs_removexattr, @@ -6814,9 +6958,9 @@ diff -NurpP --minimal linux-3.3.1/fs/reiserfs/file.c linux-3.3.1-vs2.3.3.2/fs/re + .sync_flags = reiserfs_sync_flags, .get_acl = reiserfs_get_acl, }; -diff -NurpP --minimal linux-3.3.1/fs/reiserfs/inode.c linux-3.3.1-vs2.3.3.2/fs/reiserfs/inode.c ---- linux-3.3.1/fs/reiserfs/inode.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/reiserfs/inode.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/reiserfs/inode.c linux-3.4-vs2.3.3.4/fs/reiserfs/inode.c +--- linux-3.4/fs/reiserfs/inode.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/reiserfs/inode.c 2012-05-21 18:15:05.000000000 +0200 @@ -18,6 +18,7 @@ #include #include @@ -6982,9 +7126,9 @@ diff -NurpP --minimal linux-3.3.1/fs/reiserfs/inode.c linux-3.3.1-vs2.3.3.2/fs/r mark_inode_dirty(inode); error = journal_end(&th, inode->i_sb, jbegin_count); if (error) -diff -NurpP --minimal linux-3.3.1/fs/reiserfs/ioctl.c linux-3.3.1-vs2.3.3.2/fs/reiserfs/ioctl.c ---- linux-3.3.1/fs/reiserfs/ioctl.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/reiserfs/ioctl.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/reiserfs/ioctl.c linux-3.4-vs2.3.3.4/fs/reiserfs/ioctl.c +--- linux-3.4/fs/reiserfs/ioctl.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/reiserfs/ioctl.c 2012-05-21 18:15:05.000000000 +0200 @@ -11,6 +11,21 @@ #include #include @@ -7046,12 +7190,12 @@ diff -NurpP --minimal linux-3.3.1/fs/reiserfs/ioctl.c linux-3.3.1-vs2.3.3.2/fs/r sd_attrs_to_i_attrs(flags, inode); REISERFS_I(inode)->i_attrs = flags; inode->i_ctime = CURRENT_TIME_SEC; -diff -NurpP --minimal linux-3.3.1/fs/reiserfs/namei.c linux-3.3.1-vs2.3.3.2/fs/reiserfs/namei.c ---- linux-3.3.1/fs/reiserfs/namei.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/reiserfs/namei.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/reiserfs/namei.c linux-3.4-vs2.3.3.4/fs/reiserfs/namei.c +--- linux-3.4/fs/reiserfs/namei.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/reiserfs/namei.c 2012-05-21 18:15:05.000000000 +0200 @@ -18,6 +18,7 @@ - #include - #include + #include "acl.h" + #include "xattr.h" #include +#include @@ -7065,9 +7209,50 @@ diff -NurpP --minimal linux-3.3.1/fs/reiserfs/namei.c linux-3.3.1-vs2.3.3.2/fs/r return d_splice_alias(inode, dentry); } -diff -NurpP --minimal linux-3.3.1/fs/reiserfs/super.c linux-3.3.1-vs2.3.3.2/fs/reiserfs/super.c ---- linux-3.3.1/fs/reiserfs/super.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/reiserfs/super.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/reiserfs/reiserfs.h linux-3.4-vs2.3.3.4/fs/reiserfs/reiserfs.h +--- linux-3.4/fs/reiserfs/reiserfs.h 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/reiserfs/reiserfs.h 2012-05-21 19:19:33.000000000 +0200 +@@ -544,6 +544,7 @@ enum reiserfs_mount_options { + REISERFS_EXPOSE_PRIVROOT, + REISERFS_BARRIER_NONE, + REISERFS_BARRIER_FLUSH, ++ REISERFS_TAGGED, + + /* Actions on error */ + REISERFS_ERROR_PANIC, +@@ -1543,6 +1544,11 @@ struct stat_data_v1 { + #define REISERFS_COMPR_FL FS_COMPR_FL + #define REISERFS_NOTAIL_FL FS_NOTAIL_FL + ++/* unfortunately reiserfs sdattr is only 16 bit */ ++#define REISERFS_IXUNLINK_FL (FS_IXUNLINK_FL >> 16) ++#define REISERFS_BARRIER_FL (FS_BARRIER_FL >> 16) ++#define REISERFS_COW_FL (FS_COW_FL >> 16) ++ + /* persistent flags that file inherits from the parent directory */ + #define REISERFS_INHERIT_MASK ( REISERFS_IMMUTABLE_FL | \ + REISERFS_SYNC_FL | \ +@@ -1552,6 +1558,9 @@ struct stat_data_v1 { + REISERFS_COMPR_FL | \ + REISERFS_NOTAIL_FL ) + ++#define REISERFS_FL_USER_VISIBLE 0x80FF ++#define REISERFS_FL_USER_MODIFIABLE 0x80FF ++ + /* Stat Data on disk (reiserfs version of UFS disk inode minus the + address blocks) */ + struct stat_data { +@@ -2641,6 +2650,7 @@ static inline void reiserfs_update_sd(st + void sd_attrs_to_i_attrs(__u16 sd_attrs, struct inode *inode); + void i_attrs_to_sd_attrs(struct inode *inode, __u16 * sd_attrs); + int reiserfs_setattr(struct dentry *dentry, struct iattr *attr); ++int reiserfs_sync_flags(struct inode *inode, int, int); + + int __reiserfs_write_begin(struct page *page, unsigned from, unsigned len); + +diff -NurpP --minimal linux-3.4/fs/reiserfs/super.c linux-3.4-vs2.3.3.4/fs/reiserfs/super.c +--- linux-3.4/fs/reiserfs/super.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/reiserfs/super.c 2012-05-21 18:15:05.000000000 +0200 @@ -980,6 +980,14 @@ static int reiserfs_parse_options(struct {"user_xattr",.setmask = 1 << REISERFS_UNSUPPORTED_OPT}, {"nouser_xattr",.clrmask = 1 << REISERFS_UNSUPPORTED_OPT}, @@ -7109,9 +7294,9 @@ diff -NurpP --minimal linux-3.3.1/fs/reiserfs/super.c linux-3.3.1-vs2.3.3.2/fs/r rs = SB_DISK_SUPER_BLOCK(s); /* Let's do basic sanity check to verify that underlying device is not smaller than the filesystem. If the check fails then abort and scream, -diff -NurpP --minimal linux-3.3.1/fs/reiserfs/xattr.c linux-3.3.1-vs2.3.3.2/fs/reiserfs/xattr.c ---- linux-3.3.1/fs/reiserfs/xattr.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/reiserfs/xattr.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/reiserfs/xattr.c linux-3.4-vs2.3.3.4/fs/reiserfs/xattr.c +--- linux-3.4/fs/reiserfs/xattr.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/reiserfs/xattr.c 2012-05-21 18:15:05.000000000 +0200 @@ -40,6 +40,7 @@ #include #include @@ -7120,9 +7305,9 @@ diff -NurpP --minimal linux-3.3.1/fs/reiserfs/xattr.c linux-3.3.1-vs2.3.3.2/fs/r #include #include #include -diff -NurpP --minimal linux-3.3.1/fs/stat.c linux-3.3.1-vs2.3.3.2/fs/stat.c ---- linux-3.3.1/fs/stat.c 2012-01-09 16:14:55.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/stat.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/stat.c linux-3.4-vs2.3.3.4/fs/stat.c +--- linux-3.4/fs/stat.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/stat.c 2012-05-21 18:15:05.000000000 +0200 @@ -26,6 +26,7 @@ void generic_fillattr(struct inode *inod stat->nlink = inode->i_nlink; stat->uid = inode->i_uid; @@ -7131,9 +7316,9 @@ diff -NurpP --minimal linux-3.3.1/fs/stat.c linux-3.3.1-vs2.3.3.2/fs/stat.c stat->rdev = inode->i_rdev; stat->size = i_size_read(inode); stat->atime = inode->i_atime; -diff -NurpP --minimal linux-3.3.1/fs/statfs.c linux-3.3.1-vs2.3.3.2/fs/statfs.c ---- linux-3.3.1/fs/statfs.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/statfs.c 2012-02-24 04:27:47.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/statfs.c linux-3.4-vs2.3.3.4/fs/statfs.c +--- linux-3.4/fs/statfs.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/statfs.c 2012-05-21 18:15:05.000000000 +0200 @@ -7,6 +7,8 @@ #include #include @@ -7152,20 +7337,19 @@ diff -NurpP --minimal linux-3.3.1/fs/statfs.c linux-3.3.1-vs2.3.3.2/fs/statfs.c return retval; } -diff -NurpP --minimal linux-3.3.1/fs/super.c linux-3.3.1-vs2.3.3.2/fs/super.c ---- linux-3.3.1/fs/super.c 2012-03-19 19:47:26.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/super.c 2012-03-19 20:52:10.000000000 +0100 -@@ -32,6 +32,9 @@ - #include +diff -NurpP --minimal linux-3.4/fs/super.c linux-3.4-vs2.3.3.4/fs/super.c +--- linux-3.4/fs/super.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/super.c 2012-05-21 18:59:38.000000000 +0200 +@@ -33,6 +33,8 @@ #include #include -+#include -+#include + #include ++#include +#include #include "internal.h" -@@ -1137,6 +1140,13 @@ mount_fs(struct file_system_type *type, +@@ -1138,6 +1140,13 @@ mount_fs(struct file_system_type *type, WARN_ON(sb->s_bdi == &default_backing_dev_info); sb->s_flags |= MS_BORN; @@ -7179,9 +7363,9 @@ diff -NurpP --minimal linux-3.3.1/fs/super.c linux-3.3.1-vs2.3.3.2/fs/super.c error = security_sb_kern_mount(sb, flags, secdata); if (error) goto out_sb; -diff -NurpP --minimal linux-3.3.1/fs/sysfs/mount.c linux-3.3.1-vs2.3.3.2/fs/sysfs/mount.c ---- linux-3.3.1/fs/sysfs/mount.c 2011-07-22 11:18:06.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/sysfs/mount.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/sysfs/mount.c linux-3.4-vs2.3.3.4/fs/sysfs/mount.c +--- linux-3.4/fs/sysfs/mount.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/sysfs/mount.c 2012-05-21 18:15:05.000000000 +0200 @@ -47,7 +47,7 @@ static int sysfs_fill_super(struct super sb->s_blocksize = PAGE_CACHE_SIZE; @@ -7191,9 +7375,9 @@ diff -NurpP --minimal linux-3.3.1/fs/sysfs/mount.c linux-3.3.1-vs2.3.3.2/fs/sysf sb->s_op = &sysfs_ops; sb->s_time_gran = 1; -diff -NurpP --minimal linux-3.3.1/fs/utimes.c linux-3.3.1-vs2.3.3.2/fs/utimes.c ---- linux-3.3.1/fs/utimes.c 2011-05-22 16:17:54.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/utimes.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/utimes.c linux-3.4-vs2.3.3.4/fs/utimes.c +--- linux-3.4/fs/utimes.c 2011-05-22 16:17:54.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/utimes.c 2012-05-21 18:15:05.000000000 +0200 @@ -8,6 +8,8 @@ #include #include @@ -7223,18 +7407,18 @@ diff -NurpP --minimal linux-3.3.1/fs/utimes.c linux-3.3.1-vs2.3.3.2/fs/utimes.c if (times && times[0].tv_nsec == UTIME_NOW && times[1].tv_nsec == UTIME_NOW) times = NULL; -diff -NurpP --minimal linux-3.3.1/fs/xattr.c linux-3.3.1-vs2.3.3.2/fs/xattr.c ---- linux-3.3.1/fs/xattr.c 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/xattr.c 2012-02-24 03:55:06.000000000 +0100 -@@ -19,6 +19,7 @@ - #include +diff -NurpP --minimal linux-3.4/fs/xattr.c linux-3.4-vs2.3.3.4/fs/xattr.c +--- linux-3.4/fs/xattr.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xattr.c 2012-05-21 18:15:05.000000000 +0200 +@@ -20,6 +20,7 @@ #include #include + #include +#include - #include + #include -@@ -50,7 +51,7 @@ xattr_permission(struct inode *inode, co +@@ -51,7 +52,7 @@ xattr_permission(struct inode *inode, co * The trusted.* namespace can only be accessed by privileged users. */ if (!strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN)) { @@ -7243,9 +7427,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xattr.c linux-3.3.1-vs2.3.3.2/fs/xattr.c return (mask & MAY_WRITE) ? -EPERM : -ENODATA; return 0; } -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_dinode.h linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_dinode.h ---- linux-3.3.1/fs/xfs/xfs_dinode.h 2011-10-24 18:45:31.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_dinode.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_dinode.h linux-3.4-vs2.3.3.4/fs/xfs/xfs_dinode.h +--- linux-3.4/fs/xfs/xfs_dinode.h 2011-10-24 18:45:31.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_dinode.h 2012-05-21 18:15:05.000000000 +0200 @@ -51,7 +51,9 @@ typedef struct xfs_dinode { __be32 di_nlink; /* number of links to file */ __be16 di_projid_lo; /* lower part of owner's project id */ @@ -7286,9 +7470,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_dinode.h linux-3.3.1-vs2.3.3.2/fs/x +#define XFS_DIVFLAG_COW 0x02 #endif /* __XFS_DINODE_H__ */ -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_fs.h linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_fs.h ---- linux-3.3.1/fs/xfs/xfs_fs.h 2011-10-24 18:45:31.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_fs.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_fs.h linux-3.4-vs2.3.3.4/fs/xfs/xfs_fs.h +--- linux-3.4/fs/xfs/xfs_fs.h 2011-10-24 18:45:31.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_fs.h 2012-05-21 18:15:05.000000000 +0200 @@ -67,6 +67,9 @@ struct fsxattr { #define XFS_XFLAG_EXTSZINHERIT 0x00001000 /* inherit inode extent size */ #define XFS_XFLAG_NODEFRAG 0x00002000 /* do not defragment */ @@ -7309,9 +7493,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_fs.h linux-3.3.1-vs2.3.3.2/fs/xfs/x __u32 bs_dmevmask; /* DMIG event mask */ __u16 bs_dmstate; /* DMIG state info */ __u16 bs_aextents; /* attribute number of extents */ -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_ialloc.c linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_ialloc.c ---- linux-3.3.1/fs/xfs/xfs_ialloc.c 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_ialloc.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_ialloc.c linux-3.4-vs2.3.3.4/fs/xfs/xfs_ialloc.c +--- linux-3.4/fs/xfs/xfs_ialloc.c 2012-03-19 19:47:27.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_ialloc.c 2012-05-21 18:15:05.000000000 +0200 @@ -37,7 +37,6 @@ #include "xfs_error.h" #include "xfs_bmap.h" @@ -7320,9 +7504,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_ialloc.c linux-3.3.1-vs2.3.3.2/fs/x /* * Allocation group level functions. */ -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_inode.c linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_inode.c ---- linux-3.3.1/fs/xfs/xfs_inode.c 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_inode.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_inode.c linux-3.4-vs2.3.3.4/fs/xfs/xfs_inode.c +--- linux-3.4/fs/xfs/xfs_inode.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_inode.c 2012-05-21 18:15:05.000000000 +0200 @@ -236,6 +236,7 @@ xfs_inotobp( return 0; } @@ -7479,7 +7663,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_inode.c linux-3.3.1-vs2.3.3.2/fs/xf flags = XFS_ILOG_CORE; switch (mode & S_IFMT) { case S_IFIFO: -@@ -1726,6 +1753,7 @@ xfs_ifree( +@@ -1725,6 +1752,7 @@ xfs_ifree( } ip->i_d.di_mode = 0; /* mark incore inode as free */ ip->i_d.di_flags = 0; @@ -7487,7 +7671,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_inode.c linux-3.3.1-vs2.3.3.2/fs/xf ip->i_d.di_dmevmask = 0; ip->i_d.di_forkoff = 0; /* mark the attr fork not in use */ ip->i_d.di_format = XFS_DINODE_FMT_EXTENTS; -@@ -2620,7 +2648,8 @@ xfs_iflush_int( +@@ -2598,7 +2626,8 @@ xfs_iflush_int( * because if the inode is dirty at all the core must * be. */ @@ -7497,9 +7681,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_inode.c linux-3.3.1-vs2.3.3.2/fs/xf /* Wrap, we never let the log put out DI_MAX_FLUSH */ if (ip->i_d.di_flushiter == DI_MAX_FLUSH) -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_inode.h linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_inode.h ---- linux-3.3.1/fs/xfs/xfs_inode.h 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_inode.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_inode.h linux-3.4-vs2.3.3.4/fs/xfs/xfs_inode.h +--- linux-3.4/fs/xfs/xfs_inode.h 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_inode.h 2012-05-21 18:15:05.000000000 +0200 @@ -134,7 +134,9 @@ typedef struct xfs_icdinode { __uint32_t di_nlink; /* number of links to file */ __uint16_t di_projid_lo; /* lower part of owner's project id */ @@ -7511,7 +7695,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_inode.h linux-3.3.1-vs2.3.3.2/fs/xf __uint16_t di_flushiter; /* incremented on flush */ xfs_ictimestamp_t di_atime; /* time last accessed */ xfs_ictimestamp_t di_mtime; /* time last modified */ -@@ -556,7 +558,7 @@ int xfs_itobp(struct xfs_mount *, struc +@@ -565,7 +567,7 @@ int xfs_itobp(struct xfs_mount *, struc int xfs_iread(struct xfs_mount *, struct xfs_trans *, struct xfs_inode *, uint); void xfs_dinode_to_disk(struct xfs_dinode *, @@ -7520,9 +7704,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_inode.h linux-3.3.1-vs2.3.3.2/fs/xf void xfs_idestroy_fork(struct xfs_inode *, int); void xfs_idata_realloc(struct xfs_inode *, int, int); void xfs_iroot_realloc(struct xfs_inode *, int, int); -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_ioctl.c linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_ioctl.c ---- linux-3.3.1/fs/xfs/xfs_ioctl.c 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_ioctl.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_ioctl.c linux-3.4-vs2.3.3.4/fs/xfs/xfs_ioctl.c +--- linux-3.4/fs/xfs/xfs_ioctl.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_ioctl.c 2012-05-21 18:15:05.000000000 +0200 @@ -28,7 +28,7 @@ #include "xfs_bmap_btree.h" #include "xfs_dinode.h" @@ -7532,7 +7716,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_ioctl.c linux-3.3.1-vs2.3.3.2/fs/xf #include "xfs_rtalloc.h" #include "xfs_itable.h" #include "xfs_error.h" -@@ -748,6 +748,10 @@ xfs_merge_ioc_xflags( +@@ -750,6 +750,10 @@ xfs_merge_ioc_xflags( xflags |= XFS_XFLAG_IMMUTABLE; else xflags &= ~XFS_XFLAG_IMMUTABLE; @@ -7543,7 +7727,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_ioctl.c linux-3.3.1-vs2.3.3.2/fs/xf if (flags & FS_APPEND_FL) xflags |= XFS_XFLAG_APPEND; else -@@ -776,6 +780,8 @@ xfs_di2lxflags( +@@ -778,6 +782,8 @@ xfs_di2lxflags( if (di_flags & XFS_DIFLAG_IMMUTABLE) flags |= FS_IMMUTABLE_FL; @@ -7552,7 +7736,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_ioctl.c linux-3.3.1-vs2.3.3.2/fs/xf if (di_flags & XFS_DIFLAG_APPEND) flags |= FS_APPEND_FL; if (di_flags & XFS_DIFLAG_SYNC) -@@ -836,6 +842,8 @@ xfs_set_diflags( +@@ -838,6 +844,8 @@ xfs_set_diflags( di_flags = (ip->i_d.di_flags & XFS_DIFLAG_PREALLOC); if (xflags & XFS_XFLAG_IMMUTABLE) di_flags |= XFS_DIFLAG_IMMUTABLE; @@ -7561,7 +7745,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_ioctl.c linux-3.3.1-vs2.3.3.2/fs/xf if (xflags & XFS_XFLAG_APPEND) di_flags |= XFS_DIFLAG_APPEND; if (xflags & XFS_XFLAG_SYNC) -@@ -878,6 +886,10 @@ xfs_diflags_to_linux( +@@ -880,6 +888,10 @@ xfs_diflags_to_linux( inode->i_flags |= S_IMMUTABLE; else inode->i_flags &= ~S_IMMUTABLE; @@ -7572,7 +7756,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_ioctl.c linux-3.3.1-vs2.3.3.2/fs/xf if (xflags & XFS_XFLAG_APPEND) inode->i_flags |= S_APPEND; else -@@ -1370,10 +1382,18 @@ xfs_file_ioctl( +@@ -1372,10 +1384,18 @@ xfs_file_ioctl( case XFS_IOC_FSGETXATTRA: return xfs_ioc_fsgetxattr(ip, 1, arg); case XFS_IOC_FSSETXATTR: @@ -7591,9 +7775,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_ioctl.c linux-3.3.1-vs2.3.3.2/fs/xf return xfs_ioc_setxflags(ip, filp, arg); case XFS_IOC_FSSETDM: { -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_ioctl.h linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_ioctl.h ---- linux-3.3.1/fs/xfs/xfs_ioctl.h 2011-10-24 18:45:31.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_ioctl.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_ioctl.h linux-3.4-vs2.3.3.4/fs/xfs/xfs_ioctl.h +--- linux-3.4/fs/xfs/xfs_ioctl.h 2011-10-24 18:45:31.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_ioctl.h 2012-05-21 18:15:05.000000000 +0200 @@ -70,6 +70,12 @@ xfs_handle_to_dentry( void __user *uhandle, u32 hlen); @@ -7607,9 +7791,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_ioctl.h linux-3.3.1-vs2.3.3.2/fs/xf extern long xfs_file_ioctl( struct file *filp, -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_iops.c linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_iops.c ---- linux-3.3.1/fs/xfs/xfs_iops.c 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_iops.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_iops.c linux-3.4-vs2.3.3.4/fs/xfs/xfs_iops.c +--- linux-3.4/fs/xfs/xfs_iops.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_iops.c 2012-05-21 18:15:05.000000000 +0200 @@ -30,6 +30,7 @@ #include "xfs_bmap_btree.h" #include "xfs_dinode.h" @@ -7624,9 +7808,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_iops.c linux-3.3.1-vs2.3.3.2/fs/xfs #include +#include - /* - * Bring the timestamps in the XFS inode uptodate. -@@ -474,6 +476,7 @@ xfs_vn_getattr( + static int + xfs_initxattrs( +@@ -424,6 +426,7 @@ xfs_vn_getattr( stat->nlink = ip->i_d.di_nlink; stat->uid = ip->i_d.di_uid; stat->gid = ip->i_d.di_gid; @@ -7634,7 +7818,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_iops.c linux-3.3.1-vs2.3.3.2/fs/xfs stat->ino = ip->i_ino; stat->atime = inode->i_atime; stat->mtime = inode->i_mtime; -@@ -1051,6 +1054,7 @@ static const struct inode_operations xfs +@@ -996,6 +999,7 @@ static const struct inode_operations xfs .removexattr = generic_removexattr, .listxattr = xfs_vn_listxattr, .fiemap = xfs_vn_fiemap, @@ -7642,7 +7826,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_iops.c linux-3.3.1-vs2.3.3.2/fs/xfs }; static const struct inode_operations xfs_dir_inode_operations = { -@@ -1076,6 +1080,7 @@ static const struct inode_operations xfs +@@ -1021,6 +1025,7 @@ static const struct inode_operations xfs .getxattr = generic_getxattr, .removexattr = generic_removexattr, .listxattr = xfs_vn_listxattr, @@ -7650,7 +7834,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_iops.c linux-3.3.1-vs2.3.3.2/fs/xfs }; static const struct inode_operations xfs_dir_ci_inode_operations = { -@@ -1125,6 +1130,10 @@ xfs_diflags_to_iflags( +@@ -1070,6 +1075,10 @@ xfs_diflags_to_iflags( inode->i_flags |= S_IMMUTABLE; else inode->i_flags &= ~S_IMMUTABLE; @@ -7661,7 +7845,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_iops.c linux-3.3.1-vs2.3.3.2/fs/xfs if (ip->i_d.di_flags & XFS_DIFLAG_APPEND) inode->i_flags |= S_APPEND; else -@@ -1137,6 +1146,15 @@ xfs_diflags_to_iflags( +@@ -1082,6 +1091,15 @@ xfs_diflags_to_iflags( inode->i_flags |= S_NOATIME; else inode->i_flags &= ~S_NOATIME; @@ -7677,7 +7861,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_iops.c linux-3.3.1-vs2.3.3.2/fs/xfs } /* -@@ -1168,6 +1186,7 @@ xfs_setup_inode( +@@ -1113,6 +1131,7 @@ xfs_setup_inode( set_nlink(inode, ip->i_d.di_nlink); inode->i_uid = ip->i_d.di_uid; inode->i_gid = ip->i_d.di_gid; @@ -7685,20 +7869,20 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_iops.c linux-3.3.1-vs2.3.3.2/fs/xfs switch (inode->i_mode & S_IFMT) { case S_IFBLK: -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_itable.c linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_itable.c ---- linux-3.3.1/fs/xfs/xfs_itable.c 2011-05-22 16:17:54.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_itable.c 2012-02-24 03:55:06.000000000 +0100 -@@ -98,6 +98,7 @@ xfs_bulkstat_one_int( +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_itable.c linux-3.4-vs2.3.3.4/fs/xfs/xfs_itable.c +--- linux-3.4/fs/xfs/xfs_itable.c 2012-05-21 18:07:27.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_itable.c 2012-05-21 18:15:05.000000000 +0200 +@@ -97,6 +97,7 @@ xfs_bulkstat_one_int( buf->bs_mode = dic->di_mode; buf->bs_uid = dic->di_uid; buf->bs_gid = dic->di_gid; + buf->bs_tag = dic->di_tag; buf->bs_size = dic->di_size; - - /* -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_linux.h linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_linux.h ---- linux-3.3.1/fs/xfs/xfs_linux.h 2011-10-24 18:45:31.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_linux.h 2012-02-24 03:55:06.000000000 +0100 + buf->bs_atime.tv_sec = dic->di_atime.t_sec; + buf->bs_atime.tv_nsec = dic->di_atime.t_nsec; +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_linux.h linux-3.4-vs2.3.3.4/fs/xfs/xfs_linux.h +--- linux-3.4/fs/xfs/xfs_linux.h 2011-10-24 18:45:31.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_linux.h 2012-05-21 18:15:05.000000000 +0200 @@ -121,6 +121,7 @@ #define current_cpu() (raw_smp_processor_id()) @@ -7707,9 +7891,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_linux.h linux-3.3.1-vs2.3.3.2/fs/xf #define current_test_flags(f) (current->flags & (f)) #define current_set_flags_nested(sp, f) \ (*(sp) = current->flags, current->flags |= (f)) -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_log_recover.c linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_log_recover.c ---- linux-3.3.1/fs/xfs/xfs_log_recover.c 2012-04-03 03:01:26.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_log_recover.c 2012-04-03 03:02:12.000000000 +0200 +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_log_recover.c linux-3.4-vs2.3.3.4/fs/xfs/xfs_log_recover.c +--- linux-3.4/fs/xfs/xfs_log_recover.c 2012-05-21 18:07:28.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_log_recover.c 2012-05-21 18:15:05.000000000 +0200 @@ -2344,7 +2344,8 @@ xlog_recover_inode_pass2( } @@ -7720,10 +7904,10 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_log_recover.c linux-3.3.1-vs2.3.3.2 /* the rest is in on-disk format */ if (item->ri_buf[1].i_len > sizeof(struct xfs_icdinode)) { -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_mount.h linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_mount.h ---- linux-3.3.1/fs/xfs/xfs_mount.h 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_mount.h 2012-02-24 03:55:06.000000000 +0100 -@@ -248,6 +248,7 @@ typedef struct xfs_mount { +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_mount.h linux-3.4-vs2.3.3.4/fs/xfs/xfs_mount.h +--- linux-3.4/fs/xfs/xfs_mount.h 2012-05-21 18:07:28.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_mount.h 2012-05-21 18:15:05.000000000 +0200 +@@ -251,6 +251,7 @@ typedef struct xfs_mount { allocator */ #define XFS_MOUNT_NOATTR2 (1ULL << 25) /* disable use of attr2 format */ @@ -7731,9 +7915,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_mount.h linux-3.3.1-vs2.3.3.2/fs/xf /* * Default minimum read and write sizes. -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_super.c linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_super.c ---- linux-3.3.1/fs/xfs/xfs_super.c 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_super.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_super.c linux-3.4-vs2.3.3.4/fs/xfs/xfs_super.c +--- linux-3.4/fs/xfs/xfs_super.c 2012-05-21 18:07:28.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_super.c 2012-05-21 18:15:05.000000000 +0200 @@ -113,6 +113,9 @@ mempool_t *xfs_ioend_pool; #define MNTOPT_NODELAYLOG "nodelaylog" /* Delayed logging disabled */ #define MNTOPT_DISCARD "discard" /* Discard unused blocks */ @@ -7759,7 +7943,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_super.c linux-3.3.1-vs2.3.3.2/fs/xf {Opt_barrier, "barrier"}, {Opt_nobarrier, "nobarrier"}, {Opt_err, NULL} -@@ -373,6 +380,19 @@ xfs_parseargs( +@@ -372,6 +379,19 @@ xfs_parseargs( } else if (!strcmp(this_char, "irixsgid")) { xfs_warn(mp, "irixsgid is now a sysctl(2) variable, option is deprecated."); @@ -7779,7 +7963,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_super.c linux-3.3.1-vs2.3.3.2/fs/xf } else { xfs_warn(mp, "unknown mount option [%s].", this_char); return EINVAL; -@@ -1114,6 +1134,16 @@ xfs_fs_remount( +@@ -1127,6 +1147,16 @@ xfs_fs_remount( case Opt_nobarrier: mp->m_flags &= ~XFS_MOUNT_BARRIER; break; @@ -7796,7 +7980,7 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_super.c linux-3.3.1-vs2.3.3.2/fs/xf default: /* * Logically we would return an error here to prevent -@@ -1329,6 +1359,9 @@ xfs_fs_fill_super( +@@ -1346,6 +1376,9 @@ xfs_fs_fill_super( if (error) goto out_free_sb; @@ -7806,9 +7990,9 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_super.c linux-3.3.1-vs2.3.3.2/fs/xf /* * we must configure the block size in the superblock before we run the * full mount process as the mount process can lookup and cache inodes. -diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_vnodeops.c linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_vnodeops.c ---- linux-3.3.1/fs/xfs/xfs_vnodeops.c 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/fs/xfs/xfs_vnodeops.c 2012-04-01 18:12:15.000000000 +0200 +diff -NurpP --minimal linux-3.4/fs/xfs/xfs_vnodeops.c linux-3.4-vs2.3.3.4/fs/xfs/xfs_vnodeops.c +--- linux-3.4/fs/xfs/xfs_vnodeops.c 2012-05-21 18:07:28.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/fs/xfs/xfs_vnodeops.c 2012-05-21 18:15:05.000000000 +0200 @@ -106,6 +106,77 @@ xfs_readlink_bmap( return error; } @@ -7887,10 +8071,10 @@ diff -NurpP --minimal linux-3.3.1/fs/xfs/xfs_vnodeops.c linux-3.3.1-vs2.3.3.2/fs int xfs_readlink( xfs_inode_t *ip, -diff -NurpP --minimal linux-3.3.1/include/linux/Kbuild linux-3.3.1-vs2.3.3.2/include/linux/Kbuild ---- linux-3.3.1/include/linux/Kbuild 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/Kbuild 2012-02-24 03:55:06.000000000 +0100 -@@ -17,6 +17,7 @@ header-y += netfilter_bridge/ +diff -NurpP --minimal linux-3.4/include/linux/Kbuild linux-3.4-vs2.3.3.4/include/linux/Kbuild +--- linux-3.4/include/linux/Kbuild 2012-05-21 18:07:28.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/Kbuild 2012-05-21 18:15:05.000000000 +0200 +@@ -18,6 +18,7 @@ header-y += netfilter_bridge/ header-y += netfilter_ipv4/ header-y += netfilter_ipv6/ header-y += usb/ @@ -7898,9 +8082,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/Kbuild linux-3.3.1-vs2.3.3.2/inc header-y += wimax/ objhdr-y += version.h -diff -NurpP --minimal linux-3.3.1/include/linux/capability.h linux-3.3.1-vs2.3.3.2/include/linux/capability.h ---- linux-3.3.1/include/linux/capability.h 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/capability.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/capability.h linux-3.4-vs2.3.3.4/include/linux/capability.h +--- linux-3.4/include/linux/capability.h 2012-03-19 19:47:27.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/capability.h 2012-05-21 18:15:05.000000000 +0200 @@ -280,6 +280,7 @@ struct cpu_vfs_cap_data { arbitrary SCSI commands */ /* Allow setting encryption key on loopback filesystem */ @@ -7923,9 +8107,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/capability.h linux-3.3.1-vs2.3.3 /* * Bit location of each capability (used by user-space library and kernel) -diff -NurpP --minimal linux-3.3.1/include/linux/cred.h linux-3.3.1-vs2.3.3.2/include/linux/cred.h ---- linux-3.3.1/include/linux/cred.h 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/cred.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/cred.h linux-3.4-vs2.3.3.4/include/linux/cred.h +--- linux-3.4/include/linux/cred.h 2012-03-19 19:47:27.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/cred.h 2012-05-21 18:15:05.000000000 +0200 @@ -156,6 +156,7 @@ extern void exit_creds(struct task_struc extern int copy_creds(struct task_struct *, unsigned long); extern const struct cred *get_task_cred(struct task_struct *); @@ -7966,115 +8150,19 @@ diff -NurpP --minimal linux-3.3.1/include/linux/cred.h linux-3.3.1-vs2.3.3.2/inc /** * get_new_cred - Get a reference on a new set of credentials * @cred: The new credentials to reference -diff -NurpP --minimal linux-3.3.1/include/linux/devpts_fs.h linux-3.3.1-vs2.3.3.2/include/linux/devpts_fs.h ---- linux-3.3.1/include/linux/devpts_fs.h 2008-12-25 00:26:37.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/devpts_fs.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/devpts_fs.h linux-3.4-vs2.3.3.4/include/linux/devpts_fs.h +--- linux-3.4/include/linux/devpts_fs.h 2008-12-25 00:26:37.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/devpts_fs.h 2012-05-21 18:15:05.000000000 +0200 @@ -45,5 +45,4 @@ static inline void devpts_pty_kill(struc #endif - #endif /* _LINUX_DEVPTS_FS_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/ext2_fs.h linux-3.3.1-vs2.3.3.2/include/linux/ext2_fs.h ---- linux-3.3.1/include/linux/ext2_fs.h 2012-01-09 16:14:56.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/ext2_fs.h 2012-02-24 03:55:06.000000000 +0100 -@@ -190,8 +190,12 @@ struct ext2_group_desc - #define EXT2_NOTAIL_FL FS_NOTAIL_FL /* file tail should not be merged */ - #define EXT2_DIRSYNC_FL FS_DIRSYNC_FL /* dirsync behaviour (directories only) */ - #define EXT2_TOPDIR_FL FS_TOPDIR_FL /* Top of directory hierarchies*/ -+#define EXT2_IXUNLINK_FL FS_IXUNLINK_FL /* Immutable invert on unlink */ - #define EXT2_RESERVED_FL FS_RESERVED_FL /* reserved for ext2 lib */ - -+#define EXT2_BARRIER_FL FS_BARRIER_FL /* Barrier for chroot() */ -+#define EXT2_COW_FL FS_COW_FL /* Copy on Write marker */ -+ - #define EXT2_FL_USER_VISIBLE FS_FL_USER_VISIBLE /* User visible flags */ - #define EXT2_FL_USER_MODIFIABLE FS_FL_USER_MODIFIABLE /* User modifiable flags */ - -@@ -275,7 +279,8 @@ struct ext2_inode { - __u16 i_pad1; - __le16 l_i_uid_high; /* these 2 fields */ - __le16 l_i_gid_high; /* were reserved2[0] */ -- __u32 l_i_reserved2; -+ __le16 l_i_tag; /* Context Tag */ -+ __u16 l_i_reserved2; - } linux2; - struct { - __u8 h_i_frag; /* Fragment number */ -@@ -304,6 +309,7 @@ struct ext2_inode { - #define i_gid_low i_gid - #define i_uid_high osd2.linux2.l_i_uid_high - #define i_gid_high osd2.linux2.l_i_gid_high -+#define i_raw_tag osd2.linux2.l_i_tag - #define i_reserved2 osd2.linux2.l_i_reserved2 - #endif - -@@ -348,6 +354,7 @@ struct ext2_inode { - #define EXT2_MOUNT_USRQUOTA 0x020000 /* user quota */ - #define EXT2_MOUNT_GRPQUOTA 0x040000 /* group quota */ - #define EXT2_MOUNT_RESERVATION 0x080000 /* Preallocation */ -+#define EXT2_MOUNT_TAGGED (1<<24) /* Enable Context Tags */ - - - #define clear_opt(o, opt) o &= ~EXT2_MOUNT_##opt -diff -NurpP --minimal linux-3.3.1/include/linux/ext3_fs.h linux-3.3.1-vs2.3.3.2/include/linux/ext3_fs.h ---- linux-3.3.1/include/linux/ext3_fs.h 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/ext3_fs.h 2012-02-24 03:55:06.000000000 +0100 -@@ -173,10 +173,14 @@ struct ext3_group_desc - #define EXT3_NOTAIL_FL 0x00008000 /* file tail should not be merged */ - #define EXT3_DIRSYNC_FL 0x00010000 /* dirsync behaviour (directories only) */ - #define EXT3_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/ -+#define EXT3_IXUNLINK_FL 0x08000000 /* Immutable invert on unlink */ - #define EXT3_RESERVED_FL 0x80000000 /* reserved for ext3 lib */ - --#define EXT3_FL_USER_VISIBLE 0x0003DFFF /* User visible flags */ --#define EXT3_FL_USER_MODIFIABLE 0x000380FF /* User modifiable flags */ -+#define EXT3_BARRIER_FL 0x04000000 /* Barrier for chroot() */ -+#define EXT3_COW_FL 0x20000000 /* Copy on Write marker */ -+ -+#define EXT3_FL_USER_VISIBLE 0x0103DFFF /* User visible flags */ -+#define EXT3_FL_USER_MODIFIABLE 0x010380FF /* User modifiable flags */ - - /* Flags that should be inherited by new inodes from their parent. */ - #define EXT3_FL_INHERITED (EXT3_SECRM_FL | EXT3_UNRM_FL | EXT3_COMPR_FL |\ -@@ -312,7 +316,8 @@ struct ext3_inode { - __u16 i_pad1; - __le16 l_i_uid_high; /* these 2 fields */ - __le16 l_i_gid_high; /* were reserved2[0] */ -- __u32 l_i_reserved2; -+ __le16 l_i_tag; /* Context Tag */ -+ __u16 l_i_reserved2; - } linux2; - struct { - __u8 h_i_frag; /* Fragment number */ -@@ -343,6 +348,7 @@ struct ext3_inode { - #define i_gid_low i_gid - #define i_uid_high osd2.linux2.l_i_uid_high - #define i_gid_high osd2.linux2.l_i_gid_high -+#define i_raw_tag osd2.linux2.l_i_tag - #define i_reserved2 osd2.linux2.l_i_reserved2 - - #elif defined(__GNU__) -@@ -405,6 +411,7 @@ struct ext3_inode { - #define EXT3_MOUNT_GRPQUOTA 0x200000 /* "old" group quota */ - #define EXT3_MOUNT_DATA_ERR_ABORT 0x400000 /* Abort on file data write - * error in ordered mode */ -+#define EXT3_MOUNT_TAGGED (1<<24) /* Enable Context Tags */ - - /* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */ - #ifndef _LINUX_EXT2_FS_H -@@ -918,6 +925,7 @@ extern void ext3_get_inode_flags(struct - extern void ext3_set_aops(struct inode *inode); - extern int ext3_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, - u64 start, u64 len); -+extern int ext3_sync_flags(struct inode *, int, int); - - /* ioctl.c */ - extern long ext3_ioctl(struct file *, unsigned int, unsigned long); -diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/include/linux/fs.h ---- linux-3.3.1/include/linux/fs.h 2012-03-19 19:47:27.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/fs.h 2012-03-19 20:52:10.000000000 +0100 -@@ -210,6 +210,9 @@ struct inodes_stat_t { +diff -NurpP --minimal linux-3.4/include/linux/fs.h linux-3.4-vs2.3.3.4/include/linux/fs.h +--- linux-3.4/include/linux/fs.h 2012-05-21 18:07:29.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/fs.h 2012-05-21 18:15:05.000000000 +0200 +@@ -214,6 +214,9 @@ struct inodes_stat_t { #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ #define MS_I_VERSION (1<<23) /* Update inode I_version field */ #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ @@ -8084,7 +8172,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu #define MS_NOSEC (1<<28) #define MS_BORN (1<<29) #define MS_ACTIVE (1<<30) -@@ -241,6 +244,14 @@ struct inodes_stat_t { +@@ -245,6 +248,14 @@ struct inodes_stat_t { #define S_IMA 1024 /* Inode has an associated IMA struct */ #define S_AUTOMOUNT 2048 /* Automount/referral quasi-directory */ #define S_NOSEC 4096 /* no suid or xattr security attributes */ @@ -8099,7 +8187,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu /* * Note that nosuid etc flags are inode-specific: setting some file-system -@@ -263,12 +274,15 @@ struct inodes_stat_t { +@@ -267,12 +278,15 @@ struct inodes_stat_t { #define IS_DIRSYNC(inode) (__IS_FLG(inode, MS_SYNCHRONOUS|MS_DIRSYNC) || \ ((inode)->i_flags & (S_SYNC|S_DIRSYNC))) #define IS_MANDLOCK(inode) __IS_FLG(inode, MS_MANDLOCK) @@ -8117,7 +8205,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu #define IS_POSIXACL(inode) __IS_FLG(inode, MS_POSIXACL) #define IS_DEADDIR(inode) ((inode)->i_flags & S_DEAD) -@@ -279,6 +293,16 @@ struct inodes_stat_t { +@@ -283,6 +297,16 @@ struct inodes_stat_t { #define IS_AUTOMOUNT(inode) ((inode)->i_flags & S_AUTOMOUNT) #define IS_NOSEC(inode) ((inode)->i_flags & S_NOSEC) @@ -8134,7 +8222,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu /* the read-only stuff doesn't really belong here, but any other place is probably as bad and I don't want to create yet another include file. */ -@@ -365,11 +389,14 @@ struct inodes_stat_t { +@@ -369,11 +393,14 @@ struct inodes_stat_t { #define FS_EXTENT_FL 0x00080000 /* Extents */ #define FS_DIRECTIO_FL 0x00100000 /* Use direct i/o */ #define FS_NOCOW_FL 0x00800000 /* Do not cow file */ @@ -8151,7 +8239,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu #define SYNC_FILE_RANGE_WAIT_BEFORE 1 #define SYNC_FILE_RANGE_WRITE 2 -@@ -451,6 +478,7 @@ typedef void (dio_iodone_t)(struct kiocb +@@ -456,6 +483,7 @@ typedef void (dio_iodone_t)(struct kiocb #define ATTR_KILL_PRIV (1 << 14) #define ATTR_OPEN (1 << 15) /* Truncating from open(O_TRUNC) */ #define ATTR_TIMES_SET (1 << 16) @@ -8159,7 +8247,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu /* * This is the Inode Attributes structure, used for notify_change(). It -@@ -466,6 +494,7 @@ struct iattr { +@@ -471,6 +499,7 @@ struct iattr { umode_t ia_mode; uid_t ia_uid; gid_t ia_gid; @@ -8167,7 +8255,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu loff_t ia_size; struct timespec ia_atime; struct timespec ia_mtime; -@@ -479,6 +508,9 @@ struct iattr { +@@ -484,6 +513,9 @@ struct iattr { struct file *ia_file; }; @@ -8177,7 +8265,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu /* * Includes for diskquotas. */ -@@ -758,7 +790,9 @@ struct inode { +@@ -763,7 +795,9 @@ struct inode { unsigned short i_opflags; uid_t i_uid; gid_t i_gid; @@ -8188,7 +8276,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu #ifdef CONFIG_FS_POSIX_ACL struct posix_acl *i_acl; -@@ -787,6 +821,7 @@ struct inode { +@@ -792,6 +826,7 @@ struct inode { unsigned int __i_nlink; }; dev_t i_rdev; @@ -8196,7 +8284,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu struct timespec i_atime; struct timespec i_mtime; struct timespec i_ctime; -@@ -924,12 +959,12 @@ static inline void i_size_write(struct i +@@ -929,12 +964,12 @@ static inline void i_size_write(struct i static inline unsigned iminor(const struct inode *inode) { @@ -8211,7 +8299,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu } extern struct block_device *I_BDEV(struct inode *inode); -@@ -996,6 +1031,7 @@ struct file { +@@ -1001,6 +1036,7 @@ struct file { loff_t f_pos; struct fown_struct f_owner; const struct cred *f_cred; @@ -8219,7 +8307,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu struct file_ra_state f_ra; u64 f_version; -@@ -1143,6 +1179,7 @@ struct file_lock { +@@ -1148,6 +1184,7 @@ struct file_lock { struct file *fl_file; loff_t fl_start; loff_t fl_end; @@ -8227,7 +8315,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu struct fasync_struct * fl_fasync; /* for lease break notifications */ /* for lease breaks: */ -@@ -1650,6 +1687,7 @@ struct inode_operations { +@@ -1661,6 +1698,7 @@ struct inode_operations { ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t); ssize_t (*listxattr) (struct dentry *, char *, size_t); int (*removexattr) (struct dentry *, const char *); @@ -8235,7 +8323,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu void (*truncate_range)(struct inode *, loff_t, loff_t); int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, u64 len); -@@ -1669,6 +1707,7 @@ extern ssize_t vfs_readv(struct file *, +@@ -1680,6 +1718,7 @@ extern ssize_t vfs_readv(struct file *, unsigned long, loff_t *); extern ssize_t vfs_writev(struct file *, const struct iovec __user *, unsigned long, loff_t *); @@ -8243,7 +8331,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu struct super_operations { struct inode *(*alloc_inode)(struct super_block *sb); -@@ -2507,6 +2546,7 @@ extern int dcache_dir_open(struct inode +@@ -2509,6 +2548,7 @@ extern int dcache_dir_open(struct inode extern int dcache_dir_close(struct inode *, struct file *); extern loff_t dcache_dir_lseek(struct file *, loff_t, int); extern int dcache_readdir(struct file *, void *, filldir_t); @@ -8251,10 +8339,10 @@ diff -NurpP --minimal linux-3.3.1/include/linux/fs.h linux-3.3.1-vs2.3.3.2/inclu extern int simple_setattr(struct dentry *, struct iattr *); extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *); extern int simple_statfs(struct dentry *, struct kstatfs *); -diff -NurpP --minimal linux-3.3.1/include/linux/gfs2_ondisk.h linux-3.3.1-vs2.3.3.2/include/linux/gfs2_ondisk.h ---- linux-3.3.1/include/linux/gfs2_ondisk.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/gfs2_ondisk.h 2012-02-24 03:55:06.000000000 +0100 -@@ -213,6 +213,9 @@ enum { +diff -NurpP --minimal linux-3.4/include/linux/gfs2_ondisk.h linux-3.4-vs2.3.3.4/include/linux/gfs2_ondisk.h +--- linux-3.4/include/linux/gfs2_ondisk.h 2012-05-21 18:07:29.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/gfs2_ondisk.h 2012-05-21 18:15:05.000000000 +0200 +@@ -214,6 +214,9 @@ enum { gfs2fl_NoAtime = 7, gfs2fl_Sync = 8, gfs2fl_System = 9, @@ -8264,7 +8352,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/gfs2_ondisk.h linux-3.3.1-vs2.3. gfs2fl_TruncInProg = 29, gfs2fl_InheritDirectio = 30, gfs2fl_InheritJdata = 31, -@@ -229,6 +232,9 @@ enum { +@@ -230,6 +233,9 @@ enum { #define GFS2_DIF_NOATIME 0x00000080 #define GFS2_DIF_SYNC 0x00000100 #define GFS2_DIF_SYSTEM 0x00000200 /* New in gfs2 */ @@ -8274,9 +8362,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/gfs2_ondisk.h linux-3.3.1-vs2.3. #define GFS2_DIF_TRUNC_IN_PROG 0x20000000 /* New in gfs2 */ #define GFS2_DIF_INHERIT_DIRECTIO 0x40000000 #define GFS2_DIF_INHERIT_JDATA 0x80000000 -diff -NurpP --minimal linux-3.3.1/include/linux/if_tun.h linux-3.3.1-vs2.3.3.2/include/linux/if_tun.h ---- linux-3.3.1/include/linux/if_tun.h 2010-08-02 16:52:54.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/include/linux/if_tun.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/if_tun.h linux-3.4-vs2.3.3.4/include/linux/if_tun.h +--- linux-3.4/include/linux/if_tun.h 2010-08-02 16:52:54.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/if_tun.h 2012-05-21 18:15:05.000000000 +0200 @@ -53,6 +53,7 @@ #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog) #define TUNGETVNETHDRSZ _IOR('T', 215, int) @@ -8285,13 +8373,13 @@ diff -NurpP --minimal linux-3.3.1/include/linux/if_tun.h linux-3.3.1-vs2.3.3.2/i /* TUNSETIFF ifr flags */ #define IFF_TUN 0x0001 -diff -NurpP --minimal linux-3.3.1/include/linux/init_task.h linux-3.3.1-vs2.3.3.2/include/linux/init_task.h ---- linux-3.3.1/include/linux/init_task.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/init_task.h 2012-02-24 03:55:06.000000000 +0100 -@@ -192,6 +192,10 @@ extern struct cred init_cred; - INIT_FTRACE_GRAPH \ +diff -NurpP --minimal linux-3.4/include/linux/init_task.h linux-3.4-vs2.3.3.4/include/linux/init_task.h +--- linux-3.4/include/linux/init_task.h 2012-05-21 18:07:29.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/init_task.h 2012-05-21 18:15:05.000000000 +0200 +@@ -200,6 +200,10 @@ extern struct cred init_cred; INIT_TRACE_RECURSION \ INIT_TASK_RCU_PREEMPT(tsk) \ + INIT_CPUSET_SEQ \ + .xid = 0, \ + .vx_info = NULL, \ + .nid = 0, \ @@ -8299,9 +8387,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/init_task.h linux-3.3.1-vs2.3.3. } -diff -NurpP --minimal linux-3.3.1/include/linux/ipc.h linux-3.3.1-vs2.3.3.2/include/linux/ipc.h ---- linux-3.3.1/include/linux/ipc.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/ipc.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/ipc.h linux-3.4-vs2.3.3.4/include/linux/ipc.h +--- linux-3.4/include/linux/ipc.h 2012-03-19 19:47:28.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/ipc.h 2012-05-21 18:15:05.000000000 +0200 @@ -91,6 +91,7 @@ struct kern_ipc_perm key_t key; uid_t uid; @@ -8310,9 +8398,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/ipc.h linux-3.3.1-vs2.3.3.2/incl uid_t cuid; gid_t cgid; umode_t mode; -diff -NurpP --minimal linux-3.3.1/include/linux/ipc_namespace.h linux-3.3.1-vs2.3.3.2/include/linux/ipc_namespace.h ---- linux-3.3.1/include/linux/ipc_namespace.h 2011-10-24 18:45:32.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/include/linux/ipc_namespace.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/ipc_namespace.h linux-3.4-vs2.3.3.4/include/linux/ipc_namespace.h +--- linux-3.4/include/linux/ipc_namespace.h 2011-10-24 18:45:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/ipc_namespace.h 2012-05-21 18:15:05.000000000 +0200 @@ -101,7 +101,8 @@ static inline int mq_init_ns(struct ipc_ #if defined(CONFIG_IPC_NS) @@ -8339,9 +8427,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/ipc_namespace.h linux-3.3.1-vs2. } static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns) -diff -NurpP --minimal linux-3.3.1/include/linux/loop.h linux-3.3.1-vs2.3.3.2/include/linux/loop.h ---- linux-3.3.1/include/linux/loop.h 2012-01-09 16:14:58.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/loop.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/loop.h linux-3.4-vs2.3.3.4/include/linux/loop.h +--- linux-3.4/include/linux/loop.h 2012-01-09 16:14:58.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/loop.h 2012-05-21 18:15:05.000000000 +0200 @@ -45,6 +45,7 @@ struct loop_device { struct loop_func_table *lo_encryption; __u32 lo_init[2]; @@ -8350,9 +8438,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/loop.h linux-3.3.1-vs2.3.3.2/inc int (*ioctl)(struct loop_device *, int cmd, unsigned long arg); -diff -NurpP --minimal linux-3.3.1/include/linux/magic.h linux-3.3.1-vs2.3.3.2/include/linux/magic.h ---- linux-3.3.1/include/linux/magic.h 2012-01-09 16:14:58.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/magic.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/magic.h linux-3.4-vs2.3.3.4/include/linux/magic.h +--- linux-3.4/include/linux/magic.h 2012-05-21 18:07:31.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/magic.h 2012-05-21 18:15:05.000000000 +0200 @@ -3,7 +3,7 @@ #define ADFS_SUPER_MAGIC 0xadf5 @@ -8362,17 +8450,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/magic.h linux-3.3.1-vs2.3.3.2/in #define AUTOFS_SUPER_MAGIC 0x0187 #define CODA_SUPER_MAGIC 0x73757245 #define CRAMFS_MAGIC 0x28cd3d45 /* some random number */ -@@ -41,6 +41,7 @@ - #define NFS_SUPER_MAGIC 0x6969 - #define OPENPROM_SUPER_MAGIC 0x9fa1 - #define PROC_SUPER_MAGIC 0x9fa0 -+#define DEVPTS_SUPER_MAGIC 0x1cd1 - #define QNX4_SUPER_MAGIC 0x002f /* qnx4 fs detection */ - - #define REISERFS_SUPER_MAGIC 0x52654973 /* used by gcc */ -diff -NurpP --minimal linux-3.3.1/include/linux/major.h linux-3.3.1-vs2.3.3.2/include/linux/major.h ---- linux-3.3.1/include/linux/major.h 2009-09-10 15:26:25.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/include/linux/major.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/major.h linux-3.4-vs2.3.3.4/include/linux/major.h +--- linux-3.4/include/linux/major.h 2009-09-10 15:26:25.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/major.h 2012-05-21 18:15:05.000000000 +0200 @@ -15,6 +15,7 @@ #define HD_MAJOR IDE0_MAJOR #define PTY_SLAVE_MAJOR 3 @@ -8381,10 +8461,10 @@ diff -NurpP --minimal linux-3.3.1/include/linux/major.h linux-3.3.1-vs2.3.3.2/in #define TTYAUX_MAJOR 5 #define LP_MAJOR 6 #define VCS_MAJOR 7 -diff -NurpP --minimal linux-3.3.1/include/linux/memcontrol.h linux-3.3.1-vs2.3.3.2/include/linux/memcontrol.h ---- linux-3.3.1/include/linux/memcontrol.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/memcontrol.h 2012-03-19 20:52:10.000000000 +0100 -@@ -87,6 +87,13 @@ extern struct mem_cgroup *try_get_mem_cg +diff -NurpP --minimal linux-3.4/include/linux/memcontrol.h linux-3.4-vs2.3.3.4/include/linux/memcontrol.h +--- linux-3.4/include/linux/memcontrol.h 2012-05-21 18:07:31.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/memcontrol.h 2012-05-21 18:15:05.000000000 +0200 +@@ -88,6 +88,13 @@ extern struct mem_cgroup *try_get_mem_cg extern struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memcg); extern struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont); @@ -8398,9 +8478,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/memcontrol.h linux-3.3.1-vs2.3.3 static inline int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup) { -diff -NurpP --minimal linux-3.3.1/include/linux/mm_types.h linux-3.3.1-vs2.3.3.2/include/linux/mm_types.h ---- linux-3.3.1/include/linux/mm_types.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/mm_types.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/mm_types.h linux-3.4-vs2.3.3.4/include/linux/mm_types.h +--- linux-3.4/include/linux/mm_types.h 2012-03-19 19:47:28.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/mm_types.h 2012-05-21 18:15:05.000000000 +0200 @@ -343,6 +343,7 @@ struct mm_struct { /* Architecture-specific MM context */ @@ -8409,10 +8489,10 @@ diff -NurpP --minimal linux-3.3.1/include/linux/mm_types.h linux-3.3.1-vs2.3.3.2 /* Swap token stuff */ /* -diff -NurpP --minimal linux-3.3.1/include/linux/mmzone.h linux-3.3.1-vs2.3.3.2/include/linux/mmzone.h ---- linux-3.3.1/include/linux/mmzone.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/mmzone.h 2012-02-24 03:55:06.000000000 +0100 -@@ -683,6 +683,13 @@ typedef struct pglist_data { +diff -NurpP --minimal linux-3.4/include/linux/mmzone.h linux-3.4-vs2.3.3.4/include/linux/mmzone.h +--- linux-3.4/include/linux/mmzone.h 2012-05-21 18:07:31.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/mmzone.h 2012-05-21 18:15:05.000000000 +0200 +@@ -684,6 +684,13 @@ typedef struct pglist_data { __pgdat->node_start_pfn + __pgdat->node_spanned_pages;\ }) @@ -8426,9 +8506,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/mmzone.h linux-3.3.1-vs2.3.3.2/i #include extern struct mutex zonelists_mutex; -diff -NurpP --minimal linux-3.3.1/include/linux/mount.h linux-3.3.1-vs2.3.3.2/include/linux/mount.h ---- linux-3.3.1/include/linux/mount.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/mount.h 2012-02-24 17:29:28.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/mount.h linux-3.4-vs2.3.3.4/include/linux/mount.h +--- linux-3.4/include/linux/mount.h 2012-03-19 19:47:28.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/mount.h 2012-05-21 18:15:05.000000000 +0200 @@ -47,6 +47,9 @@ struct mnt_namespace; #define MNT_INTERNAL 0x4000 @@ -8439,9 +8519,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/mount.h linux-3.3.1-vs2.3.3.2/in struct vfsmount { struct dentry *mnt_root; /* root of the mounted tree */ struct super_block *mnt_sb; /* pointer to superblock */ -diff -NurpP --minimal linux-3.3.1/include/linux/net.h linux-3.3.1-vs2.3.3.2/include/linux/net.h ---- linux-3.3.1/include/linux/net.h 2011-07-22 11:18:11.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/include/linux/net.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/net.h linux-3.4-vs2.3.3.4/include/linux/net.h +--- linux-3.4/include/linux/net.h 2012-05-21 18:07:31.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/net.h 2012-05-21 18:15:05.000000000 +0200 @@ -72,6 +72,7 @@ struct net; #define SOCK_NOSPACE 2 #define SOCK_PASSCRED 3 @@ -8450,10 +8530,10 @@ diff -NurpP --minimal linux-3.3.1/include/linux/net.h linux-3.3.1-vs2.3.3.2/incl #ifndef ARCH_HAS_SOCKET_TYPES /** -diff -NurpP --minimal linux-3.3.1/include/linux/netdevice.h linux-3.3.1-vs2.3.3.2/include/linux/netdevice.h ---- linux-3.3.1/include/linux/netdevice.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/netdevice.h 2012-02-24 03:55:06.000000000 +0100 -@@ -1627,6 +1627,7 @@ extern void netdev_resync_ops(struct ne +diff -NurpP --minimal linux-3.4/include/linux/netdevice.h linux-3.4-vs2.3.3.4/include/linux/netdevice.h +--- linux-3.4/include/linux/netdevice.h 2012-05-21 18:07:31.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/netdevice.h 2012-05-21 18:15:05.000000000 +0200 +@@ -1620,6 +1620,7 @@ extern void netdev_resync_ops(struct ne extern struct net_device *dev_get_by_index(struct net *net, int ifindex); extern struct net_device *__dev_get_by_index(struct net *net, int ifindex); @@ -8461,9 +8541,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/netdevice.h linux-3.3.1-vs2.3.3. extern struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex); extern int dev_restart(struct net_device *dev); #ifdef CONFIG_NETPOLL_TRAP -diff -NurpP --minimal linux-3.3.1/include/linux/nfs_mount.h linux-3.3.1-vs2.3.3.2/include/linux/nfs_mount.h ---- linux-3.3.1/include/linux/nfs_mount.h 2011-01-05 21:50:31.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/nfs_mount.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/nfs_mount.h linux-3.4-vs2.3.3.4/include/linux/nfs_mount.h +--- linux-3.4/include/linux/nfs_mount.h 2011-01-05 21:50:31.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/nfs_mount.h 2012-05-21 18:15:05.000000000 +0200 @@ -63,7 +63,8 @@ struct nfs_mount_data { #define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */ #define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */ @@ -8474,9 +8554,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/nfs_mount.h linux-3.3.1-vs2.3.3. /* The following are for internal use only */ #define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000 -diff -NurpP --minimal linux-3.3.1/include/linux/nsproxy.h linux-3.3.1-vs2.3.3.2/include/linux/nsproxy.h ---- linux-3.3.1/include/linux/nsproxy.h 2011-10-24 18:45:32.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/include/linux/nsproxy.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/nsproxy.h linux-3.4-vs2.3.3.4/include/linux/nsproxy.h +--- linux-3.4/include/linux/nsproxy.h 2011-10-24 18:45:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/nsproxy.h 2012-05-21 18:15:05.000000000 +0200 @@ -3,6 +3,7 @@ #include @@ -8526,9 +8606,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/nsproxy.h linux-3.3.1-vs2.3.3.2/ } #endif -diff -NurpP --minimal linux-3.3.1/include/linux/pid.h linux-3.3.1-vs2.3.3.2/include/linux/pid.h ---- linux-3.3.1/include/linux/pid.h 2011-07-22 11:18:11.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/include/linux/pid.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/pid.h linux-3.4-vs2.3.3.4/include/linux/pid.h +--- linux-3.4/include/linux/pid.h 2011-07-22 11:18:11.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/pid.h 2012-05-21 18:15:05.000000000 +0200 @@ -8,7 +8,8 @@ enum pid_type PIDTYPE_PID, PIDTYPE_PGID, @@ -8547,9 +8627,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/pid.h linux-3.3.1-vs2.3.3.2/incl pid_t pid_vnr(struct pid *pid); #define do_each_pid_task(pid, type, task) \ -diff -NurpP --minimal linux-3.3.1/include/linux/proc_fs.h linux-3.3.1-vs2.3.3.2/include/linux/proc_fs.h ---- linux-3.3.1/include/linux/proc_fs.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/proc_fs.h 2012-02-24 04:17:21.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/proc_fs.h linux-3.4-vs2.3.3.4/include/linux/proc_fs.h +--- linux-3.4/include/linux/proc_fs.h 2012-03-19 19:47:28.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/proc_fs.h 2012-05-21 18:15:05.000000000 +0200 @@ -54,6 +54,7 @@ struct proc_dir_entry { nlink_t nlink; uid_t uid; @@ -8585,9 +8665,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/proc_fs.h linux-3.3.1-vs2.3.3.2/ int fd; union proc_op op; struct proc_dir_entry *pde; -diff -NurpP --minimal linux-3.3.1/include/linux/quotaops.h linux-3.3.1-vs2.3.3.2/include/linux/quotaops.h ---- linux-3.3.1/include/linux/quotaops.h 2012-01-09 16:14:58.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/quotaops.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/quotaops.h linux-3.4-vs2.3.3.4/include/linux/quotaops.h +--- linux-3.4/include/linux/quotaops.h 2012-01-09 16:14:58.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/quotaops.h 2012-05-21 18:15:05.000000000 +0200 @@ -8,6 +8,7 @@ #define _LINUX_QUOTAOPS_ @@ -8629,9 +8709,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/quotaops.h linux-3.3.1-vs2.3.3.2 } static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number) -diff -NurpP --minimal linux-3.3.1/include/linux/reboot.h linux-3.3.1-vs2.3.3.2/include/linux/reboot.h ---- linux-3.3.1/include/linux/reboot.h 2011-10-24 18:45:32.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/include/linux/reboot.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/reboot.h linux-3.4-vs2.3.3.4/include/linux/reboot.h +--- linux-3.4/include/linux/reboot.h 2011-10-24 18:45:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/reboot.h 2012-05-21 18:15:05.000000000 +0200 @@ -33,6 +33,7 @@ #define LINUX_REBOOT_CMD_RESTART2 0xA1B2C3D4 #define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2 @@ -8640,54 +8720,10 @@ diff -NurpP --minimal linux-3.3.1/include/linux/reboot.h linux-3.3.1-vs2.3.3.2/i #ifdef __KERNEL__ -diff -NurpP --minimal linux-3.3.1/include/linux/reiserfs_fs.h linux-3.3.1-vs2.3.3.2/include/linux/reiserfs_fs.h ---- linux-3.3.1/include/linux/reiserfs_fs.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/reiserfs_fs.h 2012-02-24 03:55:06.000000000 +0100 -@@ -976,6 +976,11 @@ struct stat_data_v1 { - #define REISERFS_COMPR_FL FS_COMPR_FL - #define REISERFS_NOTAIL_FL FS_NOTAIL_FL - -+/* unfortunately reiserfs sdattr is only 16 bit */ -+#define REISERFS_IXUNLINK_FL (FS_IXUNLINK_FL >> 16) -+#define REISERFS_BARRIER_FL (FS_BARRIER_FL >> 16) -+#define REISERFS_COW_FL (FS_COW_FL >> 16) -+ - /* persistent flags that file inherits from the parent directory */ - #define REISERFS_INHERIT_MASK ( REISERFS_IMMUTABLE_FL | \ - REISERFS_SYNC_FL | \ -@@ -985,6 +990,9 @@ struct stat_data_v1 { - REISERFS_COMPR_FL | \ - REISERFS_NOTAIL_FL ) - -+#define REISERFS_FL_USER_VISIBLE 0x80FF -+#define REISERFS_FL_USER_MODIFIABLE 0x80FF -+ - /* Stat Data on disk (reiserfs version of UFS disk inode minus the - address blocks) */ - struct stat_data { -@@ -2074,6 +2082,7 @@ static inline void reiserfs_update_sd(st - void sd_attrs_to_i_attrs(__u16 sd_attrs, struct inode *inode); - void i_attrs_to_sd_attrs(struct inode *inode, __u16 * sd_attrs); - int reiserfs_setattr(struct dentry *dentry, struct iattr *attr); -+int reiserfs_sync_flags(struct inode *inode, int, int); - - int __reiserfs_write_begin(struct page *page, unsigned from, unsigned len); - -diff -NurpP --minimal linux-3.3.1/include/linux/reiserfs_fs_sb.h linux-3.3.1-vs2.3.3.2/include/linux/reiserfs_fs_sb.h ---- linux-3.3.1/include/linux/reiserfs_fs_sb.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/reiserfs_fs_sb.h 2012-02-24 03:55:06.000000000 +0100 -@@ -477,6 +477,7 @@ enum reiserfs_mount_options { - REISERFS_EXPOSE_PRIVROOT, - REISERFS_BARRIER_NONE, - REISERFS_BARRIER_FLUSH, -+ REISERFS_TAGGED, - - /* Actions on error */ - REISERFS_ERROR_PANIC, -diff -NurpP --minimal linux-3.3.1/include/linux/sched.h linux-3.3.1-vs2.3.3.2/include/linux/sched.h ---- linux-3.3.1/include/linux/sched.h 2012-03-19 19:47:28.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/sched.h 2012-03-19 20:52:10.000000000 +0100 -@@ -1420,6 +1420,14 @@ struct task_struct { +diff -NurpP --minimal linux-3.4/include/linux/sched.h linux-3.4-vs2.3.3.4/include/linux/sched.h +--- linux-3.4/include/linux/sched.h 2012-05-21 18:07:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/sched.h 2012-05-21 18:15:05.000000000 +0200 +@@ -1452,6 +1452,14 @@ struct task_struct { #endif seccomp_t seccomp; @@ -8702,7 +8738,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/sched.h linux-3.3.1-vs2.3.3.2/in /* Thread group tracking */ u32 parent_exec_id; u32 self_exec_id; -@@ -1669,6 +1677,11 @@ struct pid_namespace; +@@ -1696,6 +1704,11 @@ struct pid_namespace; pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type, struct pid_namespace *ns); @@ -8714,7 +8750,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/sched.h linux-3.3.1-vs2.3.3.2/in static inline pid_t task_pid_nr(struct task_struct *tsk) { return tsk->pid; -@@ -1682,7 +1695,8 @@ static inline pid_t task_pid_nr_ns(struc +@@ -1709,7 +1722,8 @@ static inline pid_t task_pid_nr_ns(struc static inline pid_t task_pid_vnr(struct task_struct *tsk) { @@ -8724,7 +8760,7 @@ diff -NurpP --minimal linux-3.3.1/include/linux/sched.h linux-3.3.1-vs2.3.3.2/in } -@@ -1695,7 +1709,7 @@ pid_t task_tgid_nr_ns(struct task_struct +@@ -1722,7 +1736,7 @@ pid_t task_tgid_nr_ns(struct task_struct static inline pid_t task_tgid_vnr(struct task_struct *tsk) { @@ -8733,9 +8769,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/sched.h linux-3.3.1-vs2.3.3.2/in } -diff -NurpP --minimal linux-3.3.1/include/linux/shmem_fs.h linux-3.3.1-vs2.3.3.2/include/linux/shmem_fs.h ---- linux-3.3.1/include/linux/shmem_fs.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/shmem_fs.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/shmem_fs.h linux-3.4-vs2.3.3.4/include/linux/shmem_fs.h +--- linux-3.4/include/linux/shmem_fs.h 2012-03-19 19:47:29.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/shmem_fs.h 2012-05-21 18:15:05.000000000 +0200 @@ -8,6 +8,9 @@ /* inode in-kernel data */ @@ -8746,9 +8782,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/shmem_fs.h linux-3.3.1-vs2.3.3.2 struct shmem_inode_info { spinlock_t lock; unsigned long flags; -diff -NurpP --minimal linux-3.3.1/include/linux/stat.h linux-3.3.1-vs2.3.3.2/include/linux/stat.h ---- linux-3.3.1/include/linux/stat.h 2008-12-25 00:26:37.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/stat.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/stat.h linux-3.4-vs2.3.3.4/include/linux/stat.h +--- linux-3.4/include/linux/stat.h 2008-12-25 00:26:37.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/stat.h 2012-05-21 18:15:05.000000000 +0200 @@ -66,6 +66,7 @@ struct kstat { unsigned int nlink; uid_t uid; @@ -8757,9 +8793,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/stat.h linux-3.3.1-vs2.3.3.2/inc dev_t rdev; loff_t size; struct timespec atime; -diff -NurpP --minimal linux-3.3.1/include/linux/sunrpc/auth.h linux-3.3.1-vs2.3.3.2/include/linux/sunrpc/auth.h ---- linux-3.3.1/include/linux/sunrpc/auth.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/sunrpc/auth.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/sunrpc/auth.h linux-3.4-vs2.3.3.4/include/linux/sunrpc/auth.h +--- linux-3.4/include/linux/sunrpc/auth.h 2012-05-21 18:07:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/sunrpc/auth.h 2012-05-21 18:15:05.000000000 +0200 @@ -25,6 +25,7 @@ struct auth_cred { uid_t uid; @@ -8768,10 +8804,10 @@ diff -NurpP --minimal linux-3.3.1/include/linux/sunrpc/auth.h linux-3.3.1-vs2.3. struct group_info *group_info; const char *principal; unsigned char machine_cred : 1; -diff -NurpP --minimal linux-3.3.1/include/linux/sunrpc/clnt.h linux-3.3.1-vs2.3.3.2/include/linux/sunrpc/clnt.h ---- linux-3.3.1/include/linux/sunrpc/clnt.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/sunrpc/clnt.h 2012-02-24 03:55:06.000000000 +0100 -@@ -50,7 +50,8 @@ struct rpc_clnt { +diff -NurpP --minimal linux-3.4/include/linux/sunrpc/clnt.h linux-3.4-vs2.3.3.4/include/linux/sunrpc/clnt.h +--- linux-3.4/include/linux/sunrpc/clnt.h 2012-05-21 18:07:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/sunrpc/clnt.h 2012-05-21 18:15:05.000000000 +0200 +@@ -49,7 +49,8 @@ struct rpc_clnt { unsigned int cl_softrtry : 1,/* soft timeouts */ cl_discrtry : 1,/* disconnect before retry */ cl_autobind : 1,/* use getport() */ @@ -8781,9 +8817,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/sunrpc/clnt.h linux-3.3.1-vs2.3. struct rpc_rtt * cl_rtt; /* RTO estimator data */ const struct rpc_timeout *cl_timeout; /* Timeout strategy */ -diff -NurpP --minimal linux-3.3.1/include/linux/sysctl.h linux-3.3.1-vs2.3.3.2/include/linux/sysctl.h ---- linux-3.3.1/include/linux/sysctl.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/sysctl.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/sysctl.h linux-3.4-vs2.3.3.4/include/linux/sysctl.h +--- linux-3.4/include/linux/sysctl.h 2012-05-21 18:07:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/sysctl.h 2012-05-21 18:15:05.000000000 +0200 @@ -60,6 +60,7 @@ enum CTL_ABI=9, /* Binary emulation */ CTL_CPU=10, /* CPU stuff (speed scaling, etc) */ @@ -8800,9 +8836,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/sysctl.h linux-3.3.1-vs2.3.3.2/i KERN_SPARC_REBOOT=21, /* reboot command on Sparc */ KERN_CTLALTDEL=22, /* int: allow ctl-alt-del to reboot */ -diff -NurpP --minimal linux-3.3.1/include/linux/sysfs.h linux-3.3.1-vs2.3.3.2/include/linux/sysfs.h ---- linux-3.3.1/include/linux/sysfs.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/sysfs.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/sysfs.h linux-3.4-vs2.3.3.4/include/linux/sysfs.h +--- linux-3.4/include/linux/sysfs.h 2012-03-19 19:47:29.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/sysfs.h 2012-05-21 18:15:05.000000000 +0200 @@ -19,6 +19,8 @@ #include #include @@ -8812,22 +8848,21 @@ diff -NurpP --minimal linux-3.3.1/include/linux/sysfs.h linux-3.3.1-vs2.3.3.2/in struct kobject; struct module; enum kobj_ns_type; -diff -NurpP --minimal linux-3.3.1/include/linux/time.h linux-3.3.1-vs2.3.3.2/include/linux/time.h ---- linux-3.3.1/include/linux/time.h 2011-07-22 11:18:11.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/include/linux/time.h 2012-02-24 03:55:06.000000000 +0100 -@@ -256,6 +256,9 @@ static __always_inline void timespec_add - a->tv_sec += __iter_div_u64_rem(a->tv_nsec + ns, NSEC_PER_SEC, &ns); +diff -NurpP --minimal linux-3.4/include/linux/time.h linux-3.4-vs2.3.3.4/include/linux/time.h +--- linux-3.4/include/linux/time.h 2012-05-21 18:07:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/time.h 2012-05-21 18:15:05.000000000 +0200 +@@ -256,6 +256,8 @@ static __always_inline void timespec_add a->tv_nsec = ns; } -+ + +#include + #endif /* __KERNEL__ */ #define NFDBITS __NFDBITS -diff -NurpP --minimal linux-3.3.1/include/linux/types.h linux-3.3.1-vs2.3.3.2/include/linux/types.h ---- linux-3.3.1/include/linux/types.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/types.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/types.h linux-3.4-vs2.3.3.4/include/linux/types.h +--- linux-3.4/include/linux/types.h 2012-05-21 18:07:32.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/linux/types.h 2012-05-21 18:15:05.000000000 +0200 @@ -41,6 +41,9 @@ typedef __kernel_uid32_t uid_t; typedef __kernel_gid32_t gid_t; typedef __kernel_uid16_t uid16_t; @@ -8838,9 +8873,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/types.h linux-3.3.1-vs2.3.3.2/in typedef unsigned long uintptr_t; -diff -NurpP --minimal linux-3.3.1/include/linux/utsname.h linux-3.3.1-vs2.3.3.2/include/linux/utsname.h ---- linux-3.3.1/include/linux/utsname.h 2012-01-09 16:14:59.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/utsname.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/utsname.h linux-3.4-vs2.3.3.4/include/linux/utsname.h +--- linux-3.4/include/linux/utsname.h 2012-01-09 16:14:59.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/utsname.h 2012-05-21 18:15:05.000000000 +0200 @@ -62,7 +62,8 @@ static inline void get_uts_ns(struct uts } @@ -8867,9 +8902,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/utsname.h linux-3.3.1-vs2.3.3.2/ } #endif -diff -NurpP --minimal linux-3.3.1/include/linux/vroot.h linux-3.3.1-vs2.3.3.2/include/linux/vroot.h ---- linux-3.3.1/include/linux/vroot.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vroot.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vroot.h linux-3.4-vs2.3.3.4/include/linux/vroot.h +--- linux-3.4/include/linux/vroot.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vroot.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,51 @@ + +/* @@ -8922,9 +8957,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vroot.h linux-3.3.1-vs2.3.3.2/in +#define VROOT_CLR_DEV 0x5601 + +#endif /* _LINUX_VROOT_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vs_base.h linux-3.3.1-vs2.3.3.2/include/linux/vs_base.h ---- linux-3.3.1/include/linux/vs_base.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_base.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_base.h linux-3.4-vs2.3.3.4/include/linux/vs_base.h +--- linux-3.4/include/linux/vs_base.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_base.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,10 @@ +#ifndef _VS_BASE_H +#define _VS_BASE_H @@ -8936,9 +8971,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_base.h linux-3.3.1-vs2.3.3.2/ +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_context.h linux-3.3.1-vs2.3.3.2/include/linux/vs_context.h ---- linux-3.3.1/include/linux/vs_context.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_context.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_context.h linux-3.4-vs2.3.3.4/include/linux/vs_context.h +--- linux-3.4/include/linux/vs_context.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_context.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,242 @@ +#ifndef _VS_CONTEXT_H +#define _VS_CONTEXT_H @@ -9182,9 +9217,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_context.h linux-3.3.1-vs2.3.3 +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_cowbl.h linux-3.3.1-vs2.3.3.2/include/linux/vs_cowbl.h ---- linux-3.3.1/include/linux/vs_cowbl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_cowbl.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_cowbl.h linux-3.4-vs2.3.3.4/include/linux/vs_cowbl.h +--- linux-3.4/include/linux/vs_cowbl.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_cowbl.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,48 @@ +#ifndef _VS_COWBL_H +#define _VS_COWBL_H @@ -9234,9 +9269,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_cowbl.h linux-3.3.1-vs2.3.3.2 +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_cvirt.h linux-3.3.1-vs2.3.3.2/include/linux/vs_cvirt.h ---- linux-3.3.1/include/linux/vs_cvirt.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_cvirt.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_cvirt.h linux-3.4-vs2.3.3.4/include/linux/vs_cvirt.h +--- linux-3.4/include/linux/vs_cvirt.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_cvirt.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,50 @@ +#ifndef _VS_CVIRT_H +#define _VS_CVIRT_H @@ -9288,9 +9323,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_cvirt.h linux-3.3.1-vs2.3.3.2 +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_device.h linux-3.3.1-vs2.3.3.2/include/linux/vs_device.h ---- linux-3.3.1/include/linux/vs_device.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_device.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_device.h linux-3.4-vs2.3.3.4/include/linux/vs_device.h +--- linux-3.4/include/linux/vs_device.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_device.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,45 @@ +#ifndef _VS_DEVICE_H +#define _VS_DEVICE_H @@ -9337,9 +9372,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_device.h linux-3.3.1-vs2.3.3. +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_dlimit.h linux-3.3.1-vs2.3.3.2/include/linux/vs_dlimit.h ---- linux-3.3.1/include/linux/vs_dlimit.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_dlimit.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_dlimit.h linux-3.4-vs2.3.3.4/include/linux/vs_dlimit.h +--- linux-3.4/include/linux/vs_dlimit.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_dlimit.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,215 @@ +#ifndef _VS_DLIMIT_H +#define _VS_DLIMIT_H @@ -9556,9 +9591,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_dlimit.h linux-3.3.1-vs2.3.3. +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_inet.h linux-3.3.1-vs2.3.3.2/include/linux/vs_inet.h ---- linux-3.3.1/include/linux/vs_inet.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_inet.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_inet.h linux-3.4-vs2.3.3.4/include/linux/vs_inet.h +--- linux-3.4/include/linux/vs_inet.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_inet.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,353 @@ +#ifndef _VS_INET_H +#define _VS_INET_H @@ -9913,9 +9948,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_inet.h linux-3.3.1-vs2.3.3.2/ +#else +// #warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_inet6.h linux-3.3.1-vs2.3.3.2/include/linux/vs_inet6.h ---- linux-3.3.1/include/linux/vs_inet6.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_inet6.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_inet6.h linux-3.4-vs2.3.3.4/include/linux/vs_inet6.h +--- linux-3.4/include/linux/vs_inet6.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_inet6.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,246 @@ +#ifndef _VS_INET6_H +#define _VS_INET6_H @@ -10163,9 +10198,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_inet6.h linux-3.3.1-vs2.3.3.2 +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_limit.h linux-3.3.1-vs2.3.3.2/include/linux/vs_limit.h ---- linux-3.3.1/include/linux/vs_limit.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_limit.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_limit.h linux-3.4-vs2.3.3.4/include/linux/vs_limit.h +--- linux-3.4/include/linux/vs_limit.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_limit.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,140 @@ +#ifndef _VS_LIMIT_H +#define _VS_LIMIT_H @@ -10307,9 +10342,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_limit.h linux-3.3.1-vs2.3.3.2 +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_network.h linux-3.3.1-vs2.3.3.2/include/linux/vs_network.h ---- linux-3.3.1/include/linux/vs_network.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_network.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_network.h linux-3.4-vs2.3.3.4/include/linux/vs_network.h +--- linux-3.4/include/linux/vs_network.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_network.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,169 @@ +#ifndef _NX_VS_NETWORK_H +#define _NX_VS_NETWORK_H @@ -10480,9 +10515,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_network.h linux-3.3.1-vs2.3.3 +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_pid.h linux-3.3.1-vs2.3.3.2/include/linux/vs_pid.h ---- linux-3.3.1/include/linux/vs_pid.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_pid.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_pid.h linux-3.4-vs2.3.3.4/include/linux/vs_pid.h +--- linux-3.4/include/linux/vs_pid.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_pid.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,50 @@ +#ifndef _VS_PID_H +#define _VS_PID_H @@ -10534,9 +10569,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_pid.h linux-3.3.1-vs2.3.3.2/i +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_sched.h linux-3.3.1-vs2.3.3.2/include/linux/vs_sched.h ---- linux-3.3.1/include/linux/vs_sched.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_sched.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_sched.h linux-3.4-vs2.3.3.4/include/linux/vs_sched.h +--- linux-3.4/include/linux/vs_sched.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_sched.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,40 @@ +#ifndef _VS_SCHED_H +#define _VS_SCHED_H @@ -10578,9 +10613,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_sched.h linux-3.3.1-vs2.3.3.2 +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_socket.h linux-3.3.1-vs2.3.3.2/include/linux/vs_socket.h ---- linux-3.3.1/include/linux/vs_socket.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_socket.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_socket.h linux-3.4-vs2.3.3.4/include/linux/vs_socket.h +--- linux-3.4/include/linux/vs_socket.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_socket.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,67 @@ +#ifndef _VS_SOCKET_H +#define _VS_SOCKET_H @@ -10649,9 +10684,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_socket.h linux-3.3.1-vs2.3.3. +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_tag.h linux-3.3.1-vs2.3.3.2/include/linux/vs_tag.h ---- linux-3.3.1/include/linux/vs_tag.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_tag.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_tag.h linux-3.4-vs2.3.3.4/include/linux/vs_tag.h +--- linux-3.4/include/linux/vs_tag.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_tag.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,47 @@ +#ifndef _VS_TAG_H +#define _VS_TAG_H @@ -10700,9 +10735,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_tag.h linux-3.3.1-vs2.3.3.2/i +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vs_time.h linux-3.3.1-vs2.3.3.2/include/linux/vs_time.h ---- linux-3.3.1/include/linux/vs_time.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vs_time.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vs_time.h linux-3.4-vs2.3.3.4/include/linux/vs_time.h +--- linux-3.4/include/linux/vs_time.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vs_time.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,19 @@ +#ifndef _VS_TIME_H +#define _VS_TIME_H @@ -10723,9 +10758,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vs_time.h linux-3.3.1-vs2.3.3.2/ +#else +#warning duplicate inclusion +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/Kbuild linux-3.3.1-vs2.3.3.2/include/linux/vserver/Kbuild ---- linux-3.3.1/include/linux/vserver/Kbuild 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/Kbuild 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/Kbuild linux-3.4-vs2.3.3.4/include/linux/vserver/Kbuild +--- linux-3.4/include/linux/vserver/Kbuild 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/Kbuild 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,8 @@ + +header-y += context_cmd.h network_cmd.h space_cmd.h \ @@ -10735,9 +10770,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/Kbuild linux-3.3.1-vs2.3 + +header-y += switch.h network.h monitor.h inode.h device.h + -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/base.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/base.h ---- linux-3.3.1/include/linux/vserver/base.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/base.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/base.h linux-3.4-vs2.3.3.4/include/linux/vserver/base.h +--- linux-3.4/include/linux/vserver/base.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/base.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,178 @@ +#ifndef _VX_BASE_H +#define _VX_BASE_H @@ -10917,9 +10952,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/base.h linux-3.3.1-vs2.3 +#define nx_info_state(n, m) (__nx_state(n) & (m)) + +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cacct.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/cacct.h ---- linux-3.3.1/include/linux/vserver/cacct.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/cacct.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/cacct.h linux-3.4-vs2.3.3.4/include/linux/vserver/cacct.h +--- linux-3.4/include/linux/vserver/cacct.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/cacct.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,15 @@ +#ifndef _VX_CACCT_H +#define _VX_CACCT_H @@ -10936,9 +10971,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cacct.h linux-3.3.1-vs2. +}; + +#endif /* _VX_CACCT_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cacct_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/cacct_cmd.h ---- linux-3.3.1/include/linux/vserver/cacct_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/cacct_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/cacct_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/cacct_cmd.h +--- linux-3.4/include/linux/vserver/cacct_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/cacct_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,23 @@ +#ifndef _VX_CACCT_CMD_H +#define _VX_CACCT_CMD_H @@ -10963,9 +10998,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cacct_cmd.h linux-3.3.1- + +#endif /* __KERNEL__ */ +#endif /* _VX_CACCT_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cacct_def.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/cacct_def.h ---- linux-3.3.1/include/linux/vserver/cacct_def.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/cacct_def.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/cacct_def.h linux-3.4-vs2.3.3.4/include/linux/vserver/cacct_def.h +--- linux-3.4/include/linux/vserver/cacct_def.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/cacct_def.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,43 @@ +#ifndef _VX_CACCT_DEF_H +#define _VX_CACCT_DEF_H @@ -11010,9 +11045,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cacct_def.h linux-3.3.1- +#endif + +#endif /* _VX_CACCT_DEF_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cacct_int.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/cacct_int.h ---- linux-3.3.1/include/linux/vserver/cacct_int.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/cacct_int.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/cacct_int.h linux-3.4-vs2.3.3.4/include/linux/vserver/cacct_int.h +--- linux-3.4/include/linux/vserver/cacct_int.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/cacct_int.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,21 @@ +#ifndef _VX_CACCT_INT_H +#define _VX_CACCT_INT_H @@ -11035,9 +11070,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cacct_int.h linux-3.3.1- + +#endif /* __KERNEL__ */ +#endif /* _VX_CACCT_INT_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/check.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/check.h ---- linux-3.3.1/include/linux/vserver/check.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/check.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/check.h linux-3.4-vs2.3.3.4/include/linux/vserver/check.h +--- linux-3.4/include/linux/vserver/check.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/check.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,89 @@ +#ifndef _VS_CHECK_H +#define _VS_CHECK_H @@ -11128,9 +11163,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/check.h linux-3.3.1-vs2. +#define nx_weak_check(c, m) ((m) ? nx_check(c, m) : 1) + +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/context.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/context.h ---- linux-3.3.1/include/linux/vserver/context.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/context.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/context.h linux-3.4-vs2.3.3.4/include/linux/vserver/context.h +--- linux-3.4/include/linux/vserver/context.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/context.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,188 @@ +#ifndef _VX_CONTEXT_H +#define _VX_CONTEXT_H @@ -11320,9 +11355,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/context.h linux-3.3.1-vs + +#endif /* __KERNEL__ */ +#endif /* _VX_CONTEXT_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/context_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/context_cmd.h ---- linux-3.3.1/include/linux/vserver/context_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/context_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/context_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/context_cmd.h +--- linux-3.4/include/linux/vserver/context_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/context_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,162 @@ +#ifndef _VX_CONTEXT_CMD_H +#define _VX_CONTEXT_CMD_H @@ -11486,10 +11521,10 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/context_cmd.h linux-3.3. + +#endif /* __KERNEL__ */ +#endif /* _VX_CONTEXT_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cvirt.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/cvirt.h ---- linux-3.3.1/include/linux/vserver/cvirt.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/cvirt.h 2012-02-24 03:55:06.000000000 +0100 -@@ -0,0 +1,20 @@ +diff -NurpP --minimal linux-3.4/include/linux/vserver/cvirt.h linux-3.4-vs2.3.3.4/include/linux/vserver/cvirt.h +--- linux-3.4/include/linux/vserver/cvirt.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/cvirt.h 2012-05-21 18:15:05.000000000 +0200 +@@ -0,0 +1,22 @@ +#ifndef _VX_CVIRT_H +#define _VX_CVIRT_H + @@ -11498,6 +11533,8 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cvirt.h linux-3.3.1-vs2. + +struct timespec; + ++void vx_vsi_boottime(struct timespec *); ++ +void vx_vsi_uptime(struct timespec *, struct timespec *); + + @@ -11510,9 +11547,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cvirt.h linux-3.3.1-vs2. + +#endif /* __KERNEL__ */ +#endif /* _VX_CVIRT_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cvirt_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/cvirt_cmd.h ---- linux-3.3.1/include/linux/vserver/cvirt_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/cvirt_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/cvirt_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/cvirt_cmd.h +--- linux-3.4/include/linux/vserver/cvirt_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/cvirt_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,53 @@ +#ifndef _VX_CVIRT_CMD_H +#define _VX_CVIRT_CMD_H @@ -11567,9 +11604,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cvirt_cmd.h linux-3.3.1- + +#endif /* __KERNEL__ */ +#endif /* _VX_CVIRT_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cvirt_def.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/cvirt_def.h ---- linux-3.3.1/include/linux/vserver/cvirt_def.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/cvirt_def.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/cvirt_def.h linux-3.4-vs2.3.3.4/include/linux/vserver/cvirt_def.h +--- linux-3.4/include/linux/vserver/cvirt_def.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/cvirt_def.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,80 @@ +#ifndef _VX_CVIRT_DEF_H +#define _VX_CVIRT_DEF_H @@ -11651,9 +11688,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/cvirt_def.h linux-3.3.1- +#endif + +#endif /* _VX_CVIRT_DEF_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/debug.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/debug.h ---- linux-3.3.1/include/linux/vserver/debug.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/debug.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/debug.h linux-3.4-vs2.3.3.4/include/linux/vserver/debug.h +--- linux-3.4/include/linux/vserver/debug.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/debug.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,145 @@ +#ifndef _VX_DEBUG_H +#define _VX_DEBUG_H @@ -11800,9 +11837,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/debug.h linux-3.3.1-vs2. + + +#endif /* _VX_DEBUG_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/debug_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/debug_cmd.h ---- linux-3.3.1/include/linux/vserver/debug_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/debug_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/debug_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/debug_cmd.h +--- linux-3.4/include/linux/vserver/debug_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/debug_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,58 @@ +#ifndef _VX_DEBUG_CMD_H +#define _VX_DEBUG_CMD_H @@ -11862,9 +11899,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/debug_cmd.h linux-3.3.1- + +#endif /* __KERNEL__ */ +#endif /* _VX_DEBUG_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/device.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/device.h ---- linux-3.3.1/include/linux/vserver/device.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/device.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/device.h linux-3.4-vs2.3.3.4/include/linux/vserver/device.h +--- linux-3.4/include/linux/vserver/device.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/device.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,15 @@ +#ifndef _VX_DEVICE_H +#define _VX_DEVICE_H @@ -11881,9 +11918,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/device.h linux-3.3.1-vs2 +#else /* _VX_DEVICE_H */ +#warning duplicate inclusion +#endif /* _VX_DEVICE_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/device_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/device_cmd.h ---- linux-3.3.1/include/linux/vserver/device_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/device_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/device_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/device_cmd.h +--- linux-3.4/include/linux/vserver/device_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/device_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,44 @@ +#ifndef _VX_DEVICE_CMD_H +#define _VX_DEVICE_CMD_H @@ -11929,9 +11966,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/device_cmd.h linux-3.3.1 + +#endif /* __KERNEL__ */ +#endif /* _VX_DEVICE_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/device_def.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/device_def.h ---- linux-3.3.1/include/linux/vserver/device_def.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/device_def.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/device_def.h linux-3.4-vs2.3.3.4/include/linux/vserver/device_def.h +--- linux-3.4/include/linux/vserver/device_def.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/device_def.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,17 @@ +#ifndef _VX_DEVICE_DEF_H +#define _VX_DEVICE_DEF_H @@ -11950,9 +11987,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/device_def.h linux-3.3.1 +}; + +#endif /* _VX_DEVICE_DEF_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/dlimit.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/dlimit.h ---- linux-3.3.1/include/linux/vserver/dlimit.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/dlimit.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/dlimit.h linux-3.4-vs2.3.3.4/include/linux/vserver/dlimit.h +--- linux-3.4/include/linux/vserver/dlimit.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/dlimit.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,54 @@ +#ifndef _VX_DLIMIT_H +#define _VX_DLIMIT_H @@ -12008,9 +12045,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/dlimit.h linux-3.3.1-vs2 +#else /* _VX_DLIMIT_H */ +#warning duplicate inclusion +#endif /* _VX_DLIMIT_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/dlimit_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/dlimit_cmd.h ---- linux-3.3.1/include/linux/vserver/dlimit_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/dlimit_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/dlimit_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/dlimit_cmd.h +--- linux-3.4/include/linux/vserver/dlimit_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/dlimit_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,109 @@ +#ifndef _VX_DLIMIT_CMD_H +#define _VX_DLIMIT_CMD_H @@ -12121,9 +12158,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/dlimit_cmd.h linux-3.3.1 + +#endif /* __KERNEL__ */ +#endif /* _VX_DLIMIT_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/global.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/global.h ---- linux-3.3.1/include/linux/vserver/global.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/global.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/global.h linux-3.4-vs2.3.3.4/include/linux/vserver/global.h +--- linux-3.4/include/linux/vserver/global.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/global.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,19 @@ +#ifndef _VX_GLOBAL_H +#define _VX_GLOBAL_H @@ -12144,9 +12181,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/global.h linux-3.3.1-vs2 + + +#endif /* _VX_GLOBAL_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/history.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/history.h ---- linux-3.3.1/include/linux/vserver/history.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/history.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/history.h linux-3.4-vs2.3.3.4/include/linux/vserver/history.h +--- linux-3.4/include/linux/vserver/history.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/history.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,197 @@ +#ifndef _VX_HISTORY_H +#define _VX_HISTORY_H @@ -12345,9 +12382,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/history.h linux-3.3.1-vs +#endif /* CONFIG_VSERVER_HISTORY */ + +#endif /* _VX_HISTORY_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/inode.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/inode.h ---- linux-3.3.1/include/linux/vserver/inode.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/inode.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/inode.h linux-3.4-vs2.3.3.4/include/linux/vserver/inode.h +--- linux-3.4/include/linux/vserver/inode.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/inode.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,39 @@ +#ifndef _VX_INODE_H +#define _VX_INODE_H @@ -12388,9 +12425,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/inode.h linux-3.3.1-vs2. +#else /* _VX_INODE_H */ +#warning duplicate inclusion +#endif /* _VX_INODE_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/inode_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/inode_cmd.h ---- linux-3.3.1/include/linux/vserver/inode_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/inode_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/inode_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/inode_cmd.h +--- linux-3.4/include/linux/vserver/inode_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/inode_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,59 @@ +#ifndef _VX_INODE_CMD_H +#define _VX_INODE_CMD_H @@ -12451,9 +12488,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/inode_cmd.h linux-3.3.1- + +#endif /* __KERNEL__ */ +#endif /* _VX_INODE_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/limit.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/limit.h ---- linux-3.3.1/include/linux/vserver/limit.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/limit.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/limit.h linux-3.4-vs2.3.3.4/include/linux/vserver/limit.h +--- linux-3.4/include/linux/vserver/limit.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/limit.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,71 @@ +#ifndef _VX_LIMIT_H +#define _VX_LIMIT_H @@ -12526,9 +12563,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/limit.h linux-3.3.1-vs2. + +#endif /* __KERNEL__ */ +#endif /* _VX_LIMIT_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/limit_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/limit_cmd.h ---- linux-3.3.1/include/linux/vserver/limit_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/limit_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/limit_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/limit_cmd.h +--- linux-3.4/include/linux/vserver/limit_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/limit_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,71 @@ +#ifndef _VX_LIMIT_CMD_H +#define _VX_LIMIT_CMD_H @@ -12601,9 +12638,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/limit_cmd.h linux-3.3.1- + +#endif /* __KERNEL__ */ +#endif /* _VX_LIMIT_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/limit_def.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/limit_def.h ---- linux-3.3.1/include/linux/vserver/limit_def.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/limit_def.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/limit_def.h linux-3.4-vs2.3.3.4/include/linux/vserver/limit_def.h +--- linux-3.4/include/linux/vserver/limit_def.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/limit_def.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,47 @@ +#ifndef _VX_LIMIT_DEF_H +#define _VX_LIMIT_DEF_H @@ -12652,9 +12689,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/limit_def.h linux-3.3.1- +#endif + +#endif /* _VX_LIMIT_DEF_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/limit_int.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/limit_int.h ---- linux-3.3.1/include/linux/vserver/limit_int.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/limit_int.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/limit_int.h linux-3.4-vs2.3.3.4/include/linux/vserver/limit_int.h +--- linux-3.4/include/linux/vserver/limit_int.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/limit_int.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,198 @@ +#ifndef _VX_LIMIT_INT_H +#define _VX_LIMIT_INT_H @@ -12854,9 +12891,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/limit_int.h linux-3.3.1- + +#endif /* __KERNEL__ */ +#endif /* _VX_LIMIT_INT_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/monitor.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/monitor.h ---- linux-3.3.1/include/linux/vserver/monitor.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/monitor.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/monitor.h linux-3.4-vs2.3.3.4/include/linux/vserver/monitor.h +--- linux-3.4/include/linux/vserver/monitor.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/monitor.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,96 @@ +#ifndef _VX_MONITOR_H +#define _VX_MONITOR_H @@ -12954,9 +12991,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/monitor.h linux-3.3.1-vs + + +#endif /* _VX_MONITOR_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/network.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/network.h ---- linux-3.3.1/include/linux/vserver/network.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/network.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/network.h linux-3.4-vs2.3.3.4/include/linux/vserver/network.h +--- linux-3.4/include/linux/vserver/network.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/network.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,148 @@ +#ifndef _VX_NETWORK_H +#define _VX_NETWORK_H @@ -13106,9 +13143,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/network.h linux-3.3.1-vs + +#endif /* __KERNEL__ */ +#endif /* _VX_NETWORK_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/network_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/network_cmd.h ---- linux-3.3.1/include/linux/vserver/network_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/network_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/network_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/network_cmd.h +--- linux-3.4/include/linux/vserver/network_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/network_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,164 @@ +#ifndef _VX_NETWORK_CMD_H +#define _VX_NETWORK_CMD_H @@ -13274,9 +13311,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/network_cmd.h linux-3.3. + +#endif /* __KERNEL__ */ +#endif /* _VX_CONTEXT_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/percpu.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/percpu.h ---- linux-3.3.1/include/linux/vserver/percpu.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/percpu.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/percpu.h linux-3.4-vs2.3.3.4/include/linux/vserver/percpu.h +--- linux-3.4/include/linux/vserver/percpu.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/percpu.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,14 @@ +#ifndef _VX_PERCPU_H +#define _VX_PERCPU_H @@ -13292,9 +13329,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/percpu.h linux-3.3.1-vs2 +#define PERCPU_PERCTX (sizeof(struct _vx_percpu)) + +#endif /* _VX_PERCPU_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/pid.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/pid.h ---- linux-3.3.1/include/linux/vserver/pid.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/pid.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/pid.h linux-3.4-vs2.3.3.4/include/linux/vserver/pid.h +--- linux-3.4/include/linux/vserver/pid.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/pid.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,51 @@ +#ifndef _VSERVER_PID_H +#define _VSERVER_PID_H @@ -13347,9 +13384,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/pid.h linux-3.3.1-vs2.3. +} + +#endif -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/sched.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/sched.h ---- linux-3.3.1/include/linux/vserver/sched.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/sched.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/sched.h linux-3.4-vs2.3.3.4/include/linux/vserver/sched.h +--- linux-3.4/include/linux/vserver/sched.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/sched.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,23 @@ +#ifndef _VX_SCHED_H +#define _VX_SCHED_H @@ -13374,9 +13411,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/sched.h linux-3.3.1-vs2. +#else /* _VX_SCHED_H */ +#warning duplicate inclusion +#endif /* _VX_SCHED_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/sched_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/sched_cmd.h ---- linux-3.3.1/include/linux/vserver/sched_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/sched_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/sched_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/sched_cmd.h +--- linux-3.4/include/linux/vserver/sched_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/sched_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,21 @@ +#ifndef _VX_SCHED_CMD_H +#define _VX_SCHED_CMD_H @@ -13399,9 +13436,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/sched_cmd.h linux-3.3.1- + +#endif /* __KERNEL__ */ +#endif /* _VX_SCHED_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/sched_def.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/sched_def.h ---- linux-3.3.1/include/linux/vserver/sched_def.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/sched_def.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/sched_def.h linux-3.4-vs2.3.3.4/include/linux/vserver/sched_def.h +--- linux-3.4/include/linux/vserver/sched_def.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/sched_def.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,38 @@ +#ifndef _VX_SCHED_DEF_H +#define _VX_SCHED_DEF_H @@ -13441,9 +13478,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/sched_def.h linux-3.3.1- +#endif + +#endif /* _VX_SCHED_DEF_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/signal.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/signal.h ---- linux-3.3.1/include/linux/vserver/signal.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/signal.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/signal.h linux-3.4-vs2.3.3.4/include/linux/vserver/signal.h +--- linux-3.4/include/linux/vserver/signal.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/signal.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,14 @@ +#ifndef _VX_SIGNAL_H +#define _VX_SIGNAL_H @@ -13459,9 +13496,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/signal.h linux-3.3.1-vs2 +#else /* _VX_SIGNAL_H */ +#warning duplicate inclusion +#endif /* _VX_SIGNAL_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/signal_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/signal_cmd.h ---- linux-3.3.1/include/linux/vserver/signal_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/signal_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/signal_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/signal_cmd.h +--- linux-3.4/include/linux/vserver/signal_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/signal_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,43 @@ +#ifndef _VX_SIGNAL_CMD_H +#define _VX_SIGNAL_CMD_H @@ -13506,9 +13543,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/signal_cmd.h linux-3.3.1 + +#endif /* __KERNEL__ */ +#endif /* _VX_SIGNAL_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/space.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/space.h ---- linux-3.3.1/include/linux/vserver/space.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/space.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/space.h linux-3.4-vs2.3.3.4/include/linux/vserver/space.h +--- linux-3.4/include/linux/vserver/space.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/space.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,12 @@ +#ifndef _VX_SPACE_H +#define _VX_SPACE_H @@ -13522,9 +13559,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/space.h linux-3.3.1-vs2. +#else /* _VX_SPACE_H */ +#warning duplicate inclusion +#endif /* _VX_SPACE_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/space_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/space_cmd.h ---- linux-3.3.1/include/linux/vserver/space_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/space_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/space_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/space_cmd.h +--- linux-3.4/include/linux/vserver/space_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/space_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,38 @@ +#ifndef _VX_SPACE_CMD_H +#define _VX_SPACE_CMD_H @@ -13564,9 +13601,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/space_cmd.h linux-3.3.1- + +#endif /* __KERNEL__ */ +#endif /* _VX_SPACE_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/switch.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/switch.h ---- linux-3.3.1/include/linux/vserver/switch.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/switch.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/switch.h linux-3.4-vs2.3.3.4/include/linux/vserver/switch.h +--- linux-3.4/include/linux/vserver/switch.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/switch.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,98 @@ +#ifndef _VX_SWITCH_H +#define _VX_SWITCH_H @@ -13666,9 +13703,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/switch.h linux-3.3.1-vs2 + +#endif /* _VX_SWITCH_H */ + -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/tag.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/tag.h ---- linux-3.3.1/include/linux/vserver/tag.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/tag.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/tag.h linux-3.4-vs2.3.3.4/include/linux/vserver/tag.h +--- linux-3.4/include/linux/vserver/tag.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/tag.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,143 @@ +#ifndef _DX_TAG_H +#define _DX_TAG_H @@ -13813,9 +13850,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/tag.h linux-3.3.1-vs2.3. +#endif + +#endif /* _DX_TAG_H */ -diff -NurpP --minimal linux-3.3.1/include/linux/vserver/tag_cmd.h linux-3.3.1-vs2.3.3.2/include/linux/vserver/tag_cmd.h ---- linux-3.3.1/include/linux/vserver/tag_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/linux/vserver/tag_cmd.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/linux/vserver/tag_cmd.h linux-3.4-vs2.3.3.4/include/linux/vserver/tag_cmd.h +--- linux-3.4/include/linux/vserver/tag_cmd.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/linux/vserver/tag_cmd.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,22 @@ +#ifndef _VX_TAG_CMD_H +#define _VX_TAG_CMD_H @@ -13839,9 +13876,9 @@ diff -NurpP --minimal linux-3.3.1/include/linux/vserver/tag_cmd.h linux-3.3.1-vs + +#endif /* __KERNEL__ */ +#endif /* _VX_TAG_CMD_H */ -diff -NurpP --minimal linux-3.3.1/include/net/addrconf.h linux-3.3.1-vs2.3.3.2/include/net/addrconf.h ---- linux-3.3.1/include/net/addrconf.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/net/addrconf.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/net/addrconf.h linux-3.4-vs2.3.3.4/include/net/addrconf.h +--- linux-3.4/include/net/addrconf.h 2012-05-21 18:07:33.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/net/addrconf.h 2012-05-21 18:15:05.000000000 +0200 @@ -80,7 +80,8 @@ extern int ipv6_dev_get_saddr(struct n struct net_device *dev, const struct in6_addr *daddr, @@ -13852,9 +13889,9 @@ diff -NurpP --minimal linux-3.3.1/include/net/addrconf.h linux-3.3.1-vs2.3.3.2/i extern int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr, unsigned char banned_flags); -diff -NurpP --minimal linux-3.3.1/include/net/af_unix.h linux-3.3.1-vs2.3.3.2/include/net/af_unix.h ---- linux-3.3.1/include/net/af_unix.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/net/af_unix.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/net/af_unix.h linux-3.4-vs2.3.3.4/include/net/af_unix.h +--- linux-3.4/include/net/af_unix.h 2012-05-21 18:07:33.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/net/af_unix.h 2012-05-21 18:15:05.000000000 +0200 @@ -4,6 +4,7 @@ #include #include @@ -13863,9 +13900,9 @@ diff -NurpP --minimal linux-3.3.1/include/net/af_unix.h linux-3.3.1-vs2.3.3.2/in #include extern void unix_inflight(struct file *fp); -diff -NurpP --minimal linux-3.3.1/include/net/inet_timewait_sock.h linux-3.3.1-vs2.3.3.2/include/net/inet_timewait_sock.h ---- linux-3.3.1/include/net/inet_timewait_sock.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/net/inet_timewait_sock.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/net/inet_timewait_sock.h linux-3.4-vs2.3.3.4/include/net/inet_timewait_sock.h +--- linux-3.4/include/net/inet_timewait_sock.h 2012-03-19 19:47:29.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/net/inet_timewait_sock.h 2012-05-21 18:15:05.000000000 +0200 @@ -112,6 +112,10 @@ struct inet_timewait_sock { #define tw_net __tw_common.skc_net #define tw_daddr __tw_common.skc_daddr @@ -13877,9 +13914,9 @@ diff -NurpP --minimal linux-3.3.1/include/net/inet_timewait_sock.h linux-3.3.1-v int tw_timeout; volatile unsigned char tw_substate; unsigned char tw_rcv_wscale; -diff -NurpP --minimal linux-3.3.1/include/net/ip6_route.h linux-3.3.1-vs2.3.3.2/include/net/ip6_route.h ---- linux-3.3.1/include/net/ip6_route.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/net/ip6_route.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/net/ip6_route.h linux-3.4-vs2.3.3.4/include/net/ip6_route.h +--- linux-3.4/include/net/ip6_route.h 2012-03-19 19:47:29.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/net/ip6_route.h 2012-05-21 18:15:05.000000000 +0200 @@ -88,7 +88,8 @@ extern int ip6_route_get_saddr(struct struct rt6_info *rt, const struct in6_addr *daddr, @@ -13890,9 +13927,9 @@ diff -NurpP --minimal linux-3.3.1/include/net/ip6_route.h linux-3.3.1-vs2.3.3.2/ extern struct rt6_info *rt6_lookup(struct net *net, const struct in6_addr *daddr, -diff -NurpP --minimal linux-3.3.1/include/net/route.h linux-3.3.1-vs2.3.3.2/include/net/route.h ---- linux-3.3.1/include/net/route.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/net/route.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/include/net/route.h linux-3.4-vs2.3.3.4/include/net/route.h +--- linux-3.4/include/net/route.h 2012-03-19 19:47:29.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/include/net/route.h 2012-05-21 18:15:05.000000000 +0200 @@ -202,6 +202,9 @@ static inline void ip_rt_put(struct rtab dst_release(&rt->dst); } @@ -13940,10 +13977,10 @@ diff -NurpP --minimal linux-3.3.1/include/net/route.h linux-3.3.1-vs2.3.3.2/incl rt = __ip_route_output_key(net, fl4); if (IS_ERR(rt)) return rt; -diff -NurpP --minimal linux-3.3.1/include/net/sock.h linux-3.3.1-vs2.3.3.2/include/net/sock.h ---- linux-3.3.1/include/net/sock.h 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/include/net/sock.h 2012-02-24 03:55:06.000000000 +0100 -@@ -168,6 +168,10 @@ struct sock_common { +diff -NurpP --minimal linux-3.4/include/net/sock.h linux-3.4-vs2.3.3.4/include/net/sock.h +--- linux-3.4/include/net/sock.h 2012-05-21 18:07:33.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/include/net/sock.h 2012-05-21 18:15:05.000000000 +0200 +@@ -170,6 +170,10 @@ struct sock_common { #ifdef CONFIG_NET_NS struct net *skc_net; #endif @@ -13954,7 +13991,7 @@ diff -NurpP --minimal linux-3.3.1/include/net/sock.h linux-3.3.1-vs2.3.3.2/inclu /* * fields between dontcopy_begin/dontcopy_end * are not copied in sock_copy() -@@ -278,6 +282,10 @@ struct sock { +@@ -281,6 +285,10 @@ struct sock { #define sk_bind_node __sk_common.skc_bind_node #define sk_prot __sk_common.skc_prot #define sk_net __sk_common.skc_net @@ -13965,10 +14002,10 @@ diff -NurpP --minimal linux-3.3.1/include/net/sock.h linux-3.3.1-vs2.3.3.2/inclu socket_lock_t sk_lock; struct sk_buff_head sk_receive_queue; /* -diff -NurpP --minimal linux-3.3.1/init/Kconfig linux-3.3.1-vs2.3.3.2/init/Kconfig ---- linux-3.3.1/init/Kconfig 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/init/Kconfig 2012-02-24 03:55:06.000000000 +0100 -@@ -588,6 +588,7 @@ config HAVE_UNSTABLE_SCHED_CLOCK +diff -NurpP --minimal linux-3.4/init/Kconfig linux-3.4-vs2.3.3.4/init/Kconfig +--- linux-3.4/init/Kconfig 2012-05-21 18:07:33.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/init/Kconfig 2012-05-21 18:15:05.000000000 +0200 +@@ -579,6 +579,7 @@ config HAVE_UNSTABLE_SCHED_CLOCK menuconfig CGROUPS boolean "Control Group support" depends on EVENTFD @@ -13976,7 +14013,7 @@ diff -NurpP --minimal linux-3.3.1/init/Kconfig linux-3.3.1-vs2.3.3.2/init/Kconfi help This option adds support for grouping sets of processes together, for use with process control subsystems such as Cpusets, CFS, memory -@@ -837,6 +838,7 @@ config IPC_NS +@@ -828,6 +829,7 @@ config IPC_NS config USER_NS bool "User namespace (EXPERIMENTAL)" depends on EXPERIMENTAL @@ -13984,9 +14021,9 @@ diff -NurpP --minimal linux-3.3.1/init/Kconfig linux-3.3.1-vs2.3.3.2/init/Kconfi default y help This allows containers, i.e. vservers, to use user namespaces -diff -NurpP --minimal linux-3.3.1/init/main.c linux-3.3.1-vs2.3.3.2/init/main.c ---- linux-3.3.1/init/main.c 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/init/main.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/init/main.c linux-3.4-vs2.3.3.4/init/main.c +--- linux-3.4/init/main.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/init/main.c 2012-05-21 18:15:05.000000000 +0200 @@ -68,6 +68,7 @@ #include #include @@ -13995,9 +14032,9 @@ diff -NurpP --minimal linux-3.3.1/init/main.c linux-3.3.1-vs2.3.3.2/init/main.c #include #include -diff -NurpP --minimal linux-3.3.1/ipc/mqueue.c linux-3.3.1-vs2.3.3.2/ipc/mqueue.c ---- linux-3.3.1/ipc/mqueue.c 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/ipc/mqueue.c 2012-02-24 04:07:13.000000000 +0100 +diff -NurpP --minimal linux-3.4/ipc/mqueue.c linux-3.4-vs2.3.3.4/ipc/mqueue.c +--- linux-3.4/ipc/mqueue.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/ipc/mqueue.c 2012-05-21 18:15:05.000000000 +0200 @@ -34,6 +34,8 @@ #include #include @@ -14053,7 +14090,7 @@ diff -NurpP --minimal linux-3.3.1/ipc/mqueue.c linux-3.3.1-vs2.3.3.2/ipc/mqueue. } else if (S_ISDIR(mode)) { inc_nlink(inode); /* Some things misbehave if size == 0 on a directory */ -@@ -277,8 +285,11 @@ static void mqueue_evict_inode(struct in +@@ -267,8 +275,11 @@ static void mqueue_evict_inode(struct in + info->attr.mq_msgsize); user = info->user; if (user) { @@ -14065,7 +14102,7 @@ diff -NurpP --minimal linux-3.3.1/ipc/mqueue.c linux-3.3.1-vs2.3.3.2/ipc/mqueue. /* * get_ns_from_inode() ensures that the * (ipc_ns = sb->s_fs_info) is either a valid ipc_ns -@@ -288,6 +299,7 @@ static void mqueue_evict_inode(struct in +@@ -278,6 +289,7 @@ static void mqueue_evict_inode(struct in if (ipc_ns) ipc_ns->mq_queues_count--; spin_unlock(&mq_lock); @@ -14073,9 +14110,9 @@ diff -NurpP --minimal linux-3.3.1/ipc/mqueue.c linux-3.3.1-vs2.3.3.2/ipc/mqueue. free_uid(user); } if (ipc_ns) -diff -NurpP --minimal linux-3.3.1/ipc/msg.c linux-3.3.1-vs2.3.3.2/ipc/msg.c ---- linux-3.3.1/ipc/msg.c 2011-05-22 16:17:59.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/ipc/msg.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/ipc/msg.c linux-3.4-vs2.3.3.4/ipc/msg.c +--- linux-3.4/ipc/msg.c 2011-05-22 16:17:59.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/ipc/msg.c 2012-05-21 18:15:05.000000000 +0200 @@ -37,6 +37,7 @@ #include #include @@ -14092,9 +14129,9 @@ diff -NurpP --minimal linux-3.3.1/ipc/msg.c linux-3.3.1-vs2.3.3.2/ipc/msg.c msq->q_perm.security = NULL; retval = security_msg_queue_alloc(msq); -diff -NurpP --minimal linux-3.3.1/ipc/namespace.c linux-3.3.1-vs2.3.3.2/ipc/namespace.c ---- linux-3.3.1/ipc/namespace.c 2011-07-22 11:18:12.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/ipc/namespace.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/ipc/namespace.c linux-3.4-vs2.3.3.4/ipc/namespace.c +--- linux-3.4/ipc/namespace.c 2011-07-22 11:18:12.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/ipc/namespace.c 2012-05-21 18:15:05.000000000 +0200 @@ -13,11 +13,12 @@ #include #include @@ -14135,9 +14172,9 @@ diff -NurpP --minimal linux-3.3.1/ipc/namespace.c linux-3.3.1-vs2.3.3.2/ipc/name } /* -diff -NurpP --minimal linux-3.3.1/ipc/sem.c linux-3.3.1-vs2.3.3.2/ipc/sem.c ---- linux-3.3.1/ipc/sem.c 2012-01-09 16:14:59.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/ipc/sem.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/ipc/sem.c linux-3.4-vs2.3.3.4/ipc/sem.c +--- linux-3.4/ipc/sem.c 2012-01-09 16:14:59.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/ipc/sem.c 2012-05-21 18:15:05.000000000 +0200 @@ -86,6 +86,8 @@ #include #include @@ -14175,9 +14212,9 @@ diff -NurpP --minimal linux-3.3.1/ipc/sem.c linux-3.3.1-vs2.3.3.2/ipc/sem.c security_sem_free(sma); ipc_rcu_putref(sma); } -diff -NurpP --minimal linux-3.3.1/ipc/shm.c linux-3.3.1-vs2.3.3.2/ipc/shm.c ---- linux-3.3.1/ipc/shm.c 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/ipc/shm.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/ipc/shm.c linux-3.4-vs2.3.3.4/ipc/shm.c +--- linux-3.4/ipc/shm.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/ipc/shm.c 2012-05-21 18:15:05.000000000 +0200 @@ -39,6 +39,8 @@ #include #include @@ -14233,9 +14270,9 @@ diff -NurpP --minimal linux-3.3.1/ipc/shm.c linux-3.3.1-vs2.3.3.2/ipc/shm.c return error; no_id: -diff -NurpP --minimal linux-3.3.1/kernel/Makefile linux-3.3.1-vs2.3.3.2/kernel/Makefile ---- linux-3.3.1/kernel/Makefile 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/Makefile 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/Makefile linux-3.4-vs2.3.3.4/kernel/Makefile +--- linux-3.4/kernel/Makefile 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/Makefile 2012-05-21 18:15:05.000000000 +0200 @@ -25,6 +25,7 @@ endif obj-y += sched/ obj-y += power/ @@ -14243,10 +14280,10 @@ diff -NurpP --minimal linux-3.3.1/kernel/Makefile linux-3.3.1-vs2.3.3.2/kernel/M +obj-y += vserver/ obj-$(CONFIG_FREEZER) += freezer.o obj-$(CONFIG_PROFILING) += profile.o - obj-$(CONFIG_SYSCTL_SYSCALL_CHECK) += sysctl_check.o -diff -NurpP --minimal linux-3.3.1/kernel/auditsc.c linux-3.3.1-vs2.3.3.2/kernel/auditsc.c ---- linux-3.3.1/kernel/auditsc.c 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/auditsc.c 2012-02-24 16:47:49.000000000 +0100 + obj-$(CONFIG_STACKTRACE) += stacktrace.o +diff -NurpP --minimal linux-3.4/kernel/auditsc.c linux-3.4-vs2.3.3.4/kernel/auditsc.c +--- linux-3.4/kernel/auditsc.c 2012-03-19 19:47:29.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/auditsc.c 2012-05-21 18:15:05.000000000 +0200 @@ -2308,7 +2308,7 @@ int audit_set_loginuid(uid_t loginuid) if (task->loginuid != -1) return -EPERM; @@ -14256,9 +14293,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/auditsc.c linux-3.3.1-vs2.3.3.2/kernel/ return -EPERM; #endif /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */ -diff -NurpP --minimal linux-3.3.1/kernel/capability.c linux-3.3.1-vs2.3.3.2/kernel/capability.c ---- linux-3.3.1/kernel/capability.c 2012-03-19 19:47:29.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/capability.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/capability.c linux-3.4-vs2.3.3.4/kernel/capability.c +--- linux-3.4/kernel/capability.c 2012-03-19 19:47:29.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/capability.c 2012-05-21 18:15:05.000000000 +0200 @@ -15,6 +15,7 @@ #include #include @@ -14284,10 +14321,10 @@ diff -NurpP --minimal linux-3.3.1/kernel/capability.c linux-3.3.1-vs2.3.3.2/kern /** * has_capability_noaudit - Does a task have a capability (unaudited) in the * initial user ns -diff -NurpP --minimal linux-3.3.1/kernel/compat.c linux-3.3.1-vs2.3.3.2/kernel/compat.c ---- linux-3.3.1/kernel/compat.c 2012-01-09 16:14:59.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/compat.c 2012-02-24 03:55:06.000000000 +0100 -@@ -973,7 +973,7 @@ asmlinkage long compat_sys_stime(compat_ +diff -NurpP --minimal linux-3.4/kernel/compat.c linux-3.4-vs2.3.3.4/kernel/compat.c +--- linux-3.4/kernel/compat.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/compat.c 2012-05-21 18:15:05.000000000 +0200 +@@ -1054,7 +1054,7 @@ asmlinkage long compat_sys_stime(compat_ if (err) return err; @@ -14296,10 +14333,10 @@ diff -NurpP --minimal linux-3.3.1/kernel/compat.c linux-3.3.1-vs2.3.3.2/kernel/c return 0; } -diff -NurpP --minimal linux-3.3.1/kernel/cred.c linux-3.3.1-vs2.3.3.2/kernel/cred.c ---- linux-3.3.1/kernel/cred.c 2012-01-09 16:15:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/cred.c 2012-02-24 03:55:06.000000000 +0100 -@@ -61,31 +61,6 @@ struct cred init_cred = { +diff -NurpP --minimal linux-3.4/kernel/cred.c linux-3.4-vs2.3.3.4/kernel/cred.c +--- linux-3.4/kernel/cred.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/cred.c 2012-05-21 18:15:05.000000000 +0200 +@@ -62,31 +62,6 @@ struct cred init_cred = { #endif }; @@ -14331,7 +14368,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/cred.c linux-3.3.1-vs2.3.3.2/kernel/cre /* * Dispose of the shared task group credentials */ -@@ -281,21 +256,16 @@ error: +@@ -282,21 +257,16 @@ error: * * Call commit_creds() or abort_creds() to clean up. */ @@ -14354,7 +14391,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/cred.c linux-3.3.1-vs2.3.3.2/kernel/cre memcpy(new, old, sizeof(struct cred)); atomic_set(&new->usage, 1); -@@ -322,6 +292,13 @@ error: +@@ -323,6 +293,13 @@ error: abort_creds(new); return NULL; } @@ -14368,9 +14405,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/cred.c linux-3.3.1-vs2.3.3.2/kernel/cre EXPORT_SYMBOL(prepare_creds); /* -diff -NurpP --minimal linux-3.3.1/kernel/exit.c linux-3.3.1-vs2.3.3.2/kernel/exit.c ---- linux-3.3.1/kernel/exit.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/exit.c 2012-02-24 04:09:40.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/exit.c linux-3.4-vs2.3.3.4/kernel/exit.c +--- linux-3.4/kernel/exit.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/exit.c 2012-05-21 18:15:05.000000000 +0200 @@ -48,6 +48,10 @@ #include #include @@ -14382,7 +14419,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/exit.c linux-3.3.1-vs2.3.3.2/kernel/exi #include #include #include -@@ -481,9 +485,11 @@ static void close_files(struct files_str +@@ -482,9 +486,11 @@ static void close_files(struct files_str filp_close(file, files); cond_resched(); } @@ -14394,7 +14431,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/exit.c linux-3.3.1-vs2.3.3.2/kernel/exi } } } -@@ -1054,10 +1060,15 @@ void do_exit(long code) +@@ -1062,10 +1068,15 @@ void do_exit(long code) smp_mb(); raw_spin_unlock_wait(&tsk->pi_lock); @@ -14410,10 +14447,10 @@ diff -NurpP --minimal linux-3.3.1/kernel/exit.c linux-3.3.1-vs2.3.3.2/kernel/exi BUG(); /* Avoid "noreturn function does return". */ for (;;) -diff -NurpP --minimal linux-3.3.1/kernel/fork.c linux-3.3.1-vs2.3.3.2/kernel/fork.c ---- linux-3.3.1/kernel/fork.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/fork.c 2012-03-19 20:52:37.000000000 +0100 -@@ -67,6 +67,9 @@ +diff -NurpP --minimal linux-3.4/kernel/fork.c linux-3.4-vs2.3.3.4/kernel/fork.c +--- linux-3.4/kernel/fork.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/fork.c 2012-05-21 18:15:05.000000000 +0200 +@@ -68,6 +68,9 @@ #include #include #include @@ -14423,7 +14460,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/fork.c linux-3.3.1-vs2.3.3.2/kernel/for #include #include -@@ -169,6 +172,8 @@ void free_task(struct task_struct *tsk) +@@ -170,6 +173,8 @@ void free_task(struct task_struct *tsk) account_kernel_stack(tsk->stack, -1); free_thread_info(tsk->stack); rt_mutex_debug_task_free(tsk); @@ -14432,7 +14469,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/fork.c linux-3.3.1-vs2.3.3.2/kernel/for ftrace_graph_exit_task(tsk); free_task_struct(tsk); } -@@ -504,6 +509,7 @@ static struct mm_struct *mm_init(struct +@@ -506,6 +511,7 @@ static struct mm_struct *mm_init(struct if (likely(!mm_alloc_pgd(mm))) { mm->def_flags = 0; mmu_notifier_mm_init(mm); @@ -14440,15 +14477,15 @@ diff -NurpP --minimal linux-3.3.1/kernel/fork.c linux-3.3.1-vs2.3.3.2/kernel/for return mm; } -@@ -541,6 +547,7 @@ void __mmdrop(struct mm_struct *mm) - #ifdef CONFIG_TRANSPARENT_HUGEPAGE - VM_BUG_ON(mm->pmd_huge_pte); - #endif +@@ -558,6 +564,7 @@ void __mmdrop(struct mm_struct *mm) + destroy_context(mm); + mmu_notifier_mm_destroy(mm); + check_mm(mm); + clr_vx_info(&mm->mm_vx_info); free_mm(mm); } EXPORT_SYMBOL_GPL(__mmdrop); -@@ -776,6 +783,7 @@ struct mm_struct *dup_mm(struct task_str +@@ -793,6 +800,7 @@ struct mm_struct *dup_mm(struct task_str goto fail_nomem; memcpy(mm, oldmm, sizeof(*mm)); @@ -14456,7 +14493,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/fork.c linux-3.3.1-vs2.3.3.2/kernel/for mm_init_cpumask(mm); /* Initializing for Swap token stuff */ -@@ -819,6 +827,7 @@ fail_nocontext: +@@ -836,6 +844,7 @@ fail_nocontext: * If init_new_context() failed, we cannot use mmput() to free the mm * because it calls destroy_context() */ @@ -14464,7 +14501,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/fork.c linux-3.3.1-vs2.3.3.2/kernel/for mm_free_pgd(mm); free_mm(mm); return NULL; -@@ -1104,6 +1113,8 @@ static struct task_struct *copy_process( +@@ -1124,6 +1133,8 @@ static struct task_struct *copy_process( int retval; struct task_struct *p; int cgroup_callbacks_done = 0; @@ -14473,7 +14510,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/fork.c linux-3.3.1-vs2.3.3.2/kernel/for if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS)) return ERR_PTR(-EINVAL); -@@ -1150,7 +1161,12 @@ static struct task_struct *copy_process( +@@ -1170,7 +1181,12 @@ static struct task_struct *copy_process( DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled); DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled); #endif @@ -14486,7 +14523,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/fork.c linux-3.3.1-vs2.3.3.2/kernel/for if (atomic_read(&p->real_cred->user->processes) >= task_rlimit(p, RLIMIT_NPROC)) { if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) && -@@ -1420,6 +1436,18 @@ static struct task_struct *copy_process( +@@ -1447,6 +1463,18 @@ static struct task_struct *copy_process( total_forks++; spin_unlock(¤t->sighand->siglock); @@ -14505,9 +14542,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/fork.c linux-3.3.1-vs2.3.3.2/kernel/for write_unlock_irq(&tasklist_lock); proc_fork_connector(p); cgroup_post_fork(p); -diff -NurpP --minimal linux-3.3.1/kernel/kthread.c linux-3.3.1-vs2.3.3.2/kernel/kthread.c ---- linux-3.3.1/kernel/kthread.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/kthread.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/kthread.c linux-3.4-vs2.3.3.4/kernel/kthread.c +--- linux-3.4/kernel/kthread.c 2012-03-19 19:47:30.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/kthread.c 2012-05-21 18:15:05.000000000 +0200 @@ -16,6 +16,7 @@ #include #include @@ -14516,9 +14553,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/kthread.c linux-3.3.1-vs2.3.3.2/kernel/ #include static DEFINE_SPINLOCK(kthread_create_lock); -diff -NurpP --minimal linux-3.3.1/kernel/nsproxy.c linux-3.3.1-vs2.3.3.2/kernel/nsproxy.c ---- linux-3.3.1/kernel/nsproxy.c 2012-01-09 16:15:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/nsproxy.c 2012-02-24 16:59:37.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/nsproxy.c linux-3.4-vs2.3.3.4/kernel/nsproxy.c +--- linux-3.4/kernel/nsproxy.c 2012-01-09 16:15:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/nsproxy.c 2012-05-21 18:15:05.000000000 +0200 @@ -20,11 +20,14 @@ #include #include @@ -14700,9 +14737,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/nsproxy.c linux-3.3.1-vs2.3.3.2/kernel/ return -EPERM; *new_nsp = create_new_namespaces(unshare_flags, current, -diff -NurpP --minimal linux-3.3.1/kernel/pid.c linux-3.3.1-vs2.3.3.2/kernel/pid.c ---- linux-3.3.1/kernel/pid.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/pid.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/pid.c linux-3.4-vs2.3.3.4/kernel/pid.c +--- linux-3.4/kernel/pid.c 2012-03-19 19:47:30.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/pid.c 2012-05-21 18:15:05.000000000 +0200 @@ -36,6 +36,7 @@ #include #include @@ -14760,18 +14797,18 @@ diff -NurpP --minimal linux-3.3.1/kernel/pid.c linux-3.3.1-vs2.3.3.2/kernel/pid. pid_t pid_vnr(struct pid *pid) { return pid_nr_ns(pid, current->nsproxy->pid_ns); -diff -NurpP --minimal linux-3.3.1/kernel/pid_namespace.c linux-3.3.1-vs2.3.3.2/kernel/pid_namespace.c ---- linux-3.3.1/kernel/pid_namespace.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/pid_namespace.c 2012-02-24 03:55:06.000000000 +0100 -@@ -15,6 +15,7 @@ - #include +diff -NurpP --minimal linux-3.4/kernel/pid_namespace.c linux-3.4-vs2.3.3.4/kernel/pid_namespace.c +--- linux-3.4/kernel/pid_namespace.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/pid_namespace.c 2012-05-21 18:15:05.000000000 +0200 +@@ -16,6 +16,7 @@ #include #include + #include +#include #define BITS_PER_PAGE (PAGE_SIZE*8) -@@ -88,6 +89,7 @@ static struct pid_namespace *create_pid_ +@@ -89,6 +90,7 @@ static struct pid_namespace *create_pid_ goto out_free_map; kref_init(&ns->kref); @@ -14779,7 +14816,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/pid_namespace.c linux-3.3.1-vs2.3.3.2/k ns->level = level; ns->parent = get_pid_ns(parent_pid_ns); -@@ -119,6 +121,7 @@ static void destroy_pid_namespace(struct +@@ -120,6 +122,7 @@ static void destroy_pid_namespace(struct for (i = 0; i < PIDMAP_ENTRIES; i++) kfree(ns->pidmap[i].page); @@ -14787,9 +14824,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/pid_namespace.c linux-3.3.1-vs2.3.3.2/k kmem_cache_free(pid_ns_cachep, ns); } -diff -NurpP --minimal linux-3.3.1/kernel/posix-timers.c linux-3.3.1-vs2.3.3.2/kernel/posix-timers.c ---- linux-3.3.1/kernel/posix-timers.c 2012-01-09 16:15:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/posix-timers.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/posix-timers.c linux-3.4-vs2.3.3.4/kernel/posix-timers.c +--- linux-3.4/kernel/posix-timers.c 2012-01-09 16:15:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/posix-timers.c 2012-05-21 18:15:05.000000000 +0200 @@ -47,6 +47,7 @@ #include #include @@ -14825,9 +14862,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/posix-timers.c linux-3.3.1-vs2.3.3.2/ke /* If we failed to send the signal the timer stops. */ return ret > 0; } -diff -NurpP --minimal linux-3.3.1/kernel/printk.c linux-3.3.1-vs2.3.3.2/kernel/printk.c ---- linux-3.3.1/kernel/printk.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/printk.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/printk.c linux-3.4-vs2.3.3.4/kernel/printk.c +--- linux-3.4/kernel/printk.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/printk.c 2012-05-21 18:15:05.000000000 +0200 @@ -41,6 +41,7 @@ #include #include @@ -14836,7 +14873,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/printk.c linux-3.3.1-vs2.3.3.2/kernel/p #include -@@ -314,7 +315,7 @@ static int check_syslog_permissions(int +@@ -317,7 +318,7 @@ static int check_syslog_permissions(int return 0; if (syslog_action_restricted(type)) { @@ -14845,7 +14882,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/printk.c linux-3.3.1-vs2.3.3.2/kernel/p return 0; /* For historical reasons, accept CAP_SYS_ADMIN too, with a warning */ if (capable(CAP_SYS_ADMIN)) { -@@ -344,12 +345,9 @@ int do_syslog(int type, char __user *buf +@@ -347,12 +348,9 @@ int do_syslog(int type, char __user *buf if (error) return error; @@ -14861,7 +14898,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/printk.c linux-3.3.1-vs2.3.3.2/kernel/p error = -EINVAL; if (!buf || len < 0) goto out; -@@ -360,6 +358,16 @@ int do_syslog(int type, char __user *buf +@@ -363,6 +361,16 @@ int do_syslog(int type, char __user *buf error = -EFAULT; goto out; } @@ -14878,7 +14915,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/printk.c linux-3.3.1-vs2.3.3.2/kernel/p error = wait_event_interruptible(log_wait, (log_start - log_end)); if (error) -@@ -386,16 +394,6 @@ int do_syslog(int type, char __user *buf +@@ -389,16 +397,6 @@ int do_syslog(int type, char __user *buf /* FALL THRU */ /* Read last kernel messages */ case SYSLOG_ACTION_READ_ALL: @@ -14895,9 +14932,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/printk.c linux-3.3.1-vs2.3.3.2/kernel/p count = len; if (count > log_buf_len) count = log_buf_len; -diff -NurpP --minimal linux-3.3.1/kernel/ptrace.c linux-3.3.1-vs2.3.3.2/kernel/ptrace.c ---- linux-3.3.1/kernel/ptrace.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/ptrace.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/ptrace.c linux-3.4-vs2.3.3.4/kernel/ptrace.c +--- linux-3.4/kernel/ptrace.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/ptrace.c 2012-05-21 18:15:05.000000000 +0200 @@ -22,6 +22,7 @@ #include #include @@ -14918,19 +14955,19 @@ diff -NurpP --minimal linux-3.3.1/kernel/ptrace.c linux-3.3.1-vs2.3.3.2/kernel/p return security_ptrace_access_check(task, mode); } -diff -NurpP --minimal linux-3.3.1/kernel/sched/core.c linux-3.3.1-vs2.3.3.2/kernel/sched/core.c ---- linux-3.3.1/kernel/sched/core.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/sched/core.c 2012-03-19 20:52:10.000000000 +0100 -@@ -71,6 +71,8 @@ - #include +diff -NurpP --minimal linux-3.4/kernel/sched/core.c linux-3.4-vs2.3.3.4/kernel/sched/core.c +--- linux-3.4/kernel/sched/core.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/sched/core.c 2012-05-21 18:15:05.000000000 +0200 +@@ -72,6 +72,8 @@ #include #include + #include +#include +#include + #include #include - #include -@@ -2335,9 +2337,17 @@ static void calc_global_nohz(unsigned lo +@@ -2359,9 +2361,17 @@ static void calc_global_nohz(void) */ void get_avenrun(unsigned long *loads, unsigned long offset, int shift) { @@ -14951,7 +14988,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/sched/core.c linux-3.3.1-vs2.3.3.2/kern } /* -@@ -2633,14 +2643,17 @@ static inline void task_group_account_fi +@@ -2665,14 +2675,17 @@ static inline void task_group_account_fi void account_user_time(struct task_struct *p, cputime_t cputime, cputime_t cputime_scaled) { @@ -14970,7 +15007,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/sched/core.c linux-3.3.1-vs2.3.3.2/kern /* Add user time to cpustat. */ task_group_account_field(p, index, (__force u64) cputime); -@@ -2687,9 +2700,12 @@ static inline +@@ -2719,9 +2732,12 @@ static inline void __account_system_time(struct task_struct *p, cputime_t cputime, cputime_t cputime_scaled, int index) { @@ -14983,7 +15020,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/sched/core.c linux-3.3.1-vs2.3.3.2/kern account_group_system_time(p, cputime); /* Add system time to cpustat. */ -@@ -3886,7 +3902,7 @@ SYSCALL_DEFINE1(nice, int, increment) +@@ -3941,7 +3957,7 @@ SYSCALL_DEFINE1(nice, int, increment) nice = 19; if (increment < 0 && !can_nice(current, nice)) @@ -14992,9 +15029,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/sched/core.c linux-3.3.1-vs2.3.3.2/kern retval = security_task_setnice(current, nice); if (retval) -diff -NurpP --minimal linux-3.3.1/kernel/sched/fair.c linux-3.3.1-vs2.3.3.2/kernel/sched/fair.c ---- linux-3.3.1/kernel/sched/fair.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/sched/fair.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/sched/fair.c linux-3.4-vs2.3.3.4/kernel/sched/fair.c +--- linux-3.4/kernel/sched/fair.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/sched/fair.c 2012-05-21 18:15:05.000000000 +0200 @@ -26,6 +26,7 @@ #include #include @@ -15003,7 +15040,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/sched/fair.c linux-3.3.1-vs2.3.3.2/kern #include -@@ -1126,6 +1127,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, st +@@ -1111,6 +1112,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, st __enqueue_entity(cfs_rq, se); se->on_rq = 1; @@ -15012,7 +15049,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/sched/fair.c linux-3.3.1-vs2.3.3.2/kern if (cfs_rq->nr_running == 1) { list_add_leaf_cfs_rq(cfs_rq); check_enqueue_throttle(cfs_rq); -@@ -1206,6 +1209,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st +@@ -1191,6 +1194,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st if (se != cfs_rq->curr) __dequeue_entity(cfs_rq, se); se->on_rq = 0; @@ -15021,9 +15058,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/sched/fair.c linux-3.3.1-vs2.3.3.2/kern update_cfs_load(cfs_rq, 0); account_entity_dequeue(cfs_rq, se); -diff -NurpP --minimal linux-3.3.1/kernel/signal.c linux-3.3.1-vs2.3.3.2/kernel/signal.c ---- linux-3.3.1/kernel/signal.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/signal.c 2012-02-24 04:10:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/signal.c linux-3.4-vs2.3.3.4/kernel/signal.c +--- linux-3.4/kernel/signal.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/signal.c 2012-05-21 18:15:05.000000000 +0200 @@ -29,6 +29,8 @@ #include #include @@ -15073,7 +15110,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/signal.c linux-3.3.1-vs2.3.3.2/kernel/s return security_task_kill(t, info, sig, 0); } -@@ -1351,7 +1376,7 @@ int kill_pid_info(int sig, struct siginf +@@ -1358,7 +1383,7 @@ int kill_pid_info(int sig, struct siginf rcu_read_lock(); retry: p = pid_task(pid, PIDTYPE_PID); @@ -15082,7 +15119,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/signal.c linux-3.3.1-vs2.3.3.2/kernel/s error = group_send_sig_info(sig, info, p); if (unlikely(error == -ESRCH)) /* -@@ -1401,7 +1426,7 @@ int kill_pid_info_as_cred(int sig, struc +@@ -1408,7 +1433,7 @@ int kill_pid_info_as_cred(int sig, struc rcu_read_lock(); p = pid_task(pid, PIDTYPE_PID); @@ -15091,7 +15128,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/signal.c linux-3.3.1-vs2.3.3.2/kernel/s ret = -ESRCH; goto out_unlock; } -@@ -1453,8 +1478,10 @@ static int kill_something_info(int sig, +@@ -1460,8 +1485,10 @@ static int kill_something_info(int sig, struct task_struct * p; for_each_process(p) { @@ -15104,7 +15141,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/signal.c linux-3.3.1-vs2.3.3.2/kernel/s int err = group_send_sig_info(sig, info, p); ++count; if (err != -EPERM) -@@ -2290,6 +2317,11 @@ relock: +@@ -2310,6 +2337,11 @@ relock: !sig_kernel_only(signr)) continue; @@ -15116,9 +15153,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/signal.c linux-3.3.1-vs2.3.3.2/kernel/s if (sig_kernel_stop(signr)) { /* * The default action is to stop all threads in -diff -NurpP --minimal linux-3.3.1/kernel/softirq.c linux-3.3.1-vs2.3.3.2/kernel/softirq.c ---- linux-3.3.1/kernel/softirq.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/softirq.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/softirq.c linux-3.4-vs2.3.3.4/kernel/softirq.c +--- linux-3.4/kernel/softirq.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/softirq.c 2012-05-21 18:15:05.000000000 +0200 @@ -24,6 +24,7 @@ #include #include @@ -15127,9 +15164,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/softirq.c linux-3.3.1-vs2.3.3.2/kernel/ #define CREATE_TRACE_POINTS #include -diff -NurpP --minimal linux-3.3.1/kernel/sys.c linux-3.3.1-vs2.3.3.2/kernel/sys.c ---- linux-3.3.1/kernel/sys.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/sys.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/sys.c linux-3.4-vs2.3.3.4/kernel/sys.c +--- linux-3.4/kernel/sys.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/sys.c 2012-05-21 18:15:05.000000000 +0200 @@ -45,6 +45,7 @@ #include #include @@ -15177,7 +15214,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/sys.c linux-3.3.1-vs2.3.3.2/kernel/sys. /* * Reboot system call: for obvious reasons only root may call it, * and even root needs to set up some magic numbers in the registers -@@ -450,6 +460,9 @@ SYSCALL_DEFINE4(reboot, int, magic1, int +@@ -459,6 +469,9 @@ SYSCALL_DEFINE4(reboot, int, magic1, int if ((cmd == LINUX_REBOOT_CMD_POWER_OFF) && !pm_power_off) cmd = LINUX_REBOOT_CMD_HALT; @@ -15187,7 +15224,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/sys.c linux-3.3.1-vs2.3.3.2/kernel/sys. mutex_lock(&reboot_mutex); switch (cmd) { case LINUX_REBOOT_CMD_RESTART: -@@ -1273,7 +1286,8 @@ SYSCALL_DEFINE2(sethostname, char __user +@@ -1282,7 +1295,8 @@ SYSCALL_DEFINE2(sethostname, char __user int errno; char tmp[__NEW_UTS_LEN]; @@ -15197,7 +15234,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/sys.c linux-3.3.1-vs2.3.3.2/kernel/sys. return -EPERM; if (len < 0 || len > __NEW_UTS_LEN) -@@ -1324,7 +1338,8 @@ SYSCALL_DEFINE2(setdomainname, char __us +@@ -1333,7 +1347,8 @@ SYSCALL_DEFINE2(setdomainname, char __us int errno; char tmp[__NEW_UTS_LEN]; @@ -15207,7 +15244,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/sys.c linux-3.3.1-vs2.3.3.2/kernel/sys. return -EPERM; if (len < 0 || len > __NEW_UTS_LEN) return -EINVAL; -@@ -1443,7 +1458,7 @@ int do_prlimit(struct task_struct *tsk, +@@ -1452,7 +1467,7 @@ int do_prlimit(struct task_struct *tsk, /* Keep the capable check against init_user_ns until cgroups can contain all limits */ if (new_rlim->rlim_max > rlim->rlim_max && @@ -15216,7 +15253,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/sys.c linux-3.3.1-vs2.3.3.2/kernel/sys. retval = -EPERM; if (!retval) retval = security_task_setrlimit(tsk->group_leader, -@@ -1497,7 +1512,8 @@ static int check_prlimit_permission(stru +@@ -1506,7 +1521,8 @@ static int check_prlimit_permission(stru cred->gid == tcred->sgid && cred->gid == tcred->gid)) return 0; @@ -15226,10 +15263,10 @@ diff -NurpP --minimal linux-3.3.1/kernel/sys.c linux-3.3.1-vs2.3.3.2/kernel/sys. return 0; return -EPERM; -diff -NurpP --minimal linux-3.3.1/kernel/sysctl.c linux-3.3.1-vs2.3.3.2/kernel/sysctl.c ---- linux-3.3.1/kernel/sysctl.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/sysctl.c 2012-02-24 03:55:06.000000000 +0100 -@@ -76,6 +76,7 @@ +diff -NurpP --minimal linux-3.4/kernel/sysctl.c linux-3.4-vs2.3.3.4/kernel/sysctl.c +--- linux-3.4/kernel/sysctl.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/sysctl.c 2012-05-21 18:15:05.000000000 +0200 +@@ -81,6 +81,7 @@ #if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT) #include #endif @@ -15237,7 +15274,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/sysctl.c linux-3.3.1-vs2.3.3.2/kernel/s #ifdef CONFIG_CHR_DEV_SG #include #endif -@@ -572,6 +573,13 @@ static struct ctl_table kern_table[] = { +@@ -562,6 +563,13 @@ static struct ctl_table kern_table[] = { .proc_handler = proc_dostring, }, #endif @@ -15251,9 +15288,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/sysctl.c linux-3.3.1-vs2.3.3.2/kernel/s #ifdef CONFIG_CHR_DEV_SG { .procname = "sg-big-buff", -diff -NurpP --minimal linux-3.3.1/kernel/sysctl_binary.c linux-3.3.1-vs2.3.3.2/kernel/sysctl_binary.c ---- linux-3.3.1/kernel/sysctl_binary.c 2012-01-09 16:15:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/sysctl_binary.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/sysctl_binary.c linux-3.4-vs2.3.3.4/kernel/sysctl_binary.c +--- linux-3.4/kernel/sysctl_binary.c 2012-01-09 16:15:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/sysctl_binary.c 2012-05-21 18:15:05.000000000 +0200 @@ -73,6 +73,7 @@ static const struct bin_table bin_kern_t { CTL_INT, KERN_PANIC, "panic" }, @@ -15262,20 +15299,20 @@ diff -NurpP --minimal linux-3.3.1/kernel/sysctl_binary.c linux-3.3.1-vs2.3.3.2/k { CTL_STR, KERN_SPARC_REBOOT, "reboot-cmd" }, { CTL_INT, KERN_CTLALTDEL, "ctrl-alt-del" }, -diff -NurpP --minimal linux-3.3.1/kernel/time/timekeeping.c linux-3.3.1-vs2.3.3.2/kernel/time/timekeeping.c ---- linux-3.3.1/kernel/time/timekeeping.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/time/timekeeping.c 2012-02-24 03:55:06.000000000 +0100 -@@ -233,6 +233,7 @@ void getnstimeofday(struct timespec *ts) - } while (read_seqretry(&xtime_lock, seq)); +diff -NurpP --minimal linux-3.4/kernel/time/timekeeping.c linux-3.4-vs2.3.3.4/kernel/time/timekeeping.c +--- linux-3.4/kernel/time/timekeeping.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/time/timekeeping.c 2012-05-21 18:15:05.000000000 +0200 +@@ -239,6 +239,7 @@ void getnstimeofday(struct timespec *ts) + } while (read_seqretry(&timekeeper.lock, seq)); timespec_add_ns(ts, nsecs); + vx_adjust_timespec(ts); } EXPORT_SYMBOL(getnstimeofday); -diff -NurpP --minimal linux-3.3.1/kernel/time.c linux-3.3.1-vs2.3.3.2/kernel/time.c ---- linux-3.3.1/kernel/time.c 2012-01-09 16:15:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/time.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/time.c linux-3.4-vs2.3.3.4/kernel/time.c +--- linux-3.4/kernel/time.c 2012-05-21 18:07:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/kernel/time.c 2012-05-21 18:15:05.000000000 +0200 @@ -92,7 +92,7 @@ SYSCALL_DEFINE1(stime, time_t __user *, if (err) return err; @@ -15285,18 +15322,18 @@ diff -NurpP --minimal linux-3.3.1/kernel/time.c linux-3.3.1-vs2.3.3.2/kernel/tim return 0; } -@@ -177,7 +177,7 @@ int do_sys_settimeofday(const struct tim - /* SMP safe, again the code in arch/foo/time.c should - * globally block out interrupts when it runs. - */ +@@ -172,7 +172,7 @@ int do_sys_settimeofday(const struct tim + } + } + if (tv) - return do_settimeofday(tv); + return vx_settimeofday(tv); - } return 0; } -diff -NurpP --minimal linux-3.3.1/kernel/timer.c linux-3.3.1-vs2.3.3.2/kernel/timer.c ---- linux-3.3.1/kernel/timer.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/timer.c 2012-02-24 03:55:06.000000000 +0100 + +diff -NurpP --minimal linux-3.4/kernel/timer.c linux-3.4-vs2.3.3.4/kernel/timer.c +--- linux-3.4/kernel/timer.c 2012-03-19 19:47:30.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/timer.c 2012-05-21 18:15:05.000000000 +0200 @@ -40,6 +40,10 @@ #include #include @@ -15346,9 +15383,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/timer.c linux-3.3.1-vs2.3.3.2/kernel/ti SYSCALL_DEFINE0(getuid) { /* Only we change this so SMP safe */ -diff -NurpP --minimal linux-3.3.1/kernel/user_namespace.c linux-3.3.1-vs2.3.3.2/kernel/user_namespace.c ---- linux-3.3.1/kernel/user_namespace.c 2012-01-09 16:15:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/user_namespace.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/user_namespace.c linux-3.4-vs2.3.3.4/kernel/user_namespace.c +--- linux-3.4/kernel/user_namespace.c 2012-01-09 16:15:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/user_namespace.c 2012-05-21 18:15:05.000000000 +0200 @@ -11,6 +11,7 @@ #include #include @@ -15374,9 +15411,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/user_namespace.c linux-3.3.1-vs2.3.3.2/ INIT_WORK(&ns->destroyer, free_user_ns_work); schedule_work(&ns->destroyer); } -diff -NurpP --minimal linux-3.3.1/kernel/utsname.c linux-3.3.1-vs2.3.3.2/kernel/utsname.c ---- linux-3.3.1/kernel/utsname.c 2012-01-09 16:15:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/utsname.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/utsname.c linux-3.4-vs2.3.3.4/kernel/utsname.c +--- linux-3.4/kernel/utsname.c 2012-01-09 16:15:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/utsname.c 2012-05-21 18:15:05.000000000 +0200 @@ -16,14 +16,17 @@ #include #include @@ -15445,9 +15482,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/utsname.c linux-3.3.1-vs2.3.3.2/kernel/ kfree(ns); } -diff -NurpP --minimal linux-3.3.1/kernel/vserver/Kconfig linux-3.3.1-vs2.3.3.2/kernel/vserver/Kconfig ---- linux-3.3.1/kernel/vserver/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/Kconfig 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/Kconfig linux-3.4-vs2.3.3.4/kernel/vserver/Kconfig +--- linux-3.4/kernel/vserver/Kconfig 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/Kconfig 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,224 @@ +# +# Linux VServer configuration @@ -15673,9 +15710,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/Kconfig linux-3.3.1-vs2.3.3.2/k + bool + default n + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/Makefile linux-3.3.1-vs2.3.3.2/kernel/vserver/Makefile ---- linux-3.3.1/kernel/vserver/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/Makefile 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/Makefile linux-3.4-vs2.3.3.4/kernel/vserver/Makefile +--- linux-3.4/kernel/vserver/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/Makefile 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,18 @@ +# +# Makefile for the Linux vserver routines. @@ -15695,9 +15732,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/Makefile linux-3.3.1-vs2.3.3.2/ +vserver-$(CONFIG_VSERVER_MONITOR) += monitor.o +vserver-$(CONFIG_VSERVER_DEVICE) += device.o + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/cacct.c linux-3.3.1-vs2.3.3.2/kernel/vserver/cacct.c ---- linux-3.3.1/kernel/vserver/cacct.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/cacct.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/cacct.c linux-3.4-vs2.3.3.4/kernel/vserver/cacct.c +--- linux-3.4/kernel/vserver/cacct.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/cacct.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,42 @@ +/* + * linux/kernel/vserver/cacct.c @@ -15741,9 +15778,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/cacct.c linux-3.3.1-vs2.3.3.2/k + return 0; +} + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/cacct_init.h linux-3.3.1-vs2.3.3.2/kernel/vserver/cacct_init.h ---- linux-3.3.1/kernel/vserver/cacct_init.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/cacct_init.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/cacct_init.h linux-3.4-vs2.3.3.4/kernel/vserver/cacct_init.h +--- linux-3.4/kernel/vserver/cacct_init.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/cacct_init.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,25 @@ + + @@ -15770,9 +15807,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/cacct_init.h linux-3.3.1-vs2.3. + return; +} + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/cacct_proc.h linux-3.3.1-vs2.3.3.2/kernel/vserver/cacct_proc.h ---- linux-3.3.1/kernel/vserver/cacct_proc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/cacct_proc.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/cacct_proc.h linux-3.4-vs2.3.3.4/kernel/vserver/cacct_proc.h +--- linux-3.4/kernel/vserver/cacct_proc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/cacct_proc.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,53 @@ +#ifndef _VX_CACCT_PROC_H +#define _VX_CACCT_PROC_H @@ -15827,9 +15864,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/cacct_proc.h linux-3.3.1-vs2.3. +} + +#endif /* _VX_CACCT_PROC_H */ -diff -NurpP --minimal linux-3.3.1/kernel/vserver/context.c linux-3.3.1-vs2.3.3.2/kernel/vserver/context.c ---- linux-3.3.1/kernel/vserver/context.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/context.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/context.c linux-3.4-vs2.3.3.4/kernel/vserver/context.c +--- linux-3.4/kernel/vserver/context.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/context.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,1107 @@ +/* + * linux/kernel/vserver/context.c @@ -16394,7 +16431,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/context.c linux-3.3.1-vs2.3.3.2 + /* no rcu_read_lock() because of spin_lock() */ + spin_lock(&files->file_lock); + fdt = files_fdtable(files); -+ bptr = fdt->open_fds->fds_bits; ++ bptr = fdt->open_fds; + count = fdt->max_fds / (sizeof(unsigned long) * 8); + for (total = 0; count > 0; count--) { + if (*bptr) @@ -16938,10 +16975,10 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/context.c linux-3.3.1-vs2.3.3.2 + +EXPORT_SYMBOL_GPL(free_vx_info); + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/cvirt.c linux-3.3.1-vs2.3.3.2/kernel/vserver/cvirt.c ---- linux-3.3.1/kernel/vserver/cvirt.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/cvirt.c 2012-02-24 03:55:06.000000000 +0100 -@@ -0,0 +1,303 @@ +diff -NurpP --minimal linux-3.4/kernel/vserver/cvirt.c linux-3.4-vs2.3.3.4/kernel/vserver/cvirt.c +--- linux-3.4/kernel/vserver/cvirt.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/cvirt.c 2012-05-21 18:15:05.000000000 +0200 +@@ -0,0 +1,313 @@ +/* + * linux/kernel/vserver/cvirt.c + * @@ -16964,6 +17001,16 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/cvirt.c linux-3.3.1-vs2.3.3.2/k +#include + + ++void vx_vsi_boottime(struct timespec *boottime) ++{ ++ struct vx_info *vxi = current_vx_info(); ++ ++ set_normalized_timespec(boottime, ++ boottime->tv_sec + vxi->cvirt.bias_uptime.tv_sec, ++ boottime->tv_nsec + vxi->cvirt.bias_uptime.tv_nsec); ++ return; ++} ++ +void vx_vsi_uptime(struct timespec *uptime, struct timespec *idle) +{ + struct vx_info *vxi = current_vx_info(); @@ -17245,9 +17292,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/cvirt.c linux-3.3.1-vs2.3.3.2/k + +#endif + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/cvirt_init.h linux-3.3.1-vs2.3.3.2/kernel/vserver/cvirt_init.h ---- linux-3.3.1/kernel/vserver/cvirt_init.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/cvirt_init.h 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/cvirt_init.h linux-3.4-vs2.3.3.4/kernel/vserver/cvirt_init.h +--- linux-3.4/kernel/vserver/cvirt_init.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/cvirt_init.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,70 @@ + + @@ -17319,10 +17366,10 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/cvirt_init.h linux-3.3.1-vs2.3. + return; +} + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/cvirt_proc.h linux-3.3.1-vs2.3.3.2/kernel/vserver/cvirt_proc.h ---- linux-3.3.1/kernel/vserver/cvirt_proc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/cvirt_proc.h 2012-02-24 17:26:10.000000000 +0100 -@@ -0,0 +1,137 @@ +diff -NurpP --minimal linux-3.4/kernel/vserver/cvirt_proc.h linux-3.4-vs2.3.3.4/kernel/vserver/cvirt_proc.h +--- linux-3.4/kernel/vserver/cvirt_proc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/cvirt_proc.h 2012-05-21 18:15:05.000000000 +0200 +@@ -0,0 +1,123 @@ +#ifndef _VX_CVIRT_PROC_H +#define _VX_CVIRT_PROC_H + @@ -17332,6 +17379,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/cvirt_proc.h linux-3.3.1-vs2.3. +#include +#include + ++extern int vx_info_mnt_namespace(struct mnt_namespace *, char *); + +static inline +int vx_info_proc_nsproxy(struct nsproxy *nsproxy, char *buffer) @@ -17339,8 +17387,6 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/cvirt_proc.h linux-3.3.1-vs2.3. + struct mnt_namespace *ns; + struct uts_namespace *uts; + struct ipc_namespace *ipc; -+ struct path path; -+ char *pstr, *root; + int length = 0; + + if (!nsproxy) @@ -17355,21 +17401,8 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/cvirt_proc.h linux-3.3.1-vs2.3. + if (!ns) + goto skip_ns; + -+/* FIXME: move to fs? -+ -+ pstr = kmalloc(PATH_MAX, GFP_KERNEL); -+ if (!pstr) -+ goto skip_ns; ++ length += vx_info_mnt_namespace(ns, buffer + length); + -+ path.mnt = ns->root; -+ path.dentry = ns->root->mnt_root; -+ root = d_path(&path, pstr, PATH_MAX - 2); -+ length += sprintf(buffer + length, -+ "Namespace:\t%p [#%u]\n" -+ "RootPath:\t%s\n", -+ ns, atomic_read(&ns->count), -+ root); -+ kfree(pstr); */ +skip_ns: + + uts = nsproxy->uts_ns; @@ -17460,9 +17493,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/cvirt_proc.h linux-3.3.1-vs2.3. +} + +#endif /* _VX_CVIRT_PROC_H */ -diff -NurpP --minimal linux-3.3.1/kernel/vserver/debug.c linux-3.3.1-vs2.3.3.2/kernel/vserver/debug.c ---- linux-3.3.1/kernel/vserver/debug.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/debug.c 2012-02-24 03:55:06.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/debug.c linux-3.4-vs2.3.3.4/kernel/vserver/debug.c +--- linux-3.4/kernel/vserver/debug.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/debug.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,32 @@ +/* + * kernel/vserver/debug.c @@ -17496,9 +17529,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/debug.c linux-3.3.1-vs2.3.3.2/k + +EXPORT_SYMBOL_GPL(dump_vx_info); + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/device.c linux-3.3.1-vs2.3.3.2/kernel/vserver/device.c ---- linux-3.3.1/kernel/vserver/device.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/device.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/device.c linux-3.4-vs2.3.3.4/kernel/vserver/device.c +--- linux-3.4/kernel/vserver/device.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/device.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,443 @@ +/* + * linux/kernel/vserver/device.c @@ -17943,9 +17976,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/device.c linux-3.3.1-vs2.3.3.2/ +#endif /* CONFIG_COMPAT */ + + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/dlimit.c linux-3.3.1-vs2.3.3.2/kernel/vserver/dlimit.c ---- linux-3.3.1/kernel/vserver/dlimit.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/dlimit.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/dlimit.c linux-3.4-vs2.3.3.4/kernel/vserver/dlimit.c +--- linux-3.4/kernel/vserver/dlimit.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/dlimit.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,531 @@ +/* + * linux/kernel/vserver/dlimit.c @@ -18478,10 +18511,10 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/dlimit.c linux-3.3.1-vs2.3.3.2/ +EXPORT_SYMBOL_GPL(locate_dl_info); +EXPORT_SYMBOL_GPL(rcu_free_dl_info); + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/helper.c linux-3.3.1-vs2.3.3.2/kernel/vserver/helper.c ---- linux-3.3.1/kernel/vserver/helper.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/helper.c 2012-02-24 03:55:07.000000000 +0100 -@@ -0,0 +1,223 @@ +diff -NurpP --minimal linux-3.4/kernel/vserver/helper.c linux-3.4-vs2.3.3.4/kernel/vserver/helper.c +--- linux-3.4/kernel/vserver/helper.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/helper.c 2012-05-21 18:15:23.000000000 +0200 +@@ -0,0 +1,228 @@ +/* + * linux/kernel/vserver/helper.c + * @@ -18502,14 +18535,19 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/helper.c linux-3.3.1-vs2.3.3.2/ + +char vshelper_path[255] = "/sbin/vshelper"; + ++static int vshelper_init(struct subprocess_info *info, struct cred *new_cred) ++{ ++ current->flags &= ~PF_THREAD_BOUND; ++ return 0; ++} + +static int do_vshelper(char *name, char *argv[], char *envp[], int sync) +{ + int ret; + -+ if ((ret = call_usermodehelper(name, argv, envp, sync))) { -+ printk( KERN_WARNING -+ "%s: (%s %s) returned %s with %d\n", ++ if ((ret = call_usermodehelper_fns(name, argv, envp, sync, ++ vshelper_init, NULL, NULL))) { ++ printk(KERN_WARNING "%s: (%s %s) returned %s with %d\n", + name, argv[1], argv[2], + sync ? "sync" : "async", ret); + } @@ -18705,9 +18743,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/helper.c linux-3.3.1-vs2.3.3.2/ + return do_vshelper(vshelper_path, argv, envp, 1); +} + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/history.c linux-3.3.1-vs2.3.3.2/kernel/vserver/history.c ---- linux-3.3.1/kernel/vserver/history.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/history.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/history.c linux-3.4-vs2.3.3.4/kernel/vserver/history.c +--- linux-3.4/kernel/vserver/history.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/history.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,258 @@ +/* + * kernel/vserver/history.c @@ -18967,9 +19005,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/history.c linux-3.3.1-vs2.3.3.2 + +#endif /* CONFIG_COMPAT */ + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/inet.c linux-3.3.1-vs2.3.3.2/kernel/vserver/inet.c ---- linux-3.3.1/kernel/vserver/inet.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/inet.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/inet.c linux-3.4-vs2.3.3.4/kernel/vserver/inet.c +--- linux-3.4/kernel/vserver/inet.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/inet.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,226 @@ + +#include @@ -19197,9 +19235,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/inet.c linux-3.3.1-vs2.3.3.2/ke + +EXPORT_SYMBOL_GPL(ip_v4_find_src); + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/init.c linux-3.3.1-vs2.3.3.2/kernel/vserver/init.c ---- linux-3.3.1/kernel/vserver/init.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/init.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/init.c linux-3.4-vs2.3.3.4/kernel/vserver/init.c +--- linux-3.4/kernel/vserver/init.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/init.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,45 @@ +/* + * linux/kernel/init.c @@ -19246,9 +19284,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/init.c linux-3.3.1-vs2.3.3.2/ke +module_init(init_vserver); +module_exit(exit_vserver); + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/inode.c linux-3.3.1-vs2.3.3.2/kernel/vserver/inode.c ---- linux-3.3.1/kernel/vserver/inode.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/inode.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/inode.c linux-3.4-vs2.3.3.4/kernel/vserver/inode.c +--- linux-3.4/kernel/vserver/inode.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/inode.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,437 @@ +/* + * linux/kernel/vserver/inode.c @@ -19687,9 +19725,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/inode.c linux-3.3.1-vs2.3.3.2/k + +#endif /* CONFIG_PROPAGATE */ + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/limit.c linux-3.3.1-vs2.3.3.2/kernel/vserver/limit.c ---- linux-3.3.1/kernel/vserver/limit.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/limit.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/limit.c linux-3.4-vs2.3.3.4/kernel/vserver/limit.c +--- linux-3.4/kernel/vserver/limit.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/limit.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,330 @@ +/* + * linux/kernel/vserver/limit.c @@ -20021,9 +20059,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/limit.c linux-3.3.1-vs2.3.3.2/k +#endif +} + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/limit_init.h linux-3.3.1-vs2.3.3.2/kernel/vserver/limit_init.h ---- linux-3.3.1/kernel/vserver/limit_init.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/limit_init.h 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/limit_init.h linux-3.4-vs2.3.3.4/kernel/vserver/limit_init.h +--- linux-3.4/kernel/vserver/limit_init.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/limit_init.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,31 @@ + + @@ -20056,9 +20094,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/limit_init.h linux-3.3.1-vs2.3. + } +} + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/limit_proc.h linux-3.3.1-vs2.3.3.2/kernel/vserver/limit_proc.h ---- linux-3.3.1/kernel/vserver/limit_proc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/limit_proc.h 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/limit_proc.h linux-3.4-vs2.3.3.4/kernel/vserver/limit_proc.h +--- linux-3.4/kernel/vserver/limit_proc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/limit_proc.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,57 @@ +#ifndef _VX_LIMIT_PROC_H +#define _VX_LIMIT_PROC_H @@ -20117,9 +20155,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/limit_proc.h linux-3.3.1-vs2.3. +#endif /* _VX_LIMIT_PROC_H */ + + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/network.c linux-3.3.1-vs2.3.3.2/kernel/vserver/network.c ---- linux-3.3.1/kernel/vserver/network.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/network.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/network.c linux-3.4-vs2.3.3.4/kernel/vserver/network.c +--- linux-3.4/kernel/vserver/network.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/network.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,912 @@ +/* + * linux/kernel/vserver/network.c @@ -21033,9 +21071,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/network.c linux-3.3.1-vs2.3.3.2 +EXPORT_SYMBOL_GPL(free_nx_info); +EXPORT_SYMBOL_GPL(unhash_nx_info); + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/proc.c linux-3.3.1-vs2.3.3.2/kernel/vserver/proc.c ---- linux-3.3.1/kernel/vserver/proc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/proc.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/proc.c linux-3.4-vs2.3.3.4/kernel/vserver/proc.c +--- linux-3.4/kernel/vserver/proc.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/proc.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,1103 @@ +/* + * linux/kernel/vserver/proc.c @@ -22140,10 +22178,10 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/proc.c linux-3.3.1-vs2.3.3.2/ke + return buffer - orig; +} + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/sched.c linux-3.3.1-vs2.3.3.2/kernel/vserver/sched.c ---- linux-3.3.1/kernel/vserver/sched.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/sched.c 2012-02-24 03:55:07.000000000 +0100 -@@ -0,0 +1,82 @@ +diff -NurpP --minimal linux-3.4/kernel/vserver/sched.c linux-3.4-vs2.3.3.4/kernel/vserver/sched.c +--- linux-3.4/kernel/vserver/sched.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/sched.c 2012-05-21 18:25:11.000000000 +0200 +@@ -0,0 +1,83 @@ +/* + * linux/kernel/vserver/sched.c + * @@ -22161,6 +22199,7 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/sched.c linux-3.3.1-vs2.3.3.2/k + +#include +#include ++#include +#include + +#include @@ -22183,10 +22222,10 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/sched.c linux-3.3.1-vs2.3.3.2/k + + if (data->cpu_id != ~0) { + vxi->sched.update = cpumask_of_cpu(data->cpu_id); -+ cpus_and(vxi->sched.update, cpu_online_map, -+ vxi->sched.update); ++ cpumask_and(&vxi->sched.update, &vxi->sched.update, ++ cpu_online_mask); + } else -+ vxi->sched.update = cpu_online_map; ++ cpumask_copy(&vxi->sched.update, cpu_online_mask); + + for_each_cpu_mask(cpu, vxi->sched.update) + vx_update_sched_param(&vxi->sched, @@ -22226,9 +22265,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/sched.c linux-3.3.1-vs2.3.3.2/k + return 0; +} + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/sched_init.h linux-3.3.1-vs2.3.3.2/kernel/vserver/sched_init.h ---- linux-3.3.1/kernel/vserver/sched_init.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/sched_init.h 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/sched_init.h linux-3.4-vs2.3.3.4/kernel/vserver/sched_init.h +--- linux-3.4/kernel/vserver/sched_init.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/sched_init.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,27 @@ + +static inline void vx_info_init_sched(struct _vx_sched *sched) @@ -22257,9 +22296,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/sched_init.h linux-3.3.1-vs2.3. +{ + return; +} -diff -NurpP --minimal linux-3.3.1/kernel/vserver/sched_proc.h linux-3.3.1-vs2.3.3.2/kernel/vserver/sched_proc.h ---- linux-3.3.1/kernel/vserver/sched_proc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/sched_proc.h 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/sched_proc.h linux-3.4-vs2.3.3.4/kernel/vserver/sched_proc.h +--- linux-3.4/kernel/vserver/sched_proc.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/sched_proc.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,32 @@ +#ifndef _VX_SCHED_PROC_H +#define _VX_SCHED_PROC_H @@ -22293,9 +22332,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/sched_proc.h linux-3.3.1-vs2.3. +} + +#endif /* _VX_SCHED_PROC_H */ -diff -NurpP --minimal linux-3.3.1/kernel/vserver/signal.c linux-3.3.1-vs2.3.3.2/kernel/vserver/signal.c ---- linux-3.3.1/kernel/vserver/signal.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/signal.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/signal.c linux-3.4-vs2.3.3.4/kernel/vserver/signal.c +--- linux-3.4/kernel/vserver/signal.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/signal.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,134 @@ +/* + * linux/kernel/vserver/signal.c @@ -22431,9 +22470,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/signal.c linux-3.3.1-vs2.3.3.2/ + return ret; +} + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/space.c linux-3.3.1-vs2.3.3.2/kernel/vserver/space.c ---- linux-3.3.1/kernel/vserver/space.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/space.c 2012-02-24 17:01:40.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/space.c linux-3.4-vs2.3.3.4/kernel/vserver/space.c +--- linux-3.4/kernel/vserver/space.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/space.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,436 @@ +/* + * linux/kernel/vserver/space.c @@ -22871,9 +22910,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/space.c linux-3.3.1-vs2.3.3.2/k + return 0; +} + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/switch.c linux-3.3.1-vs2.3.3.2/kernel/vserver/switch.c ---- linux-3.3.1/kernel/vserver/switch.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/switch.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/switch.c linux-3.4-vs2.3.3.4/kernel/vserver/switch.c +--- linux-3.4/kernel/vserver/switch.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/switch.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,556 @@ +/* + * linux/kernel/vserver/switch.c @@ -23431,9 +23470,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/switch.c linux-3.3.1-vs2.3.3.2/ +} + +#endif /* CONFIG_COMPAT */ -diff -NurpP --minimal linux-3.3.1/kernel/vserver/sysctl.c linux-3.3.1-vs2.3.3.2/kernel/vserver/sysctl.c ---- linux-3.3.1/kernel/vserver/sysctl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/sysctl.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/sysctl.c linux-3.4-vs2.3.3.4/kernel/vserver/sysctl.c +--- linux-3.4/kernel/vserver/sysctl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/sysctl.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,247 @@ +/* + * kernel/vserver/sysctl.c @@ -23682,9 +23721,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/sysctl.c linux-3.3.1-vs2.3.3.2/ +EXPORT_SYMBOL_GPL(vs_debug_perm); +EXPORT_SYMBOL_GPL(vs_debug_misc); + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/tag.c linux-3.3.1-vs2.3.3.2/kernel/vserver/tag.c ---- linux-3.3.1/kernel/vserver/tag.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/tag.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/tag.c linux-3.4-vs2.3.3.4/kernel/vserver/tag.c +--- linux-3.4/kernel/vserver/tag.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/tag.c 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,63 @@ +/* + * linux/kernel/vserver/tag.c @@ -23749,9 +23788,9 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/tag.c linux-3.3.1-vs2.3.3.2/ker +} + + -diff -NurpP --minimal linux-3.3.1/kernel/vserver/vci_config.h linux-3.3.1-vs2.3.3.2/kernel/vserver/vci_config.h ---- linux-3.3.1/kernel/vserver/vci_config.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/kernel/vserver/vci_config.h 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/kernel/vserver/vci_config.h linux-3.4-vs2.3.3.4/kernel/vserver/vci_config.h +--- linux-3.4/kernel/vserver/vci_config.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/kernel/vserver/vci_config.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,76 @@ + +/* interface version */ @@ -23829,10 +23868,10 @@ diff -NurpP --minimal linux-3.3.1/kernel/vserver/vci_config.h linux-3.3.1-vs2.3. + 0; +} + -diff -NurpP --minimal linux-3.3.1/mm/memcontrol.c linux-3.3.1-vs2.3.3.2/mm/memcontrol.c ---- linux-3.3.1/mm/memcontrol.c 2012-04-03 03:01:26.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/mm/memcontrol.c 2012-04-03 03:02:13.000000000 +0200 -@@ -839,6 +839,31 @@ struct mem_cgroup *mem_cgroup_from_task( +diff -NurpP --minimal linux-3.4/mm/memcontrol.c linux-3.4-vs2.3.3.4/mm/memcontrol.c +--- linux-3.4/mm/memcontrol.c 2012-05-21 18:07:35.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/mm/memcontrol.c 2012-05-21 18:15:05.000000000 +0200 +@@ -846,6 +846,31 @@ struct mem_cgroup *mem_cgroup_from_task( struct mem_cgroup, css); } @@ -23864,19 +23903,19 @@ diff -NurpP --minimal linux-3.3.1/mm/memcontrol.c linux-3.3.1-vs2.3.3.2/mm/memco struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm) { struct mem_cgroup *memcg = NULL; -diff -NurpP --minimal linux-3.3.1/mm/oom_kill.c linux-3.3.1-vs2.3.3.2/mm/oom_kill.c ---- linux-3.3.1/mm/oom_kill.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/mm/oom_kill.c 2012-02-24 04:15:27.000000000 +0100 -@@ -34,6 +34,8 @@ - #include +diff -NurpP --minimal linux-3.4/mm/oom_kill.c linux-3.4-vs2.3.3.4/mm/oom_kill.c +--- linux-3.4/mm/oom_kill.c 2012-05-21 18:07:35.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/mm/oom_kill.c 2012-05-21 18:15:05.000000000 +0200 +@@ -35,6 +35,8 @@ #include #include + #include +#include +#include #define CREATE_TRACE_POINTS #include -@@ -154,11 +156,18 @@ struct task_struct *find_lock_task_mm(st +@@ -155,11 +157,18 @@ struct task_struct *find_lock_task_mm(st static bool oom_unkillable_task(struct task_struct *p, const struct mem_cgroup *memcg, const nodemask_t *nodemask) { @@ -23896,19 +23935,8 @@ diff -NurpP --minimal linux-3.3.1/mm/oom_kill.c linux-3.3.1-vs2.3.3.2/mm/oom_kil /* When mem_cgroup_out_of_memory() and p is not member of the group */ if (memcg && !task_in_mem_cgroup(p, memcg)) return true; -@@ -446,8 +455,8 @@ static int oom_kill_task(struct task_str - /* mm cannot be safely dereferenced after task_unlock(p) */ - mm = p->mm; - -- pr_err("Killed process %d (%s) total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB\n", -- task_pid_nr(p), p->comm, K(p->mm->total_vm), -+ pr_err("Killed process %d:#%u (%s) total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB\n", -+ task_pid_nr(p), p->xid, p->comm, K(p->mm->total_vm), - K(get_mm_counter(p->mm, MM_ANONPAGES)), - K(get_mm_counter(p->mm, MM_FILEPAGES))); - task_unlock(p); -@@ -505,8 +514,8 @@ static int oom_kill_process(struct task_ - } +@@ -462,8 +471,8 @@ static void oom_kill_process(struct task + dump_header(p, gfp_mask, order, memcg, nodemask); task_lock(p); - pr_err("%s: Kill process %d (%s) score %d or sacrifice child\n", @@ -23918,7 +23946,18 @@ diff -NurpP --minimal linux-3.3.1/mm/oom_kill.c linux-3.3.1-vs2.3.3.2/mm/oom_kil task_unlock(p); /* -@@ -607,6 +616,8 @@ int unregister_oom_notifier(struct notif +@@ -496,8 +505,8 @@ static void oom_kill_process(struct task + + /* mm cannot safely be dereferenced after task_unlock(victim) */ + mm = victim->mm; +- pr_err("Killed process %d (%s) total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB\n", +- task_pid_nr(victim), victim->comm, K(victim->mm->total_vm), ++ pr_err("Killed process %d:#%u (%s) total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB\n", ++ task_pid_nr(victim), victim->xid, victim->comm, K(victim->mm->total_vm), + K(get_mm_counter(victim->mm, MM_ANONPAGES)), + K(get_mm_counter(victim->mm, MM_FILEPAGES))); + task_unlock(victim); +@@ -596,6 +605,8 @@ int unregister_oom_notifier(struct notif } EXPORT_SYMBOL_GPL(unregister_oom_notifier); @@ -23927,7 +23966,7 @@ diff -NurpP --minimal linux-3.3.1/mm/oom_kill.c linux-3.3.1-vs2.3.3.2/mm/oom_kil /* * Try to acquire the OOM killer lock for the zones in zonelist. Returns zero * if a parallel OOM killing is already taking place that includes a zone in -@@ -765,7 +776,12 @@ retry: +@@ -747,7 +758,12 @@ void out_of_memory(struct zonelist *zone if (!p) { dump_header(NULL, gfp_mask, order, NULL, mpol_mask); read_unlock(&tasklist_lock); @@ -23939,11 +23978,11 @@ diff -NurpP --minimal linux-3.3.1/mm/oom_kill.c linux-3.3.1-vs2.3.3.2/mm/oom_kil + else + panic("Out of memory and no killable processes...\n"); } - - if (oom_kill_process(p, gfp_mask, order, points, totalpages, NULL, -diff -NurpP --minimal linux-3.3.1/mm/page_alloc.c linux-3.3.1-vs2.3.3.2/mm/page_alloc.c ---- linux-3.3.1/mm/page_alloc.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/mm/page_alloc.c 2012-03-19 20:52:10.000000000 +0100 + if (PTR_ERR(p) != -1UL) { + oom_kill_process(p, gfp_mask, order, points, totalpages, NULL, +diff -NurpP --minimal linux-3.4/mm/page_alloc.c linux-3.4-vs2.3.3.4/mm/page_alloc.c +--- linux-3.4/mm/page_alloc.c 2012-05-21 18:07:35.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/mm/page_alloc.c 2012-05-21 18:15:05.000000000 +0200 @@ -58,6 +58,8 @@ #include #include @@ -23953,7 +23992,7 @@ diff -NurpP --minimal linux-3.3.1/mm/page_alloc.c linux-3.3.1-vs2.3.3.2/mm/page_ #include #include -@@ -2602,6 +2604,9 @@ void si_meminfo(struct sysinfo *val) +@@ -2655,6 +2657,9 @@ void si_meminfo(struct sysinfo *val) val->totalhigh = totalhigh_pages; val->freehigh = nr_free_highpages(); val->mem_unit = PAGE_SIZE; @@ -23963,7 +24002,7 @@ diff -NurpP --minimal linux-3.3.1/mm/page_alloc.c linux-3.3.1-vs2.3.3.2/mm/page_ } EXPORT_SYMBOL(si_meminfo); -@@ -2622,6 +2627,9 @@ void si_meminfo_node(struct sysinfo *val +@@ -2675,6 +2680,9 @@ void si_meminfo_node(struct sysinfo *val val->freehigh = 0; #endif val->mem_unit = PAGE_SIZE; @@ -23973,9 +24012,9 @@ diff -NurpP --minimal linux-3.3.1/mm/page_alloc.c linux-3.3.1-vs2.3.3.2/mm/page_ } #endif -diff -NurpP --minimal linux-3.3.1/mm/pgtable-generic.c linux-3.3.1-vs2.3.3.2/mm/pgtable-generic.c ---- linux-3.3.1/mm/pgtable-generic.c 2011-03-15 18:07:42.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/mm/pgtable-generic.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/mm/pgtable-generic.c linux-3.4-vs2.3.3.4/mm/pgtable-generic.c +--- linux-3.4/mm/pgtable-generic.c 2012-05-21 18:07:35.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/mm/pgtable-generic.c 2012-05-21 18:15:05.000000000 +0200 @@ -6,6 +6,8 @@ * Copyright (C) 2010 Linus Torvalds */ @@ -23985,10 +24024,10 @@ diff -NurpP --minimal linux-3.3.1/mm/pgtable-generic.c linux-3.3.1-vs2.3.3.2/mm/ #include #include #include -diff -NurpP --minimal linux-3.3.1/mm/shmem.c linux-3.3.1-vs2.3.3.2/mm/shmem.c ---- linux-3.3.1/mm/shmem.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/mm/shmem.c 2012-02-24 03:55:07.000000000 +0100 -@@ -1460,7 +1460,7 @@ static int shmem_statfs(struct dentry *d +diff -NurpP --minimal linux-3.4/mm/shmem.c linux-3.4-vs2.3.3.4/mm/shmem.c +--- linux-3.4/mm/shmem.c 2012-05-21 18:07:35.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/mm/shmem.c 2012-05-21 18:15:05.000000000 +0200 +@@ -1466,7 +1466,7 @@ static int shmem_statfs(struct dentry *d { struct shmem_sb_info *sbinfo = SHMEM_SB(dentry->d_sb); @@ -23997,7 +24036,7 @@ diff -NurpP --minimal linux-3.3.1/mm/shmem.c linux-3.3.1-vs2.3.3.2/mm/shmem.c buf->f_bsize = PAGE_CACHE_SIZE; buf->f_namelen = NAME_MAX; if (sbinfo->max_blocks) { -@@ -2217,7 +2217,7 @@ int shmem_fill_super(struct super_block +@@ -2272,7 +2272,7 @@ int shmem_fill_super(struct super_block sb->s_maxbytes = MAX_LFS_FILESIZE; sb->s_blocksize = PAGE_CACHE_SIZE; sb->s_blocksize_bits = PAGE_CACHE_SHIFT; @@ -24006,9 +24045,9 @@ diff -NurpP --minimal linux-3.3.1/mm/shmem.c linux-3.3.1-vs2.3.3.2/mm/shmem.c sb->s_op = &shmem_ops; sb->s_time_gran = 1; #ifdef CONFIG_TMPFS_XATTR -diff -NurpP --minimal linux-3.3.1/mm/slab.c linux-3.3.1-vs2.3.3.2/mm/slab.c ---- linux-3.3.1/mm/slab.c 2012-03-19 19:47:30.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/mm/slab.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/mm/slab.c linux-3.4-vs2.3.3.4/mm/slab.c +--- linux-3.4/mm/slab.c 2012-05-21 18:07:35.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/mm/slab.c 2012-05-21 18:15:05.000000000 +0200 @@ -413,6 +413,8 @@ static void kmem_list3_init(struct kmem_ #define STATS_INC_FREEMISS(x) do { } while (0) #endif @@ -24018,7 +24057,7 @@ diff -NurpP --minimal linux-3.3.1/mm/slab.c linux-3.3.1-vs2.3.3.2/mm/slab.c #if DEBUG /* -@@ -3414,6 +3416,7 @@ retry: +@@ -3466,6 +3468,7 @@ retry: obj = slab_get_obj(cachep, slabp, nodeid); check_slabp(cachep, slabp); @@ -24026,7 +24065,7 @@ diff -NurpP --minimal linux-3.3.1/mm/slab.c linux-3.3.1-vs2.3.3.2/mm/slab.c l3->free_objects--; /* move slabp to correct slabp list: */ list_del(&slabp->list); -@@ -3491,6 +3494,7 @@ __cache_alloc_node(struct kmem_cache *ca +@@ -3543,6 +3546,7 @@ __cache_alloc_node(struct kmem_cache *ca /* ___cache_alloc_node can fall back to other nodes */ ptr = ____cache_alloc_node(cachep, flags, nodeid); out: @@ -24034,7 +24073,7 @@ diff -NurpP --minimal linux-3.3.1/mm/slab.c linux-3.3.1-vs2.3.3.2/mm/slab.c local_irq_restore(save_flags); ptr = cache_alloc_debugcheck_after(cachep, flags, ptr, caller); kmemleak_alloc_recursive(ptr, obj_size(cachep), 1, cachep->flags, -@@ -3678,6 +3682,7 @@ static inline void __cache_free(struct k +@@ -3730,6 +3734,7 @@ static inline void __cache_free(struct k check_irq_off(); kmemleak_free_recursive(objp, cachep->flags); objp = cache_free_debugcheck(cachep, objp, caller); @@ -24042,9 +24081,9 @@ diff -NurpP --minimal linux-3.3.1/mm/slab.c linux-3.3.1-vs2.3.3.2/mm/slab.c kmemcheck_slab_free(cachep, objp, obj_size(cachep)); -diff -NurpP --minimal linux-3.3.1/mm/slab_vs.h linux-3.3.1-vs2.3.3.2/mm/slab_vs.h ---- linux-3.3.1/mm/slab_vs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/mm/slab_vs.h 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/mm/slab_vs.h linux-3.4-vs2.3.3.4/mm/slab_vs.h +--- linux-3.4/mm/slab_vs.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/mm/slab_vs.h 2012-05-21 18:15:05.000000000 +0200 @@ -0,0 +1,29 @@ + +#include @@ -24075,9 +24114,9 @@ diff -NurpP --minimal linux-3.3.1/mm/slab_vs.h linux-3.3.1-vs2.3.3.2/mm/slab_vs. + atomic_sub(cachep->buffer_size, &vxi->cacct.slab[what]); +} + -diff -NurpP --minimal linux-3.3.1/mm/swapfile.c linux-3.3.1-vs2.3.3.2/mm/swapfile.c ---- linux-3.3.1/mm/swapfile.c 2012-04-03 03:01:26.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/mm/swapfile.c 2012-04-03 03:02:13.000000000 +0200 +diff -NurpP --minimal linux-3.4/mm/swapfile.c linux-3.4-vs2.3.3.4/mm/swapfile.c +--- linux-3.4/mm/swapfile.c 2012-05-21 18:07:35.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/mm/swapfile.c 2012-05-21 18:15:05.000000000 +0200 @@ -36,6 +36,7 @@ #include #include @@ -24086,7 +24125,7 @@ diff -NurpP --minimal linux-3.3.1/mm/swapfile.c linux-3.3.1-vs2.3.3.2/mm/swapfil static bool swap_count_continued(struct swap_info_struct *, pgoff_t, unsigned char); -@@ -1752,6 +1753,16 @@ static int swap_show(struct seq_file *sw +@@ -1754,6 +1755,16 @@ static int swap_show(struct seq_file *sw if (si == SEQ_START_TOKEN) { seq_puts(swap,"Filename\t\t\t\tType\t\tSize\tUsed\tPriority\n"); @@ -24103,7 +24142,7 @@ diff -NurpP --minimal linux-3.3.1/mm/swapfile.c linux-3.3.1-vs2.3.3.2/mm/swapfil return 0; } -@@ -2175,6 +2186,8 @@ void si_swapinfo(struct sysinfo *val) +@@ -2180,6 +2191,8 @@ void si_swapinfo(struct sysinfo *val) val->freeswap = nr_swap_pages + nr_to_be_unused; val->totalswap = total_swap_pages + nr_to_be_unused; spin_unlock(&swap_lock); @@ -24112,10 +24151,10 @@ diff -NurpP --minimal linux-3.3.1/mm/swapfile.c linux-3.3.1-vs2.3.3.2/mm/swapfil } /* -diff -NurpP --minimal linux-3.3.1/net/bridge/br_multicast.c linux-3.3.1-vs2.3.3.2/net/bridge/br_multicast.c ---- linux-3.3.1/net/bridge/br_multicast.c 2012-03-19 19:47:32.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/bridge/br_multicast.c 2012-03-19 20:53:28.000000000 +0100 -@@ -447,7 +447,7 @@ static struct sk_buff *br_ip6_multicast_ +diff -NurpP --minimal linux-3.4/net/bridge/br_multicast.c linux-3.4-vs2.3.3.4/net/bridge/br_multicast.c +--- linux-3.4/net/bridge/br_multicast.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/bridge/br_multicast.c 2012-05-21 18:15:05.000000000 +0200 +@@ -445,7 +445,7 @@ static struct sk_buff *br_ip6_multicast_ ip6h->hop_limit = 1; ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1)); if (ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0, @@ -24124,10 +24163,10 @@ diff -NurpP --minimal linux-3.3.1/net/bridge/br_multicast.c linux-3.3.1-vs2.3.3. kfree_skb(skb); return NULL; } -diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/dev.c ---- linux-3.3.1/net/core/dev.c 2012-04-03 03:01:26.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/net/core/dev.c 2012-04-03 03:02:13.000000000 +0200 -@@ -127,6 +127,7 @@ +diff -NurpP --minimal linux-3.4/net/core/dev.c linux-3.4-vs2.3.3.4/net/core/dev.c +--- linux-3.4/net/core/dev.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/core/dev.c 2012-05-21 18:15:05.000000000 +0200 +@@ -126,6 +126,7 @@ #include #include #include @@ -24135,7 +24174,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/ #include #include #include -@@ -622,7 +623,8 @@ struct net_device *__dev_get_by_name(str +@@ -621,7 +622,8 @@ struct net_device *__dev_get_by_name(str struct hlist_head *head = dev_name_hash(net, name); hlist_for_each_entry(dev, p, head, name_hlist) @@ -24145,7 +24184,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/ return dev; return NULL; -@@ -648,7 +650,8 @@ struct net_device *dev_get_by_name_rcu(s +@@ -647,7 +649,8 @@ struct net_device *dev_get_by_name_rcu(s struct hlist_head *head = dev_name_hash(net, name); hlist_for_each_entry_rcu(dev, p, head, name_hlist) @@ -24155,7 +24194,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/ return dev; return NULL; -@@ -699,7 +702,8 @@ struct net_device *__dev_get_by_index(st +@@ -698,7 +701,8 @@ struct net_device *__dev_get_by_index(st struct hlist_head *head = dev_index_hash(net, ifindex); hlist_for_each_entry(dev, p, head, index_hlist) @@ -24165,7 +24204,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/ return dev; return NULL; -@@ -717,7 +721,7 @@ EXPORT_SYMBOL(__dev_get_by_index); +@@ -716,7 +720,7 @@ EXPORT_SYMBOL(__dev_get_by_index); * about locking. The caller must hold RCU lock. */ @@ -24174,7 +24213,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/ { struct hlist_node *p; struct net_device *dev; -@@ -729,6 +733,16 @@ struct net_device *dev_get_by_index_rcu( +@@ -728,6 +732,16 @@ struct net_device *dev_get_by_index_rcu( return NULL; } @@ -24191,7 +24230,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/ EXPORT_SYMBOL(dev_get_by_index_rcu); -@@ -777,7 +791,8 @@ struct net_device *dev_getbyhwaddr_rcu(s +@@ -776,7 +790,8 @@ struct net_device *dev_getbyhwaddr_rcu(s for_each_netdev_rcu(net, dev) if (dev->type == type && @@ -24201,7 +24240,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/ return dev; return NULL; -@@ -789,9 +804,11 @@ struct net_device *__dev_getfirstbyhwtyp +@@ -788,9 +803,11 @@ struct net_device *__dev_getfirstbyhwtyp struct net_device *dev; ASSERT_RTNL(); @@ -24215,7 +24254,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/ return NULL; } -@@ -909,6 +926,8 @@ static int __dev_alloc_name(struct net * +@@ -908,6 +925,8 @@ static int __dev_alloc_name(struct net * continue; if (i < 0 || i >= max_netdevices) continue; @@ -24224,7 +24263,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/ /* avoid cases where sscanf is not exact inverse of printf */ snprintf(buf, IFNAMSIZ, name, i); -@@ -4009,6 +4028,8 @@ static int dev_ifconf(struct net *net, c +@@ -3994,6 +4013,8 @@ static int dev_ifconf(struct net *net, c total = 0; for_each_netdev(net, dev) { @@ -24233,7 +24272,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/ for (i = 0; i < NPROTO; i++) { if (gifconf_list[i]) { int done; -@@ -4137,6 +4158,10 @@ static void dev_seq_printf_stats(struct +@@ -4096,6 +4117,10 @@ static void dev_seq_printf_stats(struct struct rtnl_link_stats64 temp; const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp); @@ -24244,10 +24283,10 @@ diff -NurpP --minimal linux-3.3.1/net/core/dev.c linux-3.3.1-vs2.3.3.2/net/core/ seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu " "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n", dev->name, stats->rx_bytes, stats->rx_packets, -diff -NurpP --minimal linux-3.3.1/net/core/rtnetlink.c linux-3.3.1-vs2.3.3.2/net/core/rtnetlink.c ---- linux-3.3.1/net/core/rtnetlink.c 2012-04-03 03:01:26.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/net/core/rtnetlink.c 2012-04-03 03:02:13.000000000 +0200 -@@ -1073,6 +1073,8 @@ static int rtnl_dump_ifinfo(struct sk_bu +diff -NurpP --minimal linux-3.4/net/core/rtnetlink.c linux-3.4-vs2.3.3.4/net/core/rtnetlink.c +--- linux-3.4/net/core/rtnetlink.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/core/rtnetlink.c 2012-05-21 18:15:05.000000000 +0200 +@@ -1072,6 +1072,8 @@ static int rtnl_dump_ifinfo(struct sk_bu hlist_for_each_entry_rcu(dev, node, head, index_hlist) { if (idx < s_idx) goto cont; @@ -24256,7 +24295,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/rtnetlink.c linux-3.3.1-vs2.3.3.2/net if (rtnl_fill_ifinfo(skb, dev, RTM_NEWLINK, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq, 0, -@@ -1955,6 +1957,9 @@ void rtmsg_ifinfo(int type, struct net_d +@@ -1954,6 +1956,9 @@ void rtmsg_ifinfo(int type, struct net_d int err = -ENOBUFS; size_t if_info_size; @@ -24266,10 +24305,10 @@ diff -NurpP --minimal linux-3.3.1/net/core/rtnetlink.c linux-3.3.1-vs2.3.3.2/net skb = nlmsg_new((if_info_size = if_nlmsg_size(dev, 0)), GFP_KERNEL); if (skb == NULL) goto errout; -diff -NurpP --minimal linux-3.3.1/net/core/sock.c linux-3.3.1-vs2.3.3.2/net/core/sock.c ---- linux-3.3.1/net/core/sock.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/core/sock.c 2012-02-24 03:55:07.000000000 +0100 -@@ -130,6 +130,10 @@ +diff -NurpP --minimal linux-3.4/net/core/sock.c linux-3.4-vs2.3.3.4/net/core/sock.c +--- linux-3.4/net/core/sock.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/core/sock.c 2012-05-21 18:15:05.000000000 +0200 +@@ -129,6 +129,10 @@ #include #include @@ -24280,7 +24319,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/sock.c linux-3.3.1-vs2.3.3.2/net/core #include -@@ -1127,6 +1131,8 @@ static struct sock *sk_prot_alloc(struct +@@ -1146,6 +1150,8 @@ static struct sock *sk_prot_alloc(struct goto out_free_sec; sk_tx_queue_clear(sk); } @@ -24289,7 +24328,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/sock.c linux-3.3.1-vs2.3.3.2/net/core return sk; -@@ -1235,6 +1241,11 @@ static void __sk_free(struct sock *sk) +@@ -1254,6 +1260,11 @@ static void __sk_free(struct sock *sk) put_cred(sk->sk_peer_cred); put_pid(sk->sk_peer_pid); put_net(sock_net(sk)); @@ -24301,7 +24340,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/sock.c linux-3.3.1-vs2.3.3.2/net/core sk_prot_free(sk->sk_prot_creator, sk); } -@@ -1295,6 +1306,8 @@ struct sock *sk_clone_lock(const struct +@@ -1314,6 +1325,8 @@ struct sock *sk_clone_lock(const struct /* SANITY */ get_net(sock_net(newsk)); @@ -24310,7 +24349,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/sock.c linux-3.3.1-vs2.3.3.2/net/core sk_node_init(&newsk->sk_node); sock_lock_init(newsk); bh_lock_sock(newsk); -@@ -1351,6 +1364,12 @@ struct sock *sk_clone_lock(const struct +@@ -1370,6 +1383,12 @@ struct sock *sk_clone_lock(const struct smp_wmb(); atomic_set(&newsk->sk_refcnt, 2); @@ -24323,7 +24362,7 @@ diff -NurpP --minimal linux-3.3.1/net/core/sock.c linux-3.3.1-vs2.3.3.2/net/core /* * Increment the counter in the same struct proto as the master * sock (sk_refcnt_debug_inc uses newsk->sk_prot->socks, that -@@ -2102,6 +2121,12 @@ void sock_init_data(struct socket *sock, +@@ -2122,6 +2141,12 @@ void sock_init_data(struct socket *sock, sk->sk_stamp = ktime_set(-1L, 0); @@ -24336,10 +24375,10 @@ diff -NurpP --minimal linux-3.3.1/net/core/sock.c linux-3.3.1-vs2.3.3.2/net/core /* * Before updating sk_refcnt, we must commit prior changes to memory * (Documentation/RCU/rculist_nulls.txt for details) -diff -NurpP --minimal linux-3.3.1/net/ipv4/af_inet.c linux-3.3.1-vs2.3.3.2/net/ipv4/af_inet.c ---- linux-3.3.1/net/ipv4/af_inet.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/af_inet.c 2012-02-24 03:55:07.000000000 +0100 -@@ -117,6 +117,7 @@ +diff -NurpP --minimal linux-3.4/net/ipv4/af_inet.c linux-3.4-vs2.3.3.4/net/ipv4/af_inet.c +--- linux-3.4/net/ipv4/af_inet.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/af_inet.c 2012-05-21 18:15:05.000000000 +0200 +@@ -118,6 +118,7 @@ #ifdef CONFIG_IP_MROUTE #include #endif @@ -24347,7 +24386,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/af_inet.c linux-3.3.1-vs2.3.3.2/net/i /* The inetsw table contains everything that inet_create needs to -@@ -326,9 +327,13 @@ lookup_protocol: +@@ -327,9 +328,13 @@ lookup_protocol: } err = -EPERM; @@ -24362,7 +24401,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/af_inet.c linux-3.3.1-vs2.3.3.2/net/i err = -EAFNOSUPPORT; if (!inet_netns_ok(net, protocol)) goto out_rcu_unlock; -@@ -452,6 +457,7 @@ int inet_bind(struct socket *sock, struc +@@ -454,6 +459,7 @@ int inet_bind(struct socket *sock, struc struct sockaddr_in *addr = (struct sockaddr_in *)uaddr; struct sock *sk = sock->sk; struct inet_sock *inet = inet_sk(sk); @@ -24370,7 +24409,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/af_inet.c linux-3.3.1-vs2.3.3.2/net/i unsigned short snum; int chk_addr_ret; int err; -@@ -475,7 +481,11 @@ int inet_bind(struct socket *sock, struc +@@ -477,7 +483,11 @@ int inet_bind(struct socket *sock, struc goto out; } @@ -24383,7 +24422,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/af_inet.c linux-3.3.1-vs2.3.3.2/net/i /* Not specified by any standard per-se, however it breaks too * many applications when removed. It is unfortunate since -@@ -487,7 +497,7 @@ int inet_bind(struct socket *sock, struc +@@ -489,7 +499,7 @@ int inet_bind(struct socket *sock, struc err = -EADDRNOTAVAIL; if (!sysctl_ip_nonlocal_bind && !(inet->freebind || inet->transparent) && @@ -24392,7 +24431,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/af_inet.c linux-3.3.1-vs2.3.3.2/net/i chk_addr_ret != RTN_LOCAL && chk_addr_ret != RTN_MULTICAST && chk_addr_ret != RTN_BROADCAST) -@@ -512,7 +522,7 @@ int inet_bind(struct socket *sock, struc +@@ -514,7 +524,7 @@ int inet_bind(struct socket *sock, struc if (sk->sk_state != TCP_CLOSE || inet->inet_num) goto out_release_sock; @@ -24401,7 +24440,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/af_inet.c linux-3.3.1-vs2.3.3.2/net/i if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST) inet->inet_saddr = 0; /* Use device */ -@@ -715,11 +725,13 @@ int inet_getname(struct socket *sock, st +@@ -717,11 +727,13 @@ int inet_getname(struct socket *sock, st peer == 1)) return -ENOTCONN; sin->sin_port = inet->inet_dport; @@ -24416,10 +24455,10 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/af_inet.c linux-3.3.1-vs2.3.3.2/net/i sin->sin_port = inet->inet_sport; sin->sin_addr.s_addr = addr; } -diff -NurpP --minimal linux-3.3.1/net/ipv4/arp.c linux-3.3.1-vs2.3.3.2/net/ipv4/arp.c ---- linux-3.3.1/net/ipv4/arp.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/arp.c 2012-02-24 03:55:07.000000000 +0100 -@@ -1329,6 +1329,7 @@ static void arp_format_neigh_entry(struc +diff -NurpP --minimal linux-3.4/net/ipv4/arp.c linux-3.4-vs2.3.3.4/net/ipv4/arp.c +--- linux-3.4/net/ipv4/arp.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/arp.c 2012-05-21 18:15:05.000000000 +0200 +@@ -1328,6 +1328,7 @@ static void arp_format_neigh_entry(struc struct net_device *dev = n->dev; int hatype = dev->type; @@ -24427,7 +24466,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/arp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ read_lock(&n->lock); /* Convert hardware address to XX:XX:XX:XX ... form. */ #if IS_ENABLED(CONFIG_AX25) -@@ -1360,6 +1361,7 @@ static void arp_format_pneigh_entry(stru +@@ -1359,6 +1360,7 @@ static void arp_format_pneigh_entry(stru int hatype = dev ? dev->type : 0; char tbuf[16]; @@ -24435,10 +24474,10 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/arp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ sprintf(tbuf, "%pI4", n->key); seq_printf(seq, "%-16s 0x%-10x0x%-10x%s * %s\n", tbuf, hatype, ATF_PUBL | ATF_PERM, "00:00:00:00:00:00", -diff -NurpP --minimal linux-3.3.1/net/ipv4/devinet.c linux-3.3.1-vs2.3.3.2/net/ipv4/devinet.c ---- linux-3.3.1/net/ipv4/devinet.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/devinet.c 2012-02-24 03:55:07.000000000 +0100 -@@ -518,6 +518,7 @@ struct in_device *inetdev_by_index(struc +diff -NurpP --minimal linux-3.4/net/ipv4/devinet.c linux-3.4-vs2.3.3.4/net/ipv4/devinet.c +--- linux-3.4/net/ipv4/devinet.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/devinet.c 2012-05-21 18:15:05.000000000 +0200 +@@ -517,6 +517,7 @@ struct in_device *inetdev_by_index(struc } EXPORT_SYMBOL(inetdev_by_index); @@ -24446,7 +24485,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/devinet.c linux-3.3.1-vs2.3.3.2/net/i /* Called only from RTNL semaphored context. No locks. */ struct in_ifaddr *inet_ifa_byprefix(struct in_device *in_dev, __be32 prefix, -@@ -759,6 +760,8 @@ int devinet_ioctl(struct net *net, unsig +@@ -758,6 +759,8 @@ int devinet_ioctl(struct net *net, unsig in_dev = __in_dev_get_rtnl(dev); if (in_dev) { @@ -24455,7 +24494,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/devinet.c linux-3.3.1-vs2.3.3.2/net/i if (tryaddrmatch) { /* Matthias Andree */ /* compare label and address (4.4BSD style) */ -@@ -767,6 +770,8 @@ int devinet_ioctl(struct net *net, unsig +@@ -766,6 +769,8 @@ int devinet_ioctl(struct net *net, unsig This is checked above. */ for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL; ifap = &ifa->ifa_next) { @@ -24464,7 +24503,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/devinet.c linux-3.3.1-vs2.3.3.2/net/i if (!strcmp(ifr.ifr_name, ifa->ifa_label) && sin_orig.sin_addr.s_addr == ifa->ifa_local) { -@@ -779,9 +784,12 @@ int devinet_ioctl(struct net *net, unsig +@@ -778,9 +783,12 @@ int devinet_ioctl(struct net *net, unsig comparing just the label */ if (!ifa) { for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL; @@ -24478,7 +24517,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/devinet.c linux-3.3.1-vs2.3.3.2/net/i } } -@@ -934,6 +942,8 @@ static int inet_gifconf(struct net_devic +@@ -933,6 +941,8 @@ static int inet_gifconf(struct net_devic goto out; for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) { @@ -24504,9 +24543,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/devinet.c linux-3.3.1-vs2.3.3.2/net/i if (ip_idx < s_ip_idx) continue; if (inet_fill_ifaddr(skb, ifa, -diff -NurpP --minimal linux-3.3.1/net/ipv4/fib_trie.c linux-3.3.1-vs2.3.3.2/net/ipv4/fib_trie.c ---- linux-3.3.1/net/ipv4/fib_trie.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/fib_trie.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv4/fib_trie.c linux-3.4-vs2.3.3.4/net/ipv4/fib_trie.c +--- linux-3.4/net/ipv4/fib_trie.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/fib_trie.c 2012-05-21 18:15:05.000000000 +0200 @@ -2556,6 +2556,7 @@ static int fib_route_seq_show(struct seq || fa->fa_type == RTN_MULTICAST) continue; @@ -24515,9 +24554,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/fib_trie.c linux-3.3.1-vs2.3.3.2/net/ if (fi) seq_printf(seq, "%s\t%08X\t%08X\t%04X\t%d\t%u\t" -diff -NurpP --minimal linux-3.3.1/net/ipv4/inet_connection_sock.c linux-3.3.1-vs2.3.3.2/net/ipv4/inet_connection_sock.c ---- linux-3.3.1/net/ipv4/inet_connection_sock.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/inet_connection_sock.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv4/inet_connection_sock.c linux-3.4-vs2.3.3.4/net/ipv4/inet_connection_sock.c +--- linux-3.4/net/ipv4/inet_connection_sock.c 2012-03-19 19:47:33.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/net/ipv4/inet_connection_sock.c 2012-05-21 18:15:05.000000000 +0200 @@ -52,6 +52,37 @@ void inet_get_local_port_range(int *low, } EXPORT_SYMBOL(inet_get_local_port_range); @@ -24567,9 +24606,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/inet_connection_sock.c linux-3.3.1-vs break; } } -diff -NurpP --minimal linux-3.3.1/net/ipv4/inet_diag.c linux-3.3.1-vs2.3.3.2/net/ipv4/inet_diag.c ---- linux-3.3.1/net/ipv4/inet_diag.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/inet_diag.c 2012-02-24 04:26:38.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv4/inet_diag.c linux-3.4-vs2.3.3.4/net/ipv4/inet_diag.c +--- linux-3.4/net/ipv4/inet_diag.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/inet_diag.c 2012-05-21 18:15:05.000000000 +0200 @@ -31,6 +31,8 @@ #include @@ -24680,9 +24719,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/inet_diag.c linux-3.3.1-vs2.3.3.2/net if (num < s_num) goto next_dying; if (r->sdiag_family != AF_UNSPEC && -diff -NurpP --minimal linux-3.3.1/net/ipv4/inet_hashtables.c linux-3.3.1-vs2.3.3.2/net/ipv4/inet_hashtables.c ---- linux-3.3.1/net/ipv4/inet_hashtables.c 2011-10-24 18:45:34.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/inet_hashtables.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv4/inet_hashtables.c linux-3.4-vs2.3.3.4/net/ipv4/inet_hashtables.c +--- linux-3.4/net/ipv4/inet_hashtables.c 2011-10-24 18:45:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/inet_hashtables.c 2012-05-21 18:15:05.000000000 +0200 @@ -22,6 +22,7 @@ #include #include @@ -24719,9 +24758,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/inet_hashtables.c linux-3.3.1-vs2.3.3 /* * if the nulls value we got at the end of this lookup is * not the expected one, we must restart lookup. -diff -NurpP --minimal linux-3.3.1/net/ipv4/netfilter/nf_nat_helper.c linux-3.3.1-vs2.3.3.2/net/ipv4/netfilter/nf_nat_helper.c ---- linux-3.3.1/net/ipv4/netfilter/nf_nat_helper.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/netfilter/nf_nat_helper.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv4/netfilter/nf_nat_helper.c linux-3.4-vs2.3.3.4/net/ipv4/netfilter/nf_nat_helper.c +--- linux-3.4/net/ipv4/netfilter/nf_nat_helper.c 2012-03-19 19:47:33.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/net/ipv4/netfilter/nf_nat_helper.c 2012-05-21 18:15:05.000000000 +0200 @@ -20,6 +20,7 @@ #include @@ -24730,9 +24769,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/netfilter/nf_nat_helper.c linux-3.3.1 #include #include #include -diff -NurpP --minimal linux-3.3.1/net/ipv4/netfilter.c linux-3.3.1-vs2.3.3.2/net/ipv4/netfilter.c ---- linux-3.3.1/net/ipv4/netfilter.c 2012-01-09 16:15:03.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/netfilter.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv4/netfilter.c linux-3.4-vs2.3.3.4/net/ipv4/netfilter.c +--- linux-3.4/net/ipv4/netfilter.c 2012-01-09 16:15:03.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/net/ipv4/netfilter.c 2012-05-21 18:15:05.000000000 +0200 @@ -6,7 +6,7 @@ #include #include @@ -24742,9 +24781,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/netfilter.c linux-3.3.1-vs2.3.3.2/net #include #include #include -diff -NurpP --minimal linux-3.3.1/net/ipv4/raw.c linux-3.3.1-vs2.3.3.2/net/ipv4/raw.c ---- linux-3.3.1/net/ipv4/raw.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/raw.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv4/raw.c linux-3.4-vs2.3.3.4/net/ipv4/raw.c +--- linux-3.4/net/ipv4/raw.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/raw.c 2012-05-21 18:15:05.000000000 +0200 @@ -118,7 +118,7 @@ static struct sock *__raw_v4_lookup(stru if (net_eq(sock_net(sk), net) && inet->inet_num == num && @@ -24767,7 +24806,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/raw.c linux-3.3.1-vs2.3.3.2/net/ipv4/ err = NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT, skb, NULL, rt->dst.dev, dst_output); if (err > 0) -@@ -577,6 +583,16 @@ static int raw_sendmsg(struct kiocb *ioc +@@ -575,6 +581,16 @@ static int raw_sendmsg(struct kiocb *ioc goto done; } @@ -24784,7 +24823,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/raw.c linux-3.3.1-vs2.3.3.2/net/ipv4/ security_sk_classify_flow(sk, flowi4_to_flowi(&fl4)); rt = ip_route_output_flow(sock_net(sk), &fl4, sk); if (IS_ERR(rt)) { -@@ -653,17 +669,19 @@ static int raw_bind(struct sock *sk, str +@@ -651,17 +667,19 @@ static int raw_bind(struct sock *sk, str { struct inet_sock *inet = inet_sk(sk); struct sockaddr_in *addr = (struct sockaddr_in *) uaddr; @@ -24807,7 +24846,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/raw.c linux-3.3.1-vs2.3.3.2/net/ipv4/ if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST) inet->inet_saddr = 0; /* Use device */ sk_dst_reset(sk); -@@ -715,7 +733,8 @@ static int raw_recvmsg(struct kiocb *ioc +@@ -713,7 +731,8 @@ static int raw_recvmsg(struct kiocb *ioc /* Copy the address. */ if (sin) { sin->sin_family = AF_INET; @@ -24817,7 +24856,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/raw.c linux-3.3.1-vs2.3.3.2/net/ipv4/ sin->sin_port = 0; memset(&sin->sin_zero, 0, sizeof(sin->sin_zero)); } -@@ -911,7 +930,8 @@ static struct sock *raw_get_first(struct +@@ -909,7 +928,8 @@ static struct sock *raw_get_first(struct struct hlist_node *node; sk_for_each(sk, node, &state->h->ht[state->bucket]) @@ -24827,7 +24866,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/raw.c linux-3.3.1-vs2.3.3.2/net/ipv4/ goto found; } sk = NULL; -@@ -927,7 +947,8 @@ static struct sock *raw_get_next(struct +@@ -925,7 +945,8 @@ static struct sock *raw_get_next(struct sk = sk_next(sk); try_again: ; @@ -24837,10 +24876,10 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/raw.c linux-3.3.1-vs2.3.3.2/net/ipv4/ if (!sk && ++state->bucket < RAW_HTABLE_SIZE) { sk = sk_head(&state->h->ht[state->bucket]); -diff -NurpP --minimal linux-3.3.1/net/ipv4/route.c linux-3.3.1-vs2.3.3.2/net/ipv4/route.c ---- linux-3.3.1/net/ipv4/route.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/route.c 2012-03-19 20:52:10.000000000 +0100 -@@ -2697,7 +2697,7 @@ static struct rtable *ip_route_output_sl +diff -NurpP --minimal linux-3.4/net/ipv4/route.c linux-3.4-vs2.3.3.4/net/ipv4/route.c +--- linux-3.4/net/ipv4/route.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/route.c 2012-05-21 18:15:05.000000000 +0200 +@@ -2696,7 +2696,7 @@ static struct rtable *ip_route_output_sl if (fl4->flowi4_oif) { @@ -24849,10 +24888,10 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/route.c linux-3.3.1-vs2.3.3.2/net/ipv rth = ERR_PTR(-ENODEV); if (dev_out == NULL) goto out; -diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp.c linux-3.3.1-vs2.3.3.2/net/ipv4/tcp.c ---- linux-3.3.1/net/ipv4/tcp.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/tcp.c 2012-03-19 20:52:10.000000000 +0100 -@@ -266,6 +266,7 @@ +diff -NurpP --minimal linux-3.4/net/ipv4/tcp.c linux-3.4-vs2.3.3.4/net/ipv4/tcp.c +--- linux-3.4/net/ipv4/tcp.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/tcp.c 2012-05-21 18:15:05.000000000 +0200 +@@ -268,6 +268,7 @@ #include #include #include @@ -24860,10 +24899,10 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ #include #include -diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_ipv4.c linux-3.3.1-vs2.3.3.2/net/ipv4/tcp_ipv4.c ---- linux-3.3.1/net/ipv4/tcp_ipv4.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/tcp_ipv4.c 2012-03-19 20:52:10.000000000 +0100 -@@ -2036,6 +2036,12 @@ static void *listening_get_next(struct s +diff -NurpP --minimal linux-3.4/net/ipv4/tcp_ipv4.c linux-3.4-vs2.3.3.4/net/ipv4/tcp_ipv4.c +--- linux-3.4/net/ipv4/tcp_ipv4.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/tcp_ipv4.c 2012-05-21 18:15:05.000000000 +0200 +@@ -2038,6 +2038,12 @@ static void *listening_get_next(struct s req = req->dl_next; while (1) { while (req) { @@ -24876,7 +24915,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_ipv4.c linux-3.3.1-vs2.3.3.2/net/ if (req->rsk_ops->family == st->family) { cur = req; goto out; -@@ -2060,6 +2066,10 @@ get_req: +@@ -2062,6 +2068,10 @@ get_req: } get_sk: sk_nulls_for_each_from(sk, node) { @@ -24887,7 +24926,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_ipv4.c linux-3.3.1-vs2.3.3.2/net/ if (!net_eq(sock_net(sk), net)) continue; if (sk->sk_family == st->family) { -@@ -2136,6 +2146,11 @@ static void *established_get_first(struc +@@ -2138,6 +2148,11 @@ static void *established_get_first(struc spin_lock_bh(lock); sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[st->bucket].chain) { @@ -24899,7 +24938,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_ipv4.c linux-3.3.1-vs2.3.3.2/net/ if (sk->sk_family != st->family || !net_eq(sock_net(sk), net)) { continue; -@@ -2146,6 +2161,11 @@ static void *established_get_first(struc +@@ -2148,6 +2163,11 @@ static void *established_get_first(struc st->state = TCP_SEQ_STATE_TIME_WAIT; inet_twsk_for_each(tw, node, &tcp_hashinfo.ehash[st->bucket].twchain) { @@ -24911,7 +24950,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_ipv4.c linux-3.3.1-vs2.3.3.2/net/ if (tw->tw_family != st->family || !net_eq(twsk_net(tw), net)) { continue; -@@ -2175,7 +2195,9 @@ static void *established_get_next(struct +@@ -2177,7 +2197,9 @@ static void *established_get_next(struct tw = cur; tw = tw_next(tw); get_tw: @@ -24922,7 +24961,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_ipv4.c linux-3.3.1-vs2.3.3.2/net/ tw = tw_next(tw); } if (tw) { -@@ -2199,6 +2221,11 @@ get_tw: +@@ -2201,6 +2223,11 @@ get_tw: sk = sk_nulls_next(sk); sk_nulls_for_each_from(sk, node) { @@ -24934,7 +24973,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_ipv4.c linux-3.3.1-vs2.3.3.2/net/ if (sk->sk_family == st->family && net_eq(sock_net(sk), net)) goto found; } -@@ -2404,9 +2431,9 @@ static void get_openreq4(const struct so +@@ -2406,9 +2433,9 @@ static void get_openreq4(const struct so seq_printf(f, "%4d: %08X:%04X %08X:%04X" " %02X %08X:%08X %02X:%08lX %08X %5d %8d %u %d %pK%n", i, @@ -24946,7 +24985,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_ipv4.c linux-3.3.1-vs2.3.3.2/net/ ntohs(ireq->rmt_port), TCP_SYN_RECV, 0, 0, /* could print option size, but that is af dependent. */ -@@ -2428,8 +2455,8 @@ static void get_tcp4_sock(struct sock *s +@@ -2430,8 +2457,8 @@ static void get_tcp4_sock(struct sock *s const struct tcp_sock *tp = tcp_sk(sk); const struct inet_connection_sock *icsk = inet_csk(sk); const struct inet_sock *inet = inet_sk(sk); @@ -24957,7 +24996,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_ipv4.c linux-3.3.1-vs2.3.3.2/net/ __u16 destp = ntohs(inet->inet_dport); __u16 srcp = ntohs(inet->inet_sport); int rx_queue; -@@ -2486,8 +2513,8 @@ static void get_timewait4_sock(const str +@@ -2488,8 +2515,8 @@ static void get_timewait4_sock(const str if (ttd < 0) ttd = 0; @@ -24968,9 +25007,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_ipv4.c linux-3.3.1-vs2.3.3.2/net/ destp = ntohs(tw->tw_dport); srcp = ntohs(tw->tw_sport); -diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_minisocks.c linux-3.3.1-vs2.3.3.2/net/ipv4/tcp_minisocks.c ---- linux-3.3.1/net/ipv4/tcp_minisocks.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/tcp_minisocks.c 2012-02-24 04:25:11.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv4/tcp_minisocks.c linux-3.4-vs2.3.3.4/net/ipv4/tcp_minisocks.c +--- linux-3.4/net/ipv4/tcp_minisocks.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/tcp_minisocks.c 2012-05-21 18:15:05.000000000 +0200 @@ -23,6 +23,9 @@ #include #include @@ -24993,10 +25032,10 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/tcp_minisocks.c linux-3.3.1-vs2.3.3.2 #if IS_ENABLED(CONFIG_IPV6) if (tw->tw_family == PF_INET6) { struct ipv6_pinfo *np = inet6_sk(sk); -diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/udp.c ---- linux-3.3.1/net/ipv4/udp.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv4/udp.c 2012-02-24 03:55:07.000000000 +0100 -@@ -297,14 +297,7 @@ fail: +diff -NurpP --minimal linux-3.4/net/ipv4/udp.c linux-3.4-vs2.3.3.4/net/ipv4/udp.c +--- linux-3.4/net/ipv4/udp.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv4/udp.c 2012-05-21 18:15:05.000000000 +0200 +@@ -298,14 +298,7 @@ fail: } EXPORT_SYMBOL(udp_lib_get_port); @@ -25012,7 +25051,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ static unsigned int udp4_portaddr_hash(struct net *net, __be32 saddr, unsigned int port) -@@ -339,6 +332,11 @@ static inline int compute_score(struct s +@@ -340,6 +333,11 @@ static inline int compute_score(struct s if (inet->inet_rcv_saddr != daddr) return -1; score += 2; @@ -25024,7 +25063,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ } if (inet->inet_daddr) { if (inet->inet_daddr != saddr) -@@ -442,6 +440,7 @@ exact_match: +@@ -443,6 +441,7 @@ exact_match: return result; } @@ -25032,7 +25071,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ /* UDP is nearly always wildcards out the wazoo, it makes no sense to try * harder than this. -DaveM */ -@@ -487,6 +486,11 @@ begin: +@@ -488,6 +487,11 @@ begin: sk_nulls_for_each_rcu(sk, node, &hslot->head) { score = compute_score(sk, net, saddr, hnum, sport, daddr, dport, dif); @@ -25044,7 +25083,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ if (score > badness) { result = sk; badness = score; -@@ -500,6 +504,7 @@ begin: +@@ -501,6 +505,7 @@ begin: if (get_nulls_value(node) != slot) goto begin; @@ -25052,7 +25091,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ if (result) { if (unlikely(!atomic_inc_not_zero_hint(&result->sk_refcnt, 2))) result = NULL; -@@ -509,6 +514,7 @@ begin: +@@ -510,6 +515,7 @@ begin: goto begin; } } @@ -25060,7 +25099,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ rcu_read_unlock(); return result; } -@@ -552,8 +558,7 @@ static inline struct sock *udp_v4_mcast_ +@@ -553,8 +559,7 @@ static inline struct sock *udp_v4_mcast_ udp_sk(s)->udp_port_hash != hnum || (inet->inet_daddr && inet->inet_daddr != rmt_addr) || (inet->inet_dport != rmt_port && inet->inet_dport) || @@ -25070,7 +25109,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ ipv6_only_sock(s) || (s->sk_bound_dev_if && s->sk_bound_dev_if != dif)) continue; -@@ -931,6 +936,16 @@ int udp_sendmsg(struct kiocb *iocb, stru +@@ -933,6 +938,16 @@ int udp_sendmsg(struct kiocb *iocb, stru inet_sk_flowi_flags(sk)|FLOWI_FLAG_CAN_SLEEP, faddr, saddr, dport, inet->inet_sport); @@ -25087,7 +25126,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ security_sk_classify_flow(sk, flowi4_to_flowi(fl4)); rt = ip_route_output_flow(net, fl4, sk); if (IS_ERR(rt)) { -@@ -1229,7 +1244,8 @@ try_again: +@@ -1231,7 +1246,8 @@ try_again: if (sin) { sin->sin_family = AF_INET; sin->sin_port = udp_hdr(skb)->source; @@ -25097,7 +25136,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ memset(sin->sin_zero, 0, sizeof(sin->sin_zero)); } if (inet->cmsg_flags) -@@ -1976,6 +1992,8 @@ static struct sock *udp_get_first(struct +@@ -1970,6 +1986,8 @@ static struct sock *udp_get_first(struct sk_nulls_for_each(sk, node, &hslot->head) { if (!net_eq(sock_net(sk), net)) continue; @@ -25106,7 +25145,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ if (sk->sk_family == state->family) goto found; } -@@ -1993,7 +2011,9 @@ static struct sock *udp_get_next(struct +@@ -1987,7 +2005,9 @@ static struct sock *udp_get_next(struct do { sk = sk_nulls_next(sk); @@ -25117,9 +25156,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv4/udp.c linux-3.3.1-vs2.3.3.2/net/ipv4/ if (!sk) { if (state->bucket <= state->udp_table->mask) -diff -NurpP --minimal linux-3.3.1/net/ipv6/Kconfig linux-3.3.1-vs2.3.3.2/net/ipv6/Kconfig ---- linux-3.3.1/net/ipv6/Kconfig 2010-08-02 16:52:59.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/Kconfig 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv6/Kconfig linux-3.4-vs2.3.3.4/net/ipv6/Kconfig +--- linux-3.4/net/ipv6/Kconfig 2010-08-02 16:52:59.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv6/Kconfig 2012-05-21 18:15:05.000000000 +0200 @@ -4,8 +4,8 @@ # IPv6 as module will cause a CRASH if you try to unload it @@ -25131,9 +25170,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/Kconfig linux-3.3.1-vs2.3.3.2/net/ipv ---help--- This is complemental support for the IP version 6. You will still be able to do traditional IPv4 networking as well. -diff -NurpP --minimal linux-3.3.1/net/ipv6/addrconf.c linux-3.3.1-vs2.3.3.2/net/ipv6/addrconf.c ---- linux-3.3.1/net/ipv6/addrconf.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/addrconf.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv6/addrconf.c linux-3.4-vs2.3.3.4/net/ipv6/addrconf.c +--- linux-3.4/net/ipv6/addrconf.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv6/addrconf.c 2012-05-21 18:15:05.000000000 +0200 @@ -88,6 +88,8 @@ #include #include @@ -25143,7 +25182,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/addrconf.c linux-3.3.1-vs2.3.3.2/net/ /* Set to 3 to get tracing... */ #define ACONF_DEBUG 2 -@@ -1105,7 +1107,7 @@ out: +@@ -1104,7 +1106,7 @@ out: int ipv6_dev_get_saddr(struct net *net, struct net_device *dst_dev, const struct in6_addr *daddr, unsigned int prefs, @@ -25152,7 +25191,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/addrconf.c linux-3.3.1-vs2.3.3.2/net/ { struct ipv6_saddr_score scores[2], *score = &scores[0], *hiscore = &scores[1]; -@@ -1177,6 +1179,8 @@ int ipv6_dev_get_saddr(struct net *net, +@@ -1176,6 +1178,8 @@ int ipv6_dev_get_saddr(struct net *net, dev->name); continue; } @@ -25161,7 +25200,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/addrconf.c linux-3.3.1-vs2.3.3.2/net/ score->rule = -1; bitmap_zero(score->scorebits, IPV6_SADDR_RULE_MAX); -@@ -3162,7 +3166,10 @@ static void if6_seq_stop(struct seq_file +@@ -3159,7 +3163,10 @@ static void if6_seq_stop(struct seq_file static int if6_seq_show(struct seq_file *seq, void *v) { struct inet6_ifaddr *ifp = (struct inet6_ifaddr *)v; @@ -25173,7 +25212,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/addrconf.c linux-3.3.1-vs2.3.3.2/net/ &ifp->addr, ifp->idev->dev->ifindex, ifp->prefix_len, -@@ -3668,6 +3675,11 @@ static int in6_dump_addrs(struct inet6_d +@@ -3665,6 +3672,11 @@ static int in6_dump_addrs(struct inet6_d struct ifacaddr6 *ifaca; int err = 1; int ip_idx = *p_ip_idx; @@ -25185,7 +25224,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/addrconf.c linux-3.3.1-vs2.3.3.2/net/ read_lock_bh(&idev->lock); switch (type) { -@@ -3678,6 +3690,8 @@ static int in6_dump_addrs(struct inet6_d +@@ -3675,6 +3687,8 @@ static int in6_dump_addrs(struct inet6_d list_for_each_entry(ifa, &idev->addr_list, if_list) { if (++ip_idx < s_ip_idx) continue; @@ -25194,7 +25233,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/addrconf.c linux-3.3.1-vs2.3.3.2/net/ err = inet6_fill_ifaddr(skb, ifa, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq, -@@ -3694,6 +3708,8 @@ static int in6_dump_addrs(struct inet6_d +@@ -3691,6 +3705,8 @@ static int in6_dump_addrs(struct inet6_d ifmca = ifmca->next, ip_idx++) { if (ip_idx < s_ip_idx) continue; @@ -25203,7 +25242,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/addrconf.c linux-3.3.1-vs2.3.3.2/net/ err = inet6_fill_ifmcaddr(skb, ifmca, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq, -@@ -3709,6 +3725,8 @@ static int in6_dump_addrs(struct inet6_d +@@ -3706,6 +3722,8 @@ static int in6_dump_addrs(struct inet6_d ifaca = ifaca->aca_next, ip_idx++) { if (ip_idx < s_ip_idx) continue; @@ -25212,7 +25251,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/addrconf.c linux-3.3.1-vs2.3.3.2/net/ err = inet6_fill_ifacaddr(skb, ifaca, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq, -@@ -4094,6 +4112,11 @@ static int inet6_dump_ifinfo(struct sk_b +@@ -4091,6 +4109,11 @@ static int inet6_dump_ifinfo(struct sk_b struct inet6_dev *idev; struct hlist_head *head; struct hlist_node *node; @@ -25224,7 +25263,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/addrconf.c linux-3.3.1-vs2.3.3.2/net/ s_h = cb->args[0]; s_idx = cb->args[1]; -@@ -4105,6 +4128,8 @@ static int inet6_dump_ifinfo(struct sk_b +@@ -4102,6 +4125,8 @@ static int inet6_dump_ifinfo(struct sk_b hlist_for_each_entry_rcu(dev, node, head, index_hlist) { if (idx < s_idx) goto cont; @@ -25233,9 +25272,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/addrconf.c linux-3.3.1-vs2.3.3.2/net/ idev = __in6_dev_get(dev); if (!idev) goto cont; -diff -NurpP --minimal linux-3.3.1/net/ipv6/af_inet6.c linux-3.3.1-vs2.3.3.2/net/ipv6/af_inet6.c ---- linux-3.3.1/net/ipv6/af_inet6.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/af_inet6.c 2012-02-24 04:23:27.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv6/af_inet6.c linux-3.4-vs2.3.3.4/net/ipv6/af_inet6.c +--- linux-3.4/net/ipv6/af_inet6.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv6/af_inet6.c 2012-05-21 18:15:05.000000000 +0200 @@ -42,6 +42,8 @@ #include #include @@ -25245,7 +25284,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/af_inet6.c linux-3.3.1-vs2.3.3.2/net/ #include #include -@@ -160,9 +162,12 @@ lookup_protocol: +@@ -159,9 +161,12 @@ lookup_protocol: } err = -EPERM; @@ -25331,9 +25370,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/af_inet6.c linux-3.3.1-vs2.3.3.2/net/ if (ipv6_addr_any(&np->rcv_saddr)) sin->sin6_addr = np->saddr; else -diff -NurpP --minimal linux-3.3.1/net/ipv6/datagram.c linux-3.3.1-vs2.3.3.2/net/ipv6/datagram.c ---- linux-3.3.1/net/ipv6/datagram.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/datagram.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv6/datagram.c linux-3.4-vs2.3.3.4/net/ipv6/datagram.c +--- linux-3.4/net/ipv6/datagram.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv6/datagram.c 2012-05-21 18:15:05.000000000 +0200 @@ -642,7 +642,7 @@ int datagram_send_ctl(struct net *net, s rcu_read_lock(); @@ -25343,9 +25382,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/datagram.c linux-3.3.1-vs2.3.3.2/net/ if (!dev) { rcu_read_unlock(); return -ENODEV; -diff -NurpP --minimal linux-3.3.1/net/ipv6/fib6_rules.c linux-3.3.1-vs2.3.3.2/net/ipv6/fib6_rules.c ---- linux-3.3.1/net/ipv6/fib6_rules.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/fib6_rules.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv6/fib6_rules.c linux-3.4-vs2.3.3.4/net/ipv6/fib6_rules.c +--- linux-3.4/net/ipv6/fib6_rules.c 2012-03-19 19:47:33.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/net/ipv6/fib6_rules.c 2012-05-21 18:15:05.000000000 +0200 @@ -91,7 +91,7 @@ static int fib6_rule_action(struct fib_r ip6_dst_idev(&rt->dst)->dev, &flp6->daddr, @@ -25355,9 +25394,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/fib6_rules.c linux-3.3.1-vs2.3.3.2/ne goto again; if (!ipv6_prefix_equal(&saddr, &r->src.addr, r->src.plen)) -diff -NurpP --minimal linux-3.3.1/net/ipv6/inet6_hashtables.c linux-3.3.1-vs2.3.3.2/net/ipv6/inet6_hashtables.c ---- linux-3.3.1/net/ipv6/inet6_hashtables.c 2011-10-24 18:45:34.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/inet6_hashtables.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv6/inet6_hashtables.c linux-3.4-vs2.3.3.4/net/ipv6/inet6_hashtables.c +--- linux-3.4/net/ipv6/inet6_hashtables.c 2011-10-24 18:45:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv6/inet6_hashtables.c 2012-05-21 18:15:05.000000000 +0200 @@ -16,6 +16,7 @@ #include @@ -25393,10 +25432,10 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/inet6_hashtables.c linux-3.3.1-vs2.3. } if (sk->sk_bound_dev_if) { if (sk->sk_bound_dev_if != dif) -diff -NurpP --minimal linux-3.3.1/net/ipv6/ip6_output.c linux-3.3.1-vs2.3.3.2/net/ipv6/ip6_output.c ---- linux-3.3.1/net/ipv6/ip6_output.c 2012-04-03 03:01:26.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/ip6_output.c 2012-04-03 03:02:13.000000000 +0200 -@@ -968,7 +968,8 @@ static int ip6_dst_lookup_tail(struct so +diff -NurpP --minimal linux-3.4/net/ipv6/ip6_output.c linux-3.4-vs2.3.3.4/net/ipv6/ip6_output.c +--- linux-3.4/net/ipv6/ip6_output.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv6/ip6_output.c 2012-05-21 18:15:05.000000000 +0200 +@@ -966,7 +966,8 @@ static int ip6_dst_lookup_tail(struct so struct rt6_info *rt = (struct rt6_info *) *dst; err = ip6_route_get_saddr(net, rt, &fl6->daddr, sk ? inet6_sk(sk)->srcprefs : 0, @@ -25406,9 +25445,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/ip6_output.c linux-3.3.1-vs2.3.3.2/ne if (err) goto out_err_release; } -diff -NurpP --minimal linux-3.3.1/net/ipv6/ndisc.c linux-3.3.1-vs2.3.3.2/net/ipv6/ndisc.c ---- linux-3.3.1/net/ipv6/ndisc.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/ndisc.c 2012-03-19 20:52:10.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv6/ndisc.c linux-3.4-vs2.3.3.4/net/ipv6/ndisc.c +--- linux-3.4/net/ipv6/ndisc.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv6/ndisc.c 2012-05-21 18:15:05.000000000 +0200 @@ -575,7 +575,7 @@ static void ndisc_send_na(struct net_dev } else { if (ipv6_dev_get_saddr(dev_net(dev), dev, daddr, @@ -25418,9 +25457,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/ndisc.c linux-3.3.1-vs2.3.3.2/net/ipv return; src_addr = &tmpaddr; } -diff -NurpP --minimal linux-3.3.1/net/ipv6/raw.c linux-3.3.1-vs2.3.3.2/net/ipv6/raw.c ---- linux-3.3.1/net/ipv6/raw.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/raw.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv6/raw.c linux-3.4-vs2.3.3.4/net/ipv6/raw.c +--- linux-3.4/net/ipv6/raw.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv6/raw.c 2012-05-21 18:15:05.000000000 +0200 @@ -30,6 +30,7 @@ #include #include @@ -25443,9 +25482,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/raw.c linux-3.3.1-vs2.3.3.2/net/ipv6/ /* ipv4 addr of the socket is invalid. Only the * unspecified and mapped address have a v4 equivalent. */ -diff -NurpP --minimal linux-3.3.1/net/ipv6/route.c linux-3.3.1-vs2.3.3.2/net/ipv6/route.c ---- linux-3.3.1/net/ipv6/route.c 2012-04-03 03:01:26.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/route.c 2012-04-03 03:02:13.000000000 +0200 +diff -NurpP --minimal linux-3.4/net/ipv6/route.c linux-3.4-vs2.3.3.4/net/ipv6/route.c +--- linux-3.4/net/ipv6/route.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv6/route.c 2012-05-21 18:15:05.000000000 +0200 @@ -55,6 +55,7 @@ #include #include @@ -25454,7 +25493,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/route.c linux-3.3.1-vs2.3.3.2/net/ipv #include -@@ -2107,15 +2108,17 @@ int ip6_route_get_saddr(struct net *net, +@@ -2144,15 +2145,17 @@ int ip6_route_get_saddr(struct net *net, struct rt6_info *rt, const struct in6_addr *daddr, unsigned int prefs, @@ -25475,7 +25514,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/route.c linux-3.3.1-vs2.3.3.2/net/ipv return err; } -@@ -2446,7 +2449,8 @@ static int rt6_fill_node(struct net *net +@@ -2483,7 +2486,8 @@ static int rt6_fill_node(struct net *net NLA_PUT_U32(skb, RTA_IIF, iif); } else if (dst) { struct in6_addr saddr_buf; @@ -25485,7 +25524,7 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/route.c linux-3.3.1-vs2.3.3.2/net/ipv NLA_PUT(skb, RTA_PREFSRC, 16, &saddr_buf); } -@@ -2660,6 +2664,7 @@ static int rt6_info_route(struct rt6_inf +@@ -2710,6 +2714,7 @@ static int rt6_info_route(struct rt6_inf struct seq_file *m = p_arg; struct neighbour *n; @@ -25493,9 +25532,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/route.c linux-3.3.1-vs2.3.3.2/net/ipv seq_printf(m, "%pi6 %02x ", &rt->rt6i_dst.addr, rt->rt6i_dst.plen); #ifdef CONFIG_IPV6_SUBTREES -diff -NurpP --minimal linux-3.3.1/net/ipv6/tcp_ipv6.c linux-3.3.1-vs2.3.3.2/net/ipv6/tcp_ipv6.c ---- linux-3.3.1/net/ipv6/tcp_ipv6.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/tcp_ipv6.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv6/tcp_ipv6.c linux-3.4-vs2.3.3.4/net/ipv6/tcp_ipv6.c +--- linux-3.4/net/ipv6/tcp_ipv6.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv6/tcp_ipv6.c 2012-05-21 18:15:05.000000000 +0200 @@ -71,6 +71,7 @@ #include @@ -25522,9 +25561,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/tcp_ipv6.c linux-3.3.1-vs2.3.3.2/net/ addr_type = ipv6_addr_type(&usin->sin6_addr); -diff -NurpP --minimal linux-3.3.1/net/ipv6/udp.c linux-3.3.1-vs2.3.3.2/net/ipv6/udp.c ---- linux-3.3.1/net/ipv6/udp.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/udp.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv6/udp.c linux-3.4-vs2.3.3.4/net/ipv6/udp.c +--- linux-3.4/net/ipv6/udp.c 2012-05-21 18:07:40.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/ipv6/udp.c 2012-05-21 18:15:05.000000000 +0200 @@ -45,41 +45,67 @@ #include #include @@ -25617,9 +25656,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/udp.c linux-3.3.1-vs2.3.3.2/net/ipv6/ } if (!ipv6_addr_any(&np->daddr)) { if (!ipv6_addr_equal(&np->daddr, saddr)) -diff -NurpP --minimal linux-3.3.1/net/ipv6/xfrm6_policy.c linux-3.3.1-vs2.3.3.2/net/ipv6/xfrm6_policy.c ---- linux-3.3.1/net/ipv6/xfrm6_policy.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/ipv6/xfrm6_policy.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/ipv6/xfrm6_policy.c linux-3.4-vs2.3.3.4/net/ipv6/xfrm6_policy.c +--- linux-3.4/net/ipv6/xfrm6_policy.c 2012-03-19 19:47:33.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/net/ipv6/xfrm6_policy.c 2012-05-21 18:15:05.000000000 +0200 @@ -63,7 +63,7 @@ static int xfrm6_get_saddr(struct net *n dev = ip6_dst_idev(dst)->dev; ipv6_dev_get_saddr(dev_net(dev), dev, @@ -25629,9 +25668,9 @@ diff -NurpP --minimal linux-3.3.1/net/ipv6/xfrm6_policy.c linux-3.3.1-vs2.3.3.2/ dst_release(dst); return 0; } -diff -NurpP --minimal linux-3.3.1/net/netfilter/ipvs/ip_vs_xmit.c linux-3.3.1-vs2.3.3.2/net/netfilter/ipvs/ip_vs_xmit.c ---- linux-3.3.1/net/netfilter/ipvs/ip_vs_xmit.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/netfilter/ipvs/ip_vs_xmit.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/netfilter/ipvs/ip_vs_xmit.c linux-3.4-vs2.3.3.4/net/netfilter/ipvs/ip_vs_xmit.c +--- linux-3.4/net/netfilter/ipvs/ip_vs_xmit.c 2012-03-19 19:47:33.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/net/netfilter/ipvs/ip_vs_xmit.c 2012-05-21 18:15:05.000000000 +0200 @@ -226,7 +226,7 @@ __ip_vs_route_output_v6(struct net *net, return dst; if (ipv6_addr_any(&fl6.saddr) && @@ -25641,9 +25680,9 @@ diff -NurpP --minimal linux-3.3.1/net/netfilter/ipvs/ip_vs_xmit.c linux-3.3.1-vs goto out_err; if (do_xfrm) { dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); -diff -NurpP --minimal linux-3.3.1/net/netlink/af_netlink.c linux-3.3.1-vs2.3.3.2/net/netlink/af_netlink.c ---- linux-3.3.1/net/netlink/af_netlink.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/netlink/af_netlink.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/netlink/af_netlink.c linux-3.4-vs2.3.3.4/net/netlink/af_netlink.c +--- linux-3.4/net/netlink/af_netlink.c 2012-05-21 18:07:41.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/netlink/af_netlink.c 2012-05-21 18:15:05.000000000 +0200 @@ -55,6 +55,9 @@ #include #include @@ -25654,7 +25693,7 @@ diff -NurpP --minimal linux-3.3.1/net/netlink/af_netlink.c linux-3.3.1-vs2.3.3.2 #include #include -@@ -1908,6 +1911,8 @@ static struct sock *netlink_seq_socket_i +@@ -1926,6 +1929,8 @@ static struct sock *netlink_seq_socket_i sk_for_each(s, node, &hash->table[j]) { if (sock_net(s) != seq_file_net(seq)) continue; @@ -25663,7 +25702,7 @@ diff -NurpP --minimal linux-3.3.1/net/netlink/af_netlink.c linux-3.3.1-vs2.3.3.2 if (off == pos) { iter->link = i; iter->hash_idx = j; -@@ -1942,7 +1947,8 @@ static void *netlink_seq_next(struct seq +@@ -1960,7 +1965,8 @@ static void *netlink_seq_next(struct seq s = v; do { s = sk_next(s); @@ -25673,7 +25712,7 @@ diff -NurpP --minimal linux-3.3.1/net/netlink/af_netlink.c linux-3.3.1-vs2.3.3.2 if (s) return s; -@@ -1954,7 +1960,8 @@ static void *netlink_seq_next(struct seq +@@ -1972,7 +1978,8 @@ static void *netlink_seq_next(struct seq for (; j <= hash->mask; j++) { s = sk_head(&hash->table[j]); @@ -25683,9 +25722,9 @@ diff -NurpP --minimal linux-3.3.1/net/netlink/af_netlink.c linux-3.3.1-vs2.3.3.2 s = sk_next(s); if (s) { iter->link = i; -diff -NurpP --minimal linux-3.3.1/net/socket.c linux-3.3.1-vs2.3.3.2/net/socket.c ---- linux-3.3.1/net/socket.c 2012-03-19 19:47:33.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/socket.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/socket.c linux-3.4-vs2.3.3.4/net/socket.c +--- linux-3.4/net/socket.c 2012-05-21 18:07:41.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/socket.c 2012-05-21 18:15:05.000000000 +0200 @@ -98,6 +98,10 @@ #include @@ -25792,9 +25831,9 @@ diff -NurpP --minimal linux-3.3.1/net/socket.c linux-3.3.1-vs2.3.3.2/net/socket. err = sock1->ops->socketpair(sock1, sock2); if (err < 0) -diff -NurpP --minimal linux-3.3.1/net/sunrpc/auth.c linux-3.3.1-vs2.3.3.2/net/sunrpc/auth.c ---- linux-3.3.1/net/sunrpc/auth.c 2011-10-24 18:45:34.000000000 +0200 -+++ linux-3.3.1-vs2.3.3.2/net/sunrpc/auth.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/sunrpc/auth.c linux-3.4-vs2.3.3.4/net/sunrpc/auth.c +--- linux-3.4/net/sunrpc/auth.c 2011-10-24 18:45:34.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/sunrpc/auth.c 2012-05-21 18:15:05.000000000 +0200 @@ -14,6 +14,7 @@ #include #include @@ -25819,9 +25858,9 @@ diff -NurpP --minimal linux-3.3.1/net/sunrpc/auth.c linux-3.3.1-vs2.3.3.2/net/su }; dprintk("RPC: %5u looking up %s cred\n", -diff -NurpP --minimal linux-3.3.1/net/sunrpc/auth_unix.c linux-3.3.1-vs2.3.3.2/net/sunrpc/auth_unix.c ---- linux-3.3.1/net/sunrpc/auth_unix.c 2012-01-09 16:15:04.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/sunrpc/auth_unix.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/sunrpc/auth_unix.c linux-3.4-vs2.3.3.4/net/sunrpc/auth_unix.c +--- linux-3.4/net/sunrpc/auth_unix.c 2012-01-09 16:15:04.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/net/sunrpc/auth_unix.c 2012-05-21 18:15:05.000000000 +0200 @@ -12,12 +12,14 @@ #include #include @@ -25880,18 +25919,18 @@ diff -NurpP --minimal linux-3.3.1/net/sunrpc/auth_unix.c linux-3.3.1-vs2.3.3.2/n hold = p++; for (i = 0; i < 16 && cred->uc_gids[i] != (gid_t) NOGROUP; i++) *p++ = htonl((u32) cred->uc_gids[i]); -diff -NurpP --minimal linux-3.3.1/net/sunrpc/clnt.c linux-3.3.1-vs2.3.3.2/net/sunrpc/clnt.c ---- linux-3.3.1/net/sunrpc/clnt.c 2012-01-09 16:15:04.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/sunrpc/clnt.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/sunrpc/clnt.c linux-3.4-vs2.3.3.4/net/sunrpc/clnt.c +--- linux-3.4/net/sunrpc/clnt.c 2012-05-21 18:07:41.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/sunrpc/clnt.c 2012-05-21 18:15:05.000000000 +0200 @@ -31,6 +31,7 @@ - #include #include #include + #include +#include #include #include -@@ -361,6 +362,9 @@ struct rpc_clnt *rpc_create(struct rpc_c +@@ -483,6 +484,9 @@ struct rpc_clnt *rpc_create(struct rpc_c if (!(args->flags & RPC_CLNT_CREATE_QUIET)) clnt->cl_chatty = 1; @@ -25901,9 +25940,9 @@ diff -NurpP --minimal linux-3.3.1/net/sunrpc/clnt.c linux-3.3.1-vs2.3.3.2/net/su return clnt; } EXPORT_SYMBOL_GPL(rpc_create); -diff -NurpP --minimal linux-3.3.1/net/unix/af_unix.c linux-3.3.1-vs2.3.3.2/net/unix/af_unix.c ---- linux-3.3.1/net/unix/af_unix.c 2012-03-19 19:47:34.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/net/unix/af_unix.c 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/net/unix/af_unix.c linux-3.4-vs2.3.3.4/net/unix/af_unix.c +--- linux-3.4/net/unix/af_unix.c 2012-05-21 18:07:41.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/net/unix/af_unix.c 2012-05-21 18:15:05.000000000 +0200 @@ -114,6 +114,8 @@ #include #include @@ -25922,7 +25961,7 @@ diff -NurpP --minimal linux-3.3.1/net/unix/af_unix.c linux-3.3.1-vs2.3.3.2/net/u if (u->addr->len == len && !memcmp(u->addr->name, sunname, len)) goto found; -@@ -2235,6 +2239,8 @@ static struct sock *unix_seq_idx(struct +@@ -2266,6 +2270,8 @@ static struct sock *unix_seq_idx(struct for (s = first_unix_socket(&iter->i); s; s = next_unix_socket(&iter->i, s)) { if (sock_net(s) != seq_file_net(seq)) continue; @@ -25931,7 +25970,7 @@ diff -NurpP --minimal linux-3.3.1/net/unix/af_unix.c linux-3.3.1-vs2.3.3.2/net/u if (off == pos) return s; ++off; -@@ -2259,7 +2265,8 @@ static void *unix_seq_next(struct seq_fi +@@ -2290,7 +2296,8 @@ static void *unix_seq_next(struct seq_fi sk = first_unix_socket(&iter->i); else sk = next_unix_socket(&iter->i, sk); @@ -25941,9 +25980,9 @@ diff -NurpP --minimal linux-3.3.1/net/unix/af_unix.c linux-3.3.1-vs2.3.3.2/net/u sk = next_unix_socket(&iter->i, sk); return sk; } -diff -NurpP --minimal linux-3.3.1/scripts/checksyscalls.sh linux-3.3.1-vs2.3.3.2/scripts/checksyscalls.sh ---- linux-3.3.1/scripts/checksyscalls.sh 2012-03-19 19:47:34.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/scripts/checksyscalls.sh 2012-02-24 03:55:07.000000000 +0100 +diff -NurpP --minimal linux-3.4/scripts/checksyscalls.sh linux-3.4-vs2.3.3.4/scripts/checksyscalls.sh +--- linux-3.4/scripts/checksyscalls.sh 2012-03-19 19:47:34.000000000 +0100 ++++ linux-3.4-vs2.3.3.4/scripts/checksyscalls.sh 2012-05-21 18:15:05.000000000 +0200 @@ -193,7 +193,6 @@ cat << EOF #define __IGNORE_afs_syscall #define __IGNORE_getpmsg @@ -25952,10 +25991,10 @@ diff -NurpP --minimal linux-3.3.1/scripts/checksyscalls.sh linux-3.3.1-vs2.3.3.2 EOF } -diff -NurpP --minimal linux-3.3.1/security/commoncap.c linux-3.3.1-vs2.3.3.2/security/commoncap.c ---- linux-3.3.1/security/commoncap.c 2012-03-19 19:47:34.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/security/commoncap.c 2012-02-24 18:08:52.000000000 +0100 -@@ -74,14 +74,20 @@ int cap_netlink_send(struct sock *sk, st +diff -NurpP --minimal linux-3.4/security/commoncap.c linux-3.4-vs2.3.3.4/security/commoncap.c +--- linux-3.4/security/commoncap.c 2012-05-21 18:07:41.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/security/commoncap.c 2012-05-21 18:15:05.000000000 +0200 +@@ -76,14 +76,20 @@ int cap_netlink_send(struct sock *sk, st int cap_capable(const struct cred *cred, struct user_namespace *targ_ns, int cap, int audit) { @@ -25978,7 +26017,7 @@ diff -NurpP --minimal linux-3.3.1/security/commoncap.c linux-3.3.1-vs2.3.3.2/sec /* Have we tried all of the parent namespaces? */ if (targ_ns == &init_user_ns) -@@ -605,7 +611,7 @@ int cap_inode_setxattr(struct dentry *de +@@ -612,7 +618,7 @@ int cap_inode_setxattr(struct dentry *de if (!strncmp(name, XATTR_SECURITY_PREFIX, sizeof(XATTR_SECURITY_PREFIX) - 1) && @@ -25987,7 +26026,7 @@ diff -NurpP --minimal linux-3.3.1/security/commoncap.c linux-3.3.1-vs2.3.3.2/sec return -EPERM; return 0; } -@@ -631,7 +637,7 @@ int cap_inode_removexattr(struct dentry +@@ -638,7 +644,7 @@ int cap_inode_removexattr(struct dentry if (!strncmp(name, XATTR_SECURITY_PREFIX, sizeof(XATTR_SECURITY_PREFIX) - 1) && @@ -25996,10 +26035,10 @@ diff -NurpP --minimal linux-3.3.1/security/commoncap.c linux-3.3.1-vs2.3.3.2/sec return -EPERM; return 0; } -diff -NurpP --minimal linux-3.3.1/security/selinux/hooks.c linux-3.3.1-vs2.3.3.2/security/selinux/hooks.c ---- linux-3.3.1/security/selinux/hooks.c 2012-03-19 19:47:34.000000000 +0100 -+++ linux-3.3.1-vs2.3.3.2/security/selinux/hooks.c 2012-02-24 03:55:07.000000000 +0100 -@@ -67,7 +67,6 @@ +diff -NurpP --minimal linux-3.4/security/selinux/hooks.c linux-3.4-vs2.3.3.4/security/selinux/hooks.c +--- linux-3.4/security/selinux/hooks.c 2012-05-21 18:07:41.000000000 +0200 ++++ linux-3.4-vs2.3.3.4/security/selinux/hooks.c 2012-05-21 18:15:05.000000000 +0200 +@@ -66,7 +66,6 @@ #include #include #include /* for Unix socket types */ diff --git a/kernel.spec b/kernel.spec index e7ca7db1..afa86be2 100644 --- a/kernel.spec +++ b/kernel.spec @@ -212,7 +212,7 @@ Patch59: kernel-rndis_host-wm5.patch # http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch Patch85: kernel-hostap.patch -# http://vserver.13thfloor.at/Experimental/patch-3.3.1-vs2.3.3.2.diff +# http://vserver.13thfloor.at/Experimental/patch-3.4-vs2.3.3.4.diff Patch100: kernel-vserver-2.3.patch Patch101: kernel-vserver-fixes.patch @@ -244,9 +244,7 @@ Patch2000: kernel-small_fixes.patch Patch2001: kernel-pwc-uncompress.patch Patch2003: kernel-regressions.patch -# 0001-AppArmor-compatibility-patch-for-v5-network-controll.patch -# 0002-AppArmor-compatibility-patch-for-v5-interface.patch -# from http://kernel.org/pub/linux/security/apparmor/apparmor-2.6.36-patches.tgz +# http://git.kernel.org/?p=linux/kernel/git/jj/linux-apparmor.git;a=shortlog;h=refs/heads/v3.4-aa2.8 Patch5000: kernel-apparmor.patch # for rescuecd -- 2.44.0