]> git.pld-linux.org Git - packages/kernel.git/commitdiff
- up to 3.7.0; aufs not in final version; vserver not ready yet (at upstream)
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Thu, 13 Dec 2012 20:25:00 +0000 (21:25 +0100)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Thu, 13 Dec 2012 20:25:00 +0000 (21:25 +0100)
14 files changed:
kernel-apparmor.patch
kernel-atm-vbr.patch
kernel-aufs3.patch
kernel-esfq.patch
kernel-imq.patch
kernel-multiarch.config
kernel-owner-xid.patch
kernel-pwc-uncompress.patch
kernel-virtio-gl-accel.patch
kernel-vserver-2.3.patch
kernel-vserver-fixes.patch
kernel-x86.config
kernel-zph.patch
kernel.spec

index b5352e4430a342cb72ab443a102a9e2e4a030b45..21505c730333b0b9d4c1750da69efccb2aec2d90 100644 (file)
@@ -306,18 +306,6 @@ Signed-off-by: John Johansen <john.johansen@canonical.com>
  create mode 100644 security/apparmor/include/net.h
  create mode 100644 security/apparmor/net.c
 
-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 806bd19..19daa85 100644
 --- a/security/apparmor/Makefile
index 1e57d7f6e7ccd998868242393443082eb70bff6f..28dc14b865786cd36d0e2be9f4f4e410c5017fd4 100644 (file)
@@ -3,8 +3,8 @@ Index: linux/include/linux/atm.h
 RCS file: /afs/cmf/project/cvsroot/linux/include/linux/atm.h,v
 retrieving revision 1.2
 diff -u -r1.2 atm.h
---- linux/include/linux/atm.h  12 Feb 2003 20:56:33 -0000      1.2
-+++ linux/include/linux/atm.h  9 Apr 2003 12:08:38 -0000
+--- linux/include/uapi/linux/atm.h     12 Feb 2003 20:56:33 -0000      1.2
++++ linux/include/uapi/linux/atm.h     9 Apr 2003 12:08:38 -0000
 @@ -72,7 +72,7 @@
                            /* connection identifier range; socket must be
                               bound or connected */
@@ -76,7 +76,7 @@ diff -u -r1.2 atm.h
 +
 +#define SO_ATMQOS_COMPAT __SO_ENCODE(SOL_ATM,2,struct atm_qos_compat)
 +                          /* Quality of Service setting (no vbr support) */
- #endif
+ #endif /* _UAPI_LINUX_ATM_H */
 Index: linux/net/atm/common.c
 ===================================================================
 RCS file: /afs/cmf/project/cvsroot/linux/net/atm/common.c,v
index 69c917613761b9f5bcdf599bcbadc1be9c77502b..c7c5594bcbb2fa3957543386006a328eea9e5b89 100644 (file)
@@ -1,4 +1,4 @@
-aufs3.6 kbuild patch
+aufs3.x-rcN kbuild patch
 
 diff --git a/fs/Kconfig b/fs/Kconfig
 index f95ae3a..6d8a9a5 100644
@@ -13,30 +13,31 @@ index f95ae3a..6d8a9a5 100644
  endif # MISC_FILESYSTEMS
  
 diff --git a/fs/Makefile b/fs/Makefile
-index 2fb9779..abefac5 100644
+index 1d7af79..06db6eb 100644
 --- a/fs/Makefile
 +++ b/fs/Makefile
-@@ -125,3 +125,4 @@ obj-$(CONFIG_GFS2_FS)           += gfs2/
+@@ -126,3 +126,4 @@ obj-$(CONFIG_GFS2_FS)           += gfs2/
  obj-y                         += exofs/ # Multiple modules
  obj-$(CONFIG_CEPH_FS)         += ceph/
  obj-$(CONFIG_PSTORE)          += pstore/
 +obj-$(CONFIG_AUFS_FS)           += aufs/
-diff --git a/include/linux/Kbuild b/include/linux/Kbuild
-index fa21760..ee029e3 100644
---- a/include/linux/Kbuild
-+++ b/include/linux/Kbuild
-@@ -66,6 +66,7 @@ header-y += atmppp.h
- header-y += atmsap.h
- header-y += atmsvc.h
- header-y += audit.h
-+header-y += aufs_type.h
- header-y += auto_fs.h
- header-y += auto_fs4.h
- header-y += auxvec.h
-aufs3.6 base patch
+aufs3.x-rcN base patch
 
+diff --git a/fs/file_table.c b/fs/file_table.c
+index a72bf9d..dac6792 100644
+--- a/fs/file_table.c
++++ b/fs/file_table.c
+@@ -36,7 +36,7 @@ struct files_stat_struct files_stat = {
+       .max_files = NR_FILE
+ };
+-DEFINE_STATIC_LGLOCK(files_lglock);
++DEFINE_LGLOCK(files_lglock);
+ /* SLAB cache for file structures */
+ static struct kmem_cache *filp_cachep __read_mostly;
 diff --git a/fs/inode.c b/fs/inode.c
-index ac8d904..7b2c8fa 100644
+index b03c719..ee497f9 100644
 --- a/fs/inode.c
 +++ b/fs/inode.c
 @@ -1491,7 +1491,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
@@ -49,7 +50,7 @@ index ac8d904..7b2c8fa 100644
        if (inode->i_op->update_time)
                return inode->i_op->update_time(inode, time, flags);
 diff --git a/fs/splice.c b/fs/splice.c
-index 41514dd..663b402 100644
+index 13e5b47..f185c6c 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -1093,8 +1093,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
@@ -77,10 +78,10 @@ index 41514dd..663b402 100644
        ssize_t (*splice_read)(struct file *, loff_t *,
                               struct pipe_inode_info *, size_t, unsigned int);
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index aa11047..9116d2e 100644
+index b33cfc9..963a61b 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -2741,6 +2741,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
+@@ -2558,6 +2558,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
  extern int inode_newsize_ok(const struct inode *, loff_t offset);
  extern void setattr_copy(struct inode *inode, const struct iattr *attr);
  
@@ -103,10 +104,10 @@ index 09a545a..1ac5727 100644
 +                       struct pipe_inode_info *pipe, size_t len,
 +                       unsigned int flags);
  #endif
-aufs3.6 standalone patch
+aufs3.x-rcN standalone patch
 
 diff --git a/fs/file_table.c b/fs/file_table.c
-index 701985e..a9fe741 100644
+index dac6792..e3f2c15 100644
 --- a/fs/file_table.c
 +++ b/fs/file_table.c
 @@ -37,6 +37,7 @@ struct files_stat_struct files_stat = {
@@ -117,7 +118,7 @@ index 701985e..a9fe741 100644
  
  /* SLAB cache for file structures */
  static struct kmem_cache *filp_cachep __read_mostly;
-@@ -509,6 +510,8 @@ void file_sb_list_del(struct file *file)
+@@ -403,6 +404,8 @@ void file_sb_list_del(struct file *file)
        }
  }
  
@@ -127,7 +128,7 @@ index 701985e..a9fe741 100644
  
  /*
 diff --git a/fs/inode.c b/fs/inode.c
-index 7b2c8fa..0c4318d 100644
+index ee497f9..5e7eee7 100644
 --- a/fs/inode.c
 +++ b/fs/inode.c
 @@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
@@ -147,7 +148,7 @@ index 7b2c8fa..0c4318d 100644
  /**
   *    touch_atime     -       update the access time
 diff --git a/fs/namespace.c b/fs/namespace.c
-index 7bdf790..5b85c4c 100644
+index 2496062..3e66a90 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
 @@ -50,6 +50,7 @@ EXPORT_SYMBOL_GPL(fs_kobj);
@@ -228,7 +229,7 @@ index f104d56..54f36db 100644
  static int fsnotify_mark_destroy(void *ignored)
  {
 diff --git a/fs/open.c b/fs/open.c
-index e1f2cdb..2804cd6 100644
+index 59071f5..7e4c856 100644
 --- a/fs/open.c
 +++ b/fs/open.c
 @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
@@ -240,7 +241,7 @@ index e1f2cdb..2804cd6 100644
  static long do_sys_truncate(const char __user *pathname, loff_t length)
  {
 diff --git a/fs/splice.c b/fs/splice.c
-index 663b402..51e1deb 100644
+index f185c6c..f3d89da 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -1117,6 +1117,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
@@ -276,7 +277,7 @@ index 6dbae46..9f4f29a 100644
  }
 +EXPORT_SYMBOL(cap_mmap_file);
 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
-index 442204c..e644a1c 100644
+index b08d20c..a90420b 100644
 --- a/security/device_cgroup.c
 +++ b/security/device_cgroup.c
 @@ -7,6 +7,7 @@
@@ -287,19 +288,19 @@ index 442204c..e644a1c 100644
  #include <linux/list.h>
  #include <linux/uaccess.h>
  #include <linux/seq_file.h>
-@@ -493,6 +494,7 @@ found:
-       return -EPERM;
+@@ -617,6 +618,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
+       return __devcgroup_check_permission(type, imajor(inode), iminor(inode),
+                       access);
  }
 +EXPORT_SYMBOL(__devcgroup_inode_permission);
  
  int devcgroup_inode_mknod(int mode, dev_t dev)
  {
 diff --git a/security/security.c b/security/security.c
-index 860aeb3..ffb57bf 100644
+index 8dcd4ae..6efe561 100644
 --- a/security/security.c
 +++ b/security/security.c
-@@ -384,6 +384,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
+@@ -396,6 +396,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
                return 0;
        return security_ops->path_rmdir(dir, dentry);
  }
@@ -307,7 +308,7 @@ index 860aeb3..ffb57bf 100644
  
  int security_path_unlink(struct path *dir, struct dentry *dentry)
  {
-@@ -400,6 +401,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
+@@ -412,6 +413,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
                return 0;
        return security_ops->path_symlink(dir, dentry, old_name);
  }
@@ -315,7 +316,7 @@ index 860aeb3..ffb57bf 100644
  
  int security_path_link(struct dentry *old_dentry, struct path *new_dir,
                       struct dentry *new_dentry)
-@@ -408,6 +410,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
+@@ -420,6 +422,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
                return 0;
        return security_ops->path_link(old_dentry, new_dir, new_dentry);
  }
@@ -323,7 +324,7 @@ index 860aeb3..ffb57bf 100644
  
  int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
                         struct path *new_dir, struct dentry *new_dentry)
-@@ -426,6 +429,7 @@ int security_path_truncate(struct path *path)
+@@ -438,6 +441,7 @@ int security_path_truncate(struct path *path)
                return 0;
        return security_ops->path_truncate(path);
  }
@@ -331,15 +332,15 @@ index 860aeb3..ffb57bf 100644
  
  int security_path_chmod(struct path *path, umode_t mode)
  {
-@@ -433,6 +437,7 @@ int security_path_chmod(struct path *path, umode_t mode)
+@@ -445,6 +449,7 @@ int security_path_chmod(struct path *path, umode_t mode)
                return 0;
        return security_ops->path_chmod(path, mode);
  }
 +EXPORT_SYMBOL(security_path_chmod);
  
- int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+ int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
  {
-@@ -440,6 +445,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
+@@ -452,6 +457,7 @@ int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
                return 0;
        return security_ops->path_chown(path, uid, gid);
  }
@@ -347,7 +348,7 @@ index 860aeb3..ffb57bf 100644
  
  int security_path_chroot(struct path *path)
  {
-@@ -516,6 +522,7 @@ int security_inode_readlink(struct dentry *dentry)
+@@ -528,6 +534,7 @@ int security_inode_readlink(struct dentry *dentry)
                return 0;
        return security_ops->inode_readlink(dentry);
  }
@@ -355,7 +356,7 @@ index 860aeb3..ffb57bf 100644
  
  int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
  {
-@@ -530,6 +537,7 @@ int security_inode_permission(struct inode *inode, int mask)
+@@ -542,6 +549,7 @@ int security_inode_permission(struct inode *inode, int mask)
                return 0;
        return security_ops->inode_permission(inode, mask);
  }
@@ -363,7 +364,7 @@ index 860aeb3..ffb57bf 100644
  
  int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
  {
-@@ -645,6 +653,7 @@ int security_file_permission(struct file *file, int mask)
+@@ -663,6 +671,7 @@ int security_file_permission(struct file *file, int mask)
  
        return fsnotify_perm(file, mask);
  }
@@ -371,7 +372,7 @@ index 860aeb3..ffb57bf 100644
  
  int security_file_alloc(struct file *file)
  {
-@@ -705,6 +714,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
+@@ -723,6 +732,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
                return ret;
        return ima_file_mmap(file, prot);
  }
@@ -381,7 +382,7 @@ index 860aeb3..ffb57bf 100644
  {
 diff -urN /usr/share/empty/Documentation/ABI/testing/debugfs-aufs linux/Documentation/ABI/testing/debugfs-aufs
 --- /usr/share/empty/Documentation/ABI/testing/debugfs-aufs    1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/ABI/testing/debugfs-aufs       2012-08-26 08:39:00.753841216 +0200
++++ linux/Documentation/ABI/testing/debugfs-aufs       2012-12-13 20:41:10.424793346 +0100
 @@ -0,0 +1,37 @@
 +What:         /debug/aufs/si_<id>/
 +Date:         March 2009
@@ -422,7 +423,7 @@ diff -urN /usr/share/empty/Documentation/ABI/testing/debugfs-aufs linux/Document
 +              will be empty. About XINO files, see the aufs manual.
 diff -urN /usr/share/empty/Documentation/ABI/testing/sysfs-aufs linux/Documentation/ABI/testing/sysfs-aufs
 --- /usr/share/empty/Documentation/ABI/testing/sysfs-aufs      1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/ABI/testing/sysfs-aufs 2012-08-26 08:39:00.753841216 +0200
++++ linux/Documentation/ABI/testing/sysfs-aufs 2012-12-13 20:41:10.424793346 +0100
 @@ -0,0 +1,24 @@
 +What:         /sys/fs/aufs/si_<id>/
 +Date:         March 2009
@@ -450,7 +451,7 @@ diff -urN /usr/share/empty/Documentation/ABI/testing/sysfs-aufs linux/Documentat
 +              will be empty. About XINO files, see the aufs manual.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/01intro.txt linux/Documentation/filesystems/aufs/design/01intro.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/01intro.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/01intro.txt    2012-08-26 08:39:00.757174634 +0200
++++ linux/Documentation/filesystems/aufs/design/01intro.txt    2012-12-13 20:41:10.424793346 +0100
 @@ -0,0 +1,162 @@
 +
 +# Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -616,7 +617,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/01intro.txt lin
 +about it. But currently I have implemented it in kernel space.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/02struct.txt linux/Documentation/filesystems/aufs/design/02struct.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/02struct.txt        1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/02struct.txt   2012-08-26 08:39:00.757174634 +0200
++++ linux/Documentation/filesystems/aufs/design/02struct.txt   2012-12-13 20:41:10.424793346 +0100
 @@ -0,0 +1,226 @@
 +
 +# Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -846,7 +847,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/02struct.txt li
 +dir, aufs reverts it after copy-up.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/03lookup.txt linux/Documentation/filesystems/aufs/design/03lookup.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/03lookup.txt        1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/03lookup.txt   2012-08-26 08:39:00.757174634 +0200
++++ linux/Documentation/filesystems/aufs/design/03lookup.txt   2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,106 @@
 +
 +# Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -956,7 +957,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/03lookup.txt li
 +   by over-mounting something (or another method).
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/04branch.txt linux/Documentation/filesystems/aufs/design/04branch.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/04branch.txt        1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/04branch.txt   2012-08-26 08:39:00.757174634 +0200
++++ linux/Documentation/filesystems/aufs/design/04branch.txt   2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,76 @@
 +
 +# Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -1036,7 +1037,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/04branch.txt li
 +    same named entry on the upper branch.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/05wbr_policy.txt linux/Documentation/filesystems/aufs/design/05wbr_policy.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/05wbr_policy.txt    1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/05wbr_policy.txt       2012-08-26 08:39:00.757174634 +0200
++++ linux/Documentation/filesystems/aufs/design/05wbr_policy.txt       2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,65 @@
 +
 +# Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -1105,7 +1106,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/05wbr_policy.tx
 +  copyup policy.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06mmap.txt linux/Documentation/filesystems/aufs/design/06mmap.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/06mmap.txt  1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/06mmap.txt     2012-08-26 08:39:00.757174634 +0200
++++ linux/Documentation/filesystems/aufs/design/06mmap.txt     2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,47 @@
 +
 +# Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -1156,7 +1157,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06mmap.txt linu
 +switching the approach.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/07export.txt linux/Documentation/filesystems/aufs/design/07export.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/07export.txt        1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/07export.txt   2012-08-26 08:39:00.757174634 +0200
++++ linux/Documentation/filesystems/aufs/design/07export.txt   2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,59 @@
 +
 +# Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -1219,7 +1220,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/07export.txt li
 +  lookup_one_len(), vfs_getattr(), encode_fh() and others.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/08shwh.txt linux/Documentation/filesystems/aufs/design/08shwh.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/08shwh.txt  1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/08shwh.txt     2012-08-26 08:39:00.757174634 +0200
++++ linux/Documentation/filesystems/aufs/design/08shwh.txt     2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,53 @@
 +
 +# Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -1276,7 +1277,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/08shwh.txt linu
 +initramfs will use it to replace the old one at the next boot.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/10dynop.txt linux/Documentation/filesystems/aufs/design/10dynop.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/10dynop.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/10dynop.txt    2012-08-26 08:39:00.757174634 +0200
++++ linux/Documentation/filesystems/aufs/design/10dynop.txt    2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,47 @@
 +
 +# Copyright (C) 2010-2011 Junjiro R. Okajima
@@ -1327,7 +1328,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/10dynop.txt lin
 +vm_operations_struct for regular files only.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/99plan.txt linux/Documentation/filesystems/aufs/design/99plan.txt
 --- /usr/share/empty/Documentation/filesystems/aufs/design/99plan.txt  1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/99plan.txt     2012-08-26 08:39:00.757174634 +0200
++++ linux/Documentation/filesystems/aufs/design/99plan.txt     2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,96 @@
 +
 +# Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -1427,8 +1428,8 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/99plan.txt linu
 +Otherwise from /new.
 diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documentation/filesystems/aufs/README
 --- /usr/share/empty/Documentation/filesystems/aufs/README     1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/README        2012-10-05 20:51:16.675326257 +0200
-@@ -0,0 +1,332 @@
++++ linux/Documentation/filesystems/aufs/README        2012-12-13 20:41:10.424793346 +0100
+@@ -0,0 +1,333 @@
 +
 +Aufs3 -- advanced multi layered unification filesystem version 3.x
 +http://aufs.sf.net
@@ -1604,8 +1605,8 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta
 +  path on the branch fs.
 +- apply ./aufs3-standalone.patch too, if you have a plan to set
 +  CONFIG_AUFS_FS=m. otherwise you don't need ./aufs3-standalone.patch.
-+- copy ./{Documentation,fs,include/linux/aufs_type.h} files to your
-+  kernel source tree. Never copy $PWD/include/linux/Kbuild.
++- copy ./{Documentation,fs,include/uapi/linux/aufs_type.h} files to your
++  kernel source tree. Never copy $PWD/include/uapi/linux/Kbuild.
 +- enable CONFIG_EXPERIMENTAL and CONFIG_AUFS_FS, you can select either
 +  =m or =y.
 +- and build your kernel as usual.
@@ -1742,7 +1743,8 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta
 +Pavel Pronskiy made a donation (2011/2).
 +Iridium and Inmarsat satellite phone retailer (www.mailasail.com), Nippy
 +      Networks (Ed Wildgoose) made a donation for hardware (2011/3).
-+Max Lekomcev (DOM-TV project) made a donation (2011/7, 12 and 2012/3, 6).
++Max Lekomcev (DOM-TV project) made a donation (2011/7, 12, 2012/3, 6 and
++11).
 +Sam Liddicott made a donation (2011/9).
 +
 +Thank you very much.
@@ -1763,7 +1765,7 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/README linux/Documenta
 +# End: ;
 diff -urN /usr/share/empty/fs/aufs/aufs.h linux/fs/aufs/aufs.h
 --- /usr/share/empty/fs/aufs/aufs.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/aufs.h       2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/aufs.h       2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,60 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -1827,8 +1829,8 @@ diff -urN /usr/share/empty/fs/aufs/aufs.h linux/fs/aufs/aufs.h
 +#endif /* __AUFS_H__ */
 diff -urN /usr/share/empty/fs/aufs/branch.c linux/fs/aufs/branch.c
 --- /usr/share/empty/fs/aufs/branch.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/branch.c     2012-10-17 10:31:01.772481151 +0200
-@@ -0,0 +1,1169 @@
++++ linux/fs/aufs/branch.c     2012-12-13 20:41:10.428126759 +0100
+@@ -0,0 +1,1172 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -1887,7 +1889,10 @@ diff -urN /usr/share/empty/fs/aufs/branch.c linux/fs/aufs/branch.c
 +              else
 +                      break;
 +
++      /* recursive lock, s_umount of branch's */
++      lockdep_off();
 +      mntput(br->br_mnt);
++      lockdep_on();
 +      kfree(wbr);
 +      kfree(br);
 +}
@@ -2463,7 +2468,7 @@ diff -urN /usr/share/empty/fs/aufs/branch.c linux/fs/aufs/branch.c
 +                      continue;
 +
 +              /* AuDbgInode(i); */
-+              if (au_iigen(i) == sigen)
++              if (au_iigen(i, NULL) == sigen)
 +                      ii_read_lock_child(i);
 +              else {
 +                      ii_write_lock_child(i);
@@ -3000,7 +3005,7 @@ diff -urN /usr/share/empty/fs/aufs/branch.c linux/fs/aufs/branch.c
 +}
 diff -urN /usr/share/empty/fs/aufs/branch.h linux/fs/aufs/branch.h
 --- /usr/share/empty/fs/aufs/branch.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/branch.h     2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/branch.h     2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,230 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -3234,7 +3239,7 @@ diff -urN /usr/share/empty/fs/aufs/branch.h linux/fs/aufs/branch.h
 +#endif /* __AUFS_BRANCH_H__ */
 diff -urN /usr/share/empty/fs/aufs/conf.mk linux/fs/aufs/conf.mk
 --- /usr/share/empty/fs/aufs/conf.mk   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/conf.mk      2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/conf.mk      2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,38 @@
 +
 +AuConfStr = CONFIG_AUFS_FS=${CONFIG_AUFS_FS}
@@ -3276,7 +3281,7 @@ diff -urN /usr/share/empty/fs/aufs/conf.mk linux/fs/aufs/conf.mk
 +-include ${srctree}/${src}/conf_priv.mk
 diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 --- /usr/share/empty/fs/aufs/cpup.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/cpup.c       2012-10-17 10:31:01.772481151 +0200
++++ linux/fs/aufs/cpup.c       2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,1085 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -3702,7 +3707,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +              goto out;
 +
 +      err = -ENOMEM;
-+      sym.k = __getname_gfp(GFP_NOFS);
++      sym.k = (void *)__get_free_page(GFP_NOFS);
 +      if (unlikely(!sym.k))
 +              goto out;
 +
@@ -3717,7 +3722,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +              sym.k[symlen] = 0;
 +              err = vfsub_symlink(h_dir, h_path, sym.k);
 +      }
-+      __putname(sym.k);
++      free_page((unsigned long)sym.k);
 +
 +out:
 +      return err;
@@ -4365,7 +4370,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 +}
 diff -urN /usr/share/empty/fs/aufs/cpup.h linux/fs/aufs/cpup.h
 --- /usr/share/empty/fs/aufs/cpup.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/cpup.h       2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/cpup.h       2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,81 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -4450,7 +4455,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.h linux/fs/aufs/cpup.h
 +#endif /* __AUFS_CPUP_H__ */
 diff -urN /usr/share/empty/fs/aufs/dbgaufs.c linux/fs/aufs/dbgaufs.c
 --- /usr/share/empty/fs/aufs/dbgaufs.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dbgaufs.c    2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/dbgaufs.c    2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,334 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -4788,7 +4793,7 @@ diff -urN /usr/share/empty/fs/aufs/dbgaufs.c linux/fs/aufs/dbgaufs.c
 +}
 diff -urN /usr/share/empty/fs/aufs/dbgaufs.h linux/fs/aufs/dbgaufs.h
 --- /usr/share/empty/fs/aufs/dbgaufs.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dbgaufs.h    2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/dbgaufs.h    2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,49 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -4841,7 +4846,7 @@ diff -urN /usr/share/empty/fs/aufs/dbgaufs.h linux/fs/aufs/dbgaufs.h
 +#endif /* __DBGAUFS_H__ */
 diff -urN /usr/share/empty/fs/aufs/dcsub.c linux/fs/aufs/dcsub.c
 --- /usr/share/empty/fs/aufs/dcsub.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dcsub.c      2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/dcsub.c      2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,243 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -5088,7 +5093,7 @@ diff -urN /usr/share/empty/fs/aufs/dcsub.c linux/fs/aufs/dcsub.c
 +}
 diff -urN /usr/share/empty/fs/aufs/dcsub.h linux/fs/aufs/dcsub.h
 --- /usr/share/empty/fs/aufs/dcsub.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dcsub.h      2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/dcsub.h      2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,94 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -5186,7 +5191,7 @@ diff -urN /usr/share/empty/fs/aufs/dcsub.h linux/fs/aufs/dcsub.h
 +#endif /* __AUFS_DCSUB_H__ */
 diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c
 --- /usr/share/empty/fs/aufs/debug.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/debug.c      2012-10-17 10:31:01.772481151 +0200
++++ linux/fs/aufs/debug.c      2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,490 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -5314,7 +5319,7 @@ diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c
 +      if (!iinfo)
 +              return;
 +      dpri("i-1: bstart %d, bend %d, gen %d\n",
-+           iinfo->ii_bstart, iinfo->ii_bend, au_iigen(inode));
++           iinfo->ii_bstart, iinfo->ii_bend, au_iigen(inode, NULL));
 +      if (iinfo->ii_bstart < 0)
 +              return;
 +      hn = 0;
@@ -5680,7 +5685,7 @@ diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c
 +}
 diff -urN /usr/share/empty/fs/aufs/debug.h linux/fs/aufs/debug.h
 --- /usr/share/empty/fs/aufs/debug.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/debug.h      2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/debug.h      2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,242 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -5926,8 +5931,8 @@ diff -urN /usr/share/empty/fs/aufs/debug.h linux/fs/aufs/debug.h
 +#endif /* __AUFS_DEBUG_H__ */
 diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 --- /usr/share/empty/fs/aufs/dentry.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dentry.c     2012-10-17 10:31:01.772481151 +0200
-@@ -0,0 +1,1063 @@
++++ linux/fs/aufs/dentry.c     2012-12-13 20:41:10.428126759 +0100
+@@ -0,0 +1,1060 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -5963,7 +5968,6 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +struct au_do_lookup_args {
 +      unsigned int            flags;
 +      mode_t                  type;
-+      unsigned int            nd_flags;
 +};
 +
 +/*
@@ -6054,8 +6058,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 + * otherwise an error.
 + * can be called at unlinking with @type is zero.
 + */
-+int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type,
-+                 unsigned int flags)
++int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type)
 +{
 +      int npositive, err;
 +      aufs_bindex_t bindex, btail, bdiropq;
@@ -6063,8 +6066,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +      struct qstr whname;
 +      struct au_do_lookup_args args = {
 +              .flags          = 0,
-+              .type           = type,
-+              .nd_flags       = flags
++              .type           = type
 +      };
 +      const struct qstr *name = &dentry->d_name;
 +      struct dentry *parent;
@@ -6662,7 +6664,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +       * if current working dir is removed, it returns an error.
 +       * but the dentry is legal.
 +       */
-+      err = au_lkup_dentry(dentry, /*bstart*/0, /*type*/0, /*flags*/0);
++      err = au_lkup_dentry(dentry, /*bstart*/0, /*type*/0);
 +      AuDbgDentry(dentry);
 +      au_di_swap(tmp, dinfo);
 +      if (err == -ENOENT)
@@ -6993,8 +6995,8 @@ diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 +};
 diff -urN /usr/share/empty/fs/aufs/dentry.h linux/fs/aufs/dentry.h
 --- /usr/share/empty/fs/aufs/dentry.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dentry.h     2012-10-17 10:31:01.772481151 +0200
-@@ -0,0 +1,235 @@
++++ linux/fs/aufs/dentry.h     2012-12-13 20:41:10.428126759 +0100
+@@ -0,0 +1,234 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -7048,8 +7050,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.h linux/fs/aufs/dentry.h
 +int au_h_verify(struct dentry *h_dentry, unsigned int udba, struct inode *h_dir,
 +              struct dentry *h_parent, struct au_branch *br);
 +
-+int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type,
-+                 unsigned int flags);
++int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type);
 +int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex);
 +int au_refresh_dentry(struct dentry *dentry, struct dentry *parent);
 +int au_reval_dpath(struct dentry *dentry, unsigned int sigen);
@@ -7232,7 +7233,7 @@ diff -urN /usr/share/empty/fs/aufs/dentry.h linux/fs/aufs/dentry.h
 +#endif /* __AUFS_DENTRY_H__ */
 diff -urN /usr/share/empty/fs/aufs/dinfo.c linux/fs/aufs/dinfo.c
 --- /usr/share/empty/fs/aufs/dinfo.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dinfo.c      2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/dinfo.c      2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,543 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -7779,7 +7780,7 @@ diff -urN /usr/share/empty/fs/aufs/dinfo.c linux/fs/aufs/dinfo.c
 +}
 diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 --- /usr/share/empty/fs/aufs/dir.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dir.c        2012-10-17 10:31:01.772481151 +0200
++++ linux/fs/aufs/dir.c        2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,633 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -8416,7 +8417,7 @@ diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 +};
 diff -urN /usr/share/empty/fs/aufs/dir.h linux/fs/aufs/dir.h
 --- /usr/share/empty/fs/aufs/dir.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dir.h        2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/dir.h        2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,137 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -8557,7 +8558,7 @@ diff -urN /usr/share/empty/fs/aufs/dir.h linux/fs/aufs/dir.h
 +#endif /* __AUFS_DIR_H__ */
 diff -urN /usr/share/empty/fs/aufs/dynop.c linux/fs/aufs/dynop.c
 --- /usr/share/empty/fs/aufs/dynop.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dynop.c      2012-10-17 10:31:01.772481151 +0200
++++ linux/fs/aufs/dynop.c      2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,379 @@
 +/*
 + * Copyright (C) 2010-2012 Junjiro R. Okajima
@@ -8940,7 +8941,7 @@ diff -urN /usr/share/empty/fs/aufs/dynop.c linux/fs/aufs/dynop.c
 +}
 diff -urN /usr/share/empty/fs/aufs/dynop.h linux/fs/aufs/dynop.h
 --- /usr/share/empty/fs/aufs/dynop.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dynop.h      2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/dynop.h      2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,76 @@
 +/*
 + * Copyright (C) 2010-2012 Junjiro R. Okajima
@@ -9020,7 +9021,7 @@ diff -urN /usr/share/empty/fs/aufs/dynop.h linux/fs/aufs/dynop.h
 +#endif /* __AUFS_DYNOP_H__ */
 diff -urN /usr/share/empty/fs/aufs/export.c linux/fs/aufs/export.c
 --- /usr/share/empty/fs/aufs/export.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/export.c     2012-10-17 10:31:01.772481151 +0200
++++ linux/fs/aufs/export.c     2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,811 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -9246,7 +9247,7 @@ diff -urN /usr/share/empty/fs/aufs/export.c linux/fs/aufs/export.c
 +      sigen = au_sigen(sb);
 +      if (unlikely(is_bad_inode(inode)
 +                   || IS_DEADDIR(inode)
-+                   || sigen != au_iigen(inode)))
++                   || sigen != au_iigen(inode, NULL)))
 +              goto out_iput;
 +
 +      dentry = NULL;
@@ -9391,7 +9392,7 @@ diff -urN /usr/share/empty/fs/aufs/export.c linux/fs/aufs/export.c
 +              goto out;
 +
 +      dentry = ERR_PTR(-ENOMEM);
-+      arg.name = __getname_gfp(GFP_NOFS);
++      arg.name = (void *)__get_free_page(GFP_NOFS);
 +      if (unlikely(!arg.name))
 +              goto out_file;
 +      arg.ino = ino;
@@ -9423,7 +9424,7 @@ diff -urN /usr/share/empty/fs/aufs/export.c linux/fs/aufs/export.c
 +      }
 +
 +out_name:
-+      __putname(arg.name);
++      free_page((unsigned long)arg.name);
 +out_file:
 +      fput(file);
 +out:
@@ -9835,7 +9836,7 @@ diff -urN /usr/share/empty/fs/aufs/export.c linux/fs/aufs/export.c
 +}
 diff -urN /usr/share/empty/fs/aufs/file.c linux/fs/aufs/file.c
 --- /usr/share/empty/fs/aufs/file.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/file.c       2012-10-17 10:31:01.772481151 +0200
++++ linux/fs/aufs/file.c       2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,683 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -10522,7 +10523,7 @@ diff -urN /usr/share/empty/fs/aufs/file.c linux/fs/aufs/file.c
 +};
 diff -urN /usr/share/empty/fs/aufs/file.h linux/fs/aufs/file.h
 --- /usr/share/empty/fs/aufs/file.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/file.h       2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/file.h       2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,298 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -10824,7 +10825,7 @@ diff -urN /usr/share/empty/fs/aufs/file.h linux/fs/aufs/file.h
 +#endif /* __AUFS_FILE_H__ */
 diff -urN /usr/share/empty/fs/aufs/finfo.c linux/fs/aufs/finfo.c
 --- /usr/share/empty/fs/aufs/finfo.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/finfo.c      2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/finfo.c      2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,156 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -10984,8 +10985,8 @@ diff -urN /usr/share/empty/fs/aufs/finfo.c linux/fs/aufs/finfo.c
 +}
 diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
 --- /usr/share/empty/fs/aufs/f_op.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/f_op.c       2012-10-17 10:31:01.772481151 +0200
-@@ -0,0 +1,724 @@
++++ linux/fs/aufs/f_op.c       2012-12-13 20:41:10.428126759 +0100
+@@ -0,0 +1,723 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -11461,7 +11462,6 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
 +{
 +      return AuConv_VM_MAP(flags, GROWSDOWN)
 +              | AuConv_VM_MAP(flags, DENYWRITE)
-+              | AuConv_VM_MAP(flags, EXECUTABLE)
 +              | AuConv_VM_MAP(flags, LOCKED);
 +}
 +
@@ -11712,7 +11712,7 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
 +};
 diff -urN /usr/share/empty/fs/aufs/f_op_sp.c linux/fs/aufs/f_op_sp.c
 --- /usr/share/empty/fs/aufs/f_op_sp.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/f_op_sp.c    2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/f_op_sp.c    2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,295 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -12011,7 +12011,7 @@ diff -urN /usr/share/empty/fs/aufs/f_op_sp.c linux/fs/aufs/f_op_sp.c
 +}
 diff -urN /usr/share/empty/fs/aufs/fstype.h linux/fs/aufs/fstype.h
 --- /usr/share/empty/fs/aufs/fstype.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/fstype.h     2012-10-17 10:31:01.772481151 +0200
++++ linux/fs/aufs/fstype.h     2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,481 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -12496,7 +12496,7 @@ diff -urN /usr/share/empty/fs/aufs/fstype.h linux/fs/aufs/fstype.h
 +#endif /* __AUFS_FSTYPE_H__ */
 diff -urN /usr/share/empty/fs/aufs/hfsnotify.c linux/fs/aufs/hfsnotify.c
 --- /usr/share/empty/fs/aufs/hfsnotify.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hfsnotify.c  2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/hfsnotify.c  2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,257 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -12757,7 +12757,7 @@ diff -urN /usr/share/empty/fs/aufs/hfsnotify.c linux/fs/aufs/hfsnotify.c
 +};
 diff -urN /usr/share/empty/fs/aufs/hfsplus.c linux/fs/aufs/hfsplus.c
 --- /usr/share/empty/fs/aufs/hfsplus.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hfsplus.c    2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/hfsplus.c    2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,57 @@
 +/*
 + * Copyright (C) 2010-2012 Junjiro R. Okajima
@@ -12818,7 +12818,7 @@ diff -urN /usr/share/empty/fs/aufs/hfsplus.c linux/fs/aufs/hfsplus.c
 +}
 diff -urN /usr/share/empty/fs/aufs/hnotify.c linux/fs/aufs/hnotify.c
 --- /usr/share/empty/fs/aufs/hnotify.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hnotify.c    2012-10-17 10:31:01.772481151 +0200
++++ linux/fs/aufs/hnotify.c    2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,713 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -13535,8 +13535,8 @@ diff -urN /usr/share/empty/fs/aufs/hnotify.c linux/fs/aufs/hnotify.c
 +}
 diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 --- /usr/share/empty/fs/aufs/iinfo.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/iinfo.c      2012-08-26 08:39:00.760508065 +0200
-@@ -0,0 +1,264 @@
++++ linux/fs/aufs/iinfo.c      2012-12-13 20:41:10.431460173 +0100
+@@ -0,0 +1,276 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -13649,10 +13649,22 @@ diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 +      hinode->hi_whdentry = h_wh;
 +}
 +
-+void au_update_iigen(struct inode *inode)
++void au_update_iigen(struct inode *inode, int half)
 +{
-+      atomic_set(&au_ii(inode)->ii_generation, au_sigen(inode->i_sb));
-+      /* smp_mb(); */ /* atomic_set */
++      struct au_iinfo *iinfo;
++      struct au_iigen *iigen;
++      unsigned int sigen;
++
++      sigen = au_sigen(inode->i_sb);
++      iinfo = au_ii(inode);
++      iigen = &iinfo->ii_generation;
++      spin_lock(&iinfo->ii_genspin);
++      iigen->ig_generation = sigen;
++      if (half)
++              au_ig_fset(iigen->ig_flags, HALF_REFRESHED);
++      else
++              au_ig_fclr(iigen->ig_flags, HALF_REFRESHED);
++      spin_unlock(&iinfo->ii_genspin);
 +}
 +
 +/* it may be called at remount time, too */
@@ -13703,6 +13715,7 @@ diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 +      struct au_iinfo *iinfo = &c->iinfo;
 +      static struct lock_class_key aufs_ii;
 +
++      spin_lock_init(&iinfo->ii_genspin);
 +      au_rw_init(&iinfo->ii_rwsem);
 +      au_rw_class(&iinfo->ii_rwsem, &aufs_ii);
 +      inode_init_once(&c->vfs_inode);
@@ -13725,8 +13738,7 @@ diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 +              for (i = 0; i < nbr; i++)
 +                      iinfo->ii_hinode[i].hi_id = -1;
 +
-+              atomic_set(&iinfo->ii_generation, au_sigen(sb));
-+              /* smp_mb(); */ /* atomic_set */
++              iinfo->ii_generation.ig_generation = au_sigen(sb);
 +              iinfo->ii_bstart = -1;
 +              iinfo->ii_bend = -1;
 +              iinfo->ii_vdir = NULL;
@@ -13803,8 +13815,8 @@ diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 +}
 diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 --- /usr/share/empty/fs/aufs/inode.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/inode.c      2012-08-26 08:39:00.760508065 +0200
-@@ -0,0 +1,478 @@
++++ linux/fs/aufs/inode.c      2012-12-13 20:41:10.431460173 +0100
+@@ -0,0 +1,488 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -13841,7 +13853,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 +static void au_refresh_hinode_attr(struct inode *inode, int do_version)
 +{
 +      au_cpup_attr_all(inode, /*force*/0);
-+      au_update_iigen(inode);
++      au_update_iigen(inode, /*half*/1);
 +      if (do_version)
 +              inode->i_version++;
 +}
@@ -14060,6 +14072,8 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 +static int reval_inode(struct inode *inode, struct dentry *dentry)
 +{
 +      int err;
++      unsigned int gen;
++      struct au_iigen iigen;
 +      aufs_bindex_t bindex, bend;
 +      struct inode *h_inode, *h_dinode;
 +
@@ -14078,12 +14092,20 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 +      bend = au_ibend(inode);
 +      for (bindex = au_ibstart(inode); bindex <= bend; bindex++) {
 +              h_inode = au_h_iptr(inode, bindex);
-+              if (h_inode && h_inode == h_dinode) {
-+                      err = 0;
-+                      if (au_iigen_test(inode, au_digen(dentry)))
-+                              err = au_refresh_hinode(inode, dentry);
++              if (!h_inode || h_inode != h_dinode)
++                      continue;
++
++              err = 0;
++              gen = au_iigen(inode, &iigen);
++              if (gen == au_digen(dentry)
++                  && !au_ig_ftest(iigen.ig_flags, HALF_REFRESHED))
 +                      break;
-+              }
++
++              /* fully refresh inode using dentry */
++              err = au_refresh_hinode(inode, dentry);
++              if (!err)
++                      au_update_iigen(inode, /*half*/0);
++              break;
 +      }
 +
 +      if (unlikely(err))
@@ -14285,8 +14307,8 @@ diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 +}
 diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 --- /usr/share/empty/fs/aufs/inode.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/inode.h      2012-10-17 10:31:01.772481151 +0200
-@@ -0,0 +1,560 @@
++++ linux/fs/aufs/inode.h      2012-12-13 20:41:10.431460173 +0100
+@@ -0,0 +1,588 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -14340,9 +14362,22 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 +      struct dentry           *hi_whdentry;
 +};
 +
++/* ig_flags */
++#define AuIG_HALF_REFRESHED           1
++#define au_ig_ftest(flags, name)      ((flags) & AuIG_##name)
++#define au_ig_fset(flags, name) \
++      do { (flags) |= AuIG_##name; } while (0)
++#define au_ig_fclr(flags, name) \
++      do { (flags) &= ~AuIG_##name; } while (0)
++
++struct au_iigen {
++      __u32           ig_generation, ig_flags;
++};
++
 +struct au_vdir;
 +struct au_iinfo {
-+      atomic_t                ii_generation;
++      spinlock_t              ii_genspin;
++      struct au_iigen         ii_generation;
 +      struct super_block      *ii_hsb1;       /* no get/put */
 +
 +      struct au_rwsem         ii_rwsem;
@@ -14491,7 +14526,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 +void au_set_h_iptr(struct inode *inode, aufs_bindex_t bindex,
 +                 struct inode *h_inode, unsigned int flags);
 +
-+void au_update_iigen(struct inode *inode);
++void au_update_iigen(struct inode *inode, int half);
 +void au_update_ibrange(struct inode *inode, int do_put_zero);
 +
 +void au_icntnr_init_once(void *_c);
@@ -14599,9 +14634,19 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 +#endif
 +}
 +
-+static inline unsigned int au_iigen(struct inode *inode)
++static inline unsigned int au_iigen(struct inode *inode, struct au_iigen *iigen)
 +{
-+      return atomic_read(&au_ii(inode)->ii_generation);
++      unsigned int gen;
++      struct au_iinfo *iinfo;
++
++      iinfo = au_ii(inode);
++      spin_lock(&iinfo->ii_genspin);
++      if (iigen)
++              *iigen = iinfo->ii_generation;
++      gen = iinfo->ii_generation.ig_generation;
++      spin_unlock(&iinfo->ii_genspin);
++
++      return gen;
 +}
 +
 +/* tiny test for inode number */
@@ -14618,7 +14663,12 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 +
 +static inline void au_iigen_dec(struct inode *inode)
 +{
-+      atomic_dec(&au_ii(inode)->ii_generation);
++      struct au_iinfo *iinfo;
++
++      iinfo = au_ii(inode);
++      spin_lock(&iinfo->ii_genspin);
++      iinfo->ii_generation.ig_generation--;
++      spin_unlock(&iinfo->ii_genspin);
 +}
 +
 +static inline int au_iigen_test(struct inode *inode, unsigned int sigen)
@@ -14626,7 +14676,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 +      int err;
 +
 +      err = 0;
-+      if (unlikely(inode && au_iigen(inode) != sigen))
++      if (unlikely(inode && au_iigen(inode, NULL) != sigen))
 +              err = -EIO;
 +
 +      return err;
@@ -14849,7 +14899,7 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 +#endif /* __AUFS_INODE_H__ */
 diff -urN /usr/share/empty/fs/aufs/ioctl.c linux/fs/aufs/ioctl.c
 --- /usr/share/empty/fs/aufs/ioctl.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/ioctl.c      2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/ioctl.c      2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,196 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -15049,8 +15099,8 @@ diff -urN /usr/share/empty/fs/aufs/ioctl.c linux/fs/aufs/ioctl.c
 +#endif
 diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 --- /usr/share/empty/fs/aufs/i_op_add.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_add.c   2012-10-17 10:31:01.772481151 +0200
-@@ -0,0 +1,712 @@
++++ linux/fs/aufs/i_op_add.c   2012-12-13 20:41:10.431460173 +0100
+@@ -0,0 +1,713 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -15320,7 +15370,8 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +      h_dir = au_pinned_h_dir(&pin);
 +      switch (arg->type) {
 +      case Creat:
-+              err = vfsub_create(h_dir, &h_path, arg->u.c.mode, arg->u.c.want_excl);
++              err = vfsub_create(h_dir, &h_path, arg->u.c.mode,
++                                 arg->u.c.want_excl);
 +              break;
 +      case Symlink:
 +              err = vfsub_symlink(h_dir, &h_path, arg->u.s.symname);
@@ -15765,8 +15816,8 @@ diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 +}
 diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 --- /usr/share/empty/fs/aufs/i_op.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op.c       2012-10-17 10:31:01.772481151 +0200
-@@ -0,0 +1,1009 @@
++++ linux/fs/aufs/i_op.c       2012-12-13 20:41:10.431460173 +0100
+@@ -0,0 +1,1026 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -15932,15 +15983,21 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +
 +      IMustLock(dir);
 +
++      /* todo: support rcu-walk? */
++      ret = ERR_PTR(-ECHILD);
++      if (flags & LOOKUP_RCU)
++              goto out;
++
++      ret = ERR_PTR(-ENAMETOOLONG);
++      if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN))
++              goto out;
++
 +      sb = dir->i_sb;
 +      err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
 +      ret = ERR_PTR(err);
 +      if (unlikely(err))
 +              goto out;
 +
-+      ret = ERR_PTR(-ENAMETOOLONG);
-+      if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN))
-+              goto out_si;
 +      err = au_di_init(dentry);
 +      ret = ERR_PTR(err);
 +      if (unlikely(err))
@@ -15955,7 +16012,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +              err = au_digen_test(parent, au_sigen(sb));
 +      if (!err) {
 +              npositive = au_lkup_dentry(dentry, au_dbstart(parent),
-+                                         /*type*/0, flags);
++                                         /*type*/0);
 +              err = npositive;
 +      }
 +      di_read_unlock(parent, AuLock_IR);
@@ -15973,6 +16030,13 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +      }
 +
 +      ret = d_splice_alias(inode, dentry);
++#if 0
++      if (unlikely(d_need_lookup(dentry))) {
++              spin_lock(&dentry->d_lock);
++              dentry->d_flags &= ~DCACHE_NEED_LOOKUP;
++              spin_unlock(&dentry->d_lock);
++      } else
++#endif
 +      if (unlikely(IS_ERR(ret) && inode)) {
 +              ii_write_unlock(inode);
 +              iput(inode);
@@ -16676,7 +16740,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +      } buf;
 +
 +      err = -ENOMEM;
-+      buf.k = __getname_gfp(GFP_NOFS);
++      buf.k = (void *)__get_free_page(GFP_NOFS);
 +      if (unlikely(!buf.k))
 +              goto out;
 +
@@ -16701,7 +16765,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +      }
 +
 +out_name:
-+      __putname(buf.k);
++      free_page((unsigned long)buf.k);
 +out:
 +      AuTraceErr(err);
 +      return ERR_PTR(err);
@@ -16710,7 +16774,11 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +static void aufs_put_link(struct dentry *dentry __maybe_unused,
 +                        struct nameidata *nd, void *cookie __maybe_unused)
 +{
-+      __putname(nd_get_link(nd));
++      char *p;
++
++      p = nd_get_link(nd);
++      if (!IS_ERR_OR_NULL(p))
++              free_page((unsigned long)p);
 +}
 +
 +/* ---------------------------------------------------------------------- */
@@ -16778,8 +16846,8 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 +};
 diff -urN /usr/share/empty/fs/aufs/i_op_del.c linux/fs/aufs/i_op_del.c
 --- /usr/share/empty/fs/aufs/i_op_del.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_del.c   2012-10-17 10:31:01.772481151 +0200
-@@ -0,0 +1,478 @@
++++ linux/fs/aufs/i_op_del.c   2012-12-13 20:41:10.431460173 +0100
+@@ -0,0 +1,477 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -16850,8 +16918,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_del.c linux/fs/aufs/i_op_del.c
 +                      au_di_cp(tmp, dinfo);
 +                      au_di_swap(tmp, dinfo);
 +                      /* returns the number of positive dentries */
-+                      need_wh = au_lkup_dentry(dentry, bstart + 1, /*type*/0,
-+                                               /*flags*/0);
++                      need_wh = au_lkup_dentry(dentry, bstart + 1, /*type*/0);
 +                      au_di_swap(tmp, dinfo);
 +                      au_rw_write_unlock(&tmp->di_rwsem);
 +                      au_di_free(tmp);
@@ -17260,7 +17327,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_del.c linux/fs/aufs/i_op_del.c
 +}
 diff -urN /usr/share/empty/fs/aufs/i_op_ren.c linux/fs/aufs/i_op_ren.c
 --- /usr/share/empty/fs/aufs/i_op_ren.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_ren.c   2012-10-17 10:31:01.772481151 +0200
++++ linux/fs/aufs/i_op_ren.c   2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,1026 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -18290,7 +18357,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op_ren.c linux/fs/aufs/i_op_ren.c
 +}
 diff -urN /usr/share/empty/fs/aufs/Kconfig linux/fs/aufs/Kconfig
 --- /usr/share/empty/fs/aufs/Kconfig   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/Kconfig      2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/Kconfig      2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,203 @@
 +config AUFS_FS
 +      tristate "Aufs (Advanced multi layered unification filesystem) support"
@@ -18497,7 +18564,7 @@ diff -urN /usr/share/empty/fs/aufs/Kconfig linux/fs/aufs/Kconfig
 +endif
 diff -urN /usr/share/empty/fs/aufs/loop.c linux/fs/aufs/loop.c
 --- /usr/share/empty/fs/aufs/loop.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/loop.c       2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/loop.c       2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,133 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -18634,7 +18701,7 @@ diff -urN /usr/share/empty/fs/aufs/loop.c linux/fs/aufs/loop.c
 +}
 diff -urN /usr/share/empty/fs/aufs/loop.h linux/fs/aufs/loop.h
 --- /usr/share/empty/fs/aufs/loop.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/loop.h       2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/loop.h       2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,50 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -18688,7 +18755,7 @@ diff -urN /usr/share/empty/fs/aufs/loop.h linux/fs/aufs/loop.h
 +#endif /* __AUFS_LOOP_H__ */
 diff -urN /usr/share/empty/fs/aufs/magic.mk linux/fs/aufs/magic.mk
 --- /usr/share/empty/fs/aufs/magic.mk  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/magic.mk     2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/magic.mk     2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,54 @@
 +
 +# defined in ${srctree}/fs/fuse/inode.c
@@ -18746,7 +18813,7 @@ diff -urN /usr/share/empty/fs/aufs/magic.mk linux/fs/aufs/magic.mk
 +endif
 diff -urN /usr/share/empty/fs/aufs/Makefile linux/fs/aufs/Makefile
 --- /usr/share/empty/fs/aufs/Makefile  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/Makefile     2012-08-26 08:39:00.757174634 +0200
++++ linux/fs/aufs/Makefile     2012-12-13 20:41:10.428126759 +0100
 @@ -0,0 +1,42 @@
 +
 +include ${src}/magic.mk
@@ -18792,8 +18859,8 @@ diff -urN /usr/share/empty/fs/aufs/Makefile linux/fs/aufs/Makefile
 +aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o
 diff -urN /usr/share/empty/fs/aufs/module.c linux/fs/aufs/module.c
 --- /usr/share/empty/fs/aufs/module.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/module.c     2012-08-26 08:39:00.760508065 +0200
-@@ -0,0 +1,196 @@
++++ linux/fs/aufs/module.c     2012-12-13 20:41:10.431460173 +0100
+@@ -0,0 +1,202 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -18861,6 +18928,12 @@ diff -urN /usr/share/empty/fs/aufs/module.c linux/fs/aufs/module.c
 +{
 +      int i;
 +
++      /*
++       * Make sure all delayed rcu free inodes are flushed before we
++       * destroy cache.
++       */
++      rcu_barrier();
++
 +      /* excluding AuCache_HNOTIFY */
 +      BUILD_BUG_ON(AuCache_HNOTIFY + 1 != AuCache_Last);
 +      for (i = 0; i < AuCache_HNOTIFY; i++)
@@ -18992,7 +19065,7 @@ diff -urN /usr/share/empty/fs/aufs/module.c linux/fs/aufs/module.c
 +module_exit(aufs_exit);
 diff -urN /usr/share/empty/fs/aufs/module.h linux/fs/aufs/module.h
 --- /usr/share/empty/fs/aufs/module.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/module.h     2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/module.h     2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,105 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -19101,7 +19174,7 @@ diff -urN /usr/share/empty/fs/aufs/module.h linux/fs/aufs/module.h
 +#endif /* __AUFS_MODULE_H__ */
 diff -urN /usr/share/empty/fs/aufs/opts.c linux/fs/aufs/opts.c
 --- /usr/share/empty/fs/aufs/opts.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/opts.c       2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/opts.c       2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,1677 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -20782,7 +20855,7 @@ diff -urN /usr/share/empty/fs/aufs/opts.c linux/fs/aufs/opts.c
 +}
 diff -urN /usr/share/empty/fs/aufs/opts.h linux/fs/aufs/opts.h
 --- /usr/share/empty/fs/aufs/opts.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/opts.h       2012-08-26 08:39:00.760508065 +0200
++++ linux/fs/aufs/opts.h       2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,209 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -20995,7 +21068,7 @@ diff -urN /usr/share/empty/fs/aufs/opts.h linux/fs/aufs/opts.h
 +#endif /* __AUFS_OPTS_H__ */
 diff -urN /usr/share/empty/fs/aufs/plink.c linux/fs/aufs/plink.c
 --- /usr/share/empty/fs/aufs/plink.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/plink.c      2012-10-17 10:31:01.775814563 +0200
++++ linux/fs/aufs/plink.c      2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,511 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -21510,7 +21583,7 @@ diff -urN /usr/share/empty/fs/aufs/plink.c linux/fs/aufs/plink.c
 +}
 diff -urN /usr/share/empty/fs/aufs/poll.c linux/fs/aufs/poll.c
 --- /usr/share/empty/fs/aufs/poll.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/poll.c       2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/poll.c       2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,56 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -21570,7 +21643,7 @@ diff -urN /usr/share/empty/fs/aufs/poll.c linux/fs/aufs/poll.c
 +}
 diff -urN /usr/share/empty/fs/aufs/procfs.c linux/fs/aufs/procfs.c
 --- /usr/share/empty/fs/aufs/procfs.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/procfs.c     2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/procfs.c     2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,170 @@
 +/*
 + * Copyright (C) 2010-2012 Junjiro R. Okajima
@@ -21744,7 +21817,7 @@ diff -urN /usr/share/empty/fs/aufs/procfs.c linux/fs/aufs/procfs.c
 +}
 diff -urN /usr/share/empty/fs/aufs/rdu.c linux/fs/aufs/rdu.c
 --- /usr/share/empty/fs/aufs/rdu.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/rdu.c        2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/rdu.c        2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,384 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -22132,7 +22205,7 @@ diff -urN /usr/share/empty/fs/aufs/rdu.c linux/fs/aufs/rdu.c
 +#endif
 diff -urN /usr/share/empty/fs/aufs/rwsem.h linux/fs/aufs/rwsem.h
 --- /usr/share/empty/fs/aufs/rwsem.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/rwsem.h      2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/rwsem.h      2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,188 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -22324,7 +22397,7 @@ diff -urN /usr/share/empty/fs/aufs/rwsem.h linux/fs/aufs/rwsem.h
 +#endif /* __AUFS_RWSEM_H__ */
 diff -urN /usr/share/empty/fs/aufs/sbinfo.c linux/fs/aufs/sbinfo.c
 --- /usr/share/empty/fs/aufs/sbinfo.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/sbinfo.c     2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/sbinfo.c     2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,343 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -22485,7 +22558,7 @@ diff -urN /usr/share/empty/fs/aufs/sbinfo.c linux/fs/aufs/sbinfo.c
 +
 +      gen = ++au_sbi(sb)->si_generation;
 +      au_update_digen(sb->s_root);
-+      au_update_iigen(sb->s_root->d_inode);
++      au_update_iigen(sb->s_root->d_inode, /*half*/0);
 +      sb->s_root->d_inode->i_version++;
 +      return gen;
 +}
@@ -22671,7 +22744,7 @@ diff -urN /usr/share/empty/fs/aufs/sbinfo.c linux/fs/aufs/sbinfo.c
 +}
 diff -urN /usr/share/empty/fs/aufs/spl.h linux/fs/aufs/spl.h
 --- /usr/share/empty/fs/aufs/spl.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/spl.h        2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/spl.h        2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,62 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -22737,8 +22810,8 @@ diff -urN /usr/share/empty/fs/aufs/spl.h linux/fs/aufs/spl.h
 +#endif /* __AUFS_SPL_H__ */
 diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 --- /usr/share/empty/fs/aufs/super.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/super.c      2012-10-17 10:31:01.775814563 +0200
-@@ -0,0 +1,962 @@
++++ linux/fs/aufs/super.c      2012-12-13 20:41:10.431460173 +0100
+@@ -0,0 +1,993 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -23158,6 +23231,36 @@ diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 +
 +/* ---------------------------------------------------------------------- */
 +
++static int aufs_sync_fs(struct super_block *sb, int wait)
++{
++      int err, e;
++      aufs_bindex_t bend, bindex;
++      struct au_branch *br;
++      struct super_block *h_sb;
++
++      err = 0;
++      si_noflush_read_lock(sb);
++      bend = au_sbend(sb);
++      for (bindex = 0; bindex <= bend; bindex++) {
++              br = au_sbr(sb, bindex);
++              if (!au_br_writable(br->br_perm))
++                      continue;
++
++              h_sb = au_sbr_sb(sb, bindex);
++              if (h_sb->s_op->sync_fs) {
++                      e = h_sb->s_op->sync_fs(h_sb, wait);
++                      if (unlikely(e && !err))
++                              err = e;
++                      /* go on even if an error happens */
++              }
++      }
++      si_read_unlock(sb);
++
++      return err;
++}
++
++/* ---------------------------------------------------------------------- */
++
 +/* final actions when unmounting a file system */
 +static void aufs_put_super(struct super_block *sb)
 +{
@@ -23368,7 +23471,7 @@ diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 +      sigen = au_sigen(sb);
 +      for (ull = 0; ull < max; ull++) {
 +              inode = array[ull];
-+              if (au_iigen(inode) != sigen) {
++              if (au_iigen(inode, NULL) != sigen) {
 +                      ii_write_lock_child(inode);
 +                      e = au_refresh_hinode_self(inode);
 +                      ii_write_unlock(inode);
@@ -23521,6 +23624,7 @@ diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 +      .show_options   = aufs_show_options,
 +      .statfs         = aufs_statfs,
 +      .put_super      = aufs_put_super,
++      .sync_fs        = aufs_sync_fs,
 +      .remount_fs     = aufs_remount_fs
 +};
 +
@@ -23703,7 +23807,7 @@ diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
 +};
 diff -urN /usr/share/empty/fs/aufs/super.h linux/fs/aufs/super.h
 --- /usr/share/empty/fs/aufs/super.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/super.h      2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/super.h      2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,546 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -24253,7 +24357,7 @@ diff -urN /usr/share/empty/fs/aufs/super.h linux/fs/aufs/super.h
 +#endif /* __AUFS_SUPER_H__ */
 diff -urN /usr/share/empty/fs/aufs/sysaufs.c linux/fs/aufs/sysaufs.c
 --- /usr/share/empty/fs/aufs/sysaufs.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/sysaufs.c    2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/sysaufs.c    2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,105 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -24362,7 +24466,7 @@ diff -urN /usr/share/empty/fs/aufs/sysaufs.c linux/fs/aufs/sysaufs.c
 +}
 diff -urN /usr/share/empty/fs/aufs/sysaufs.h linux/fs/aufs/sysaufs.h
 --- /usr/share/empty/fs/aufs/sysaufs.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/sysaufs.h    2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/sysaufs.h    2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,104 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -24470,7 +24574,7 @@ diff -urN /usr/share/empty/fs/aufs/sysaufs.h linux/fs/aufs/sysaufs.h
 +#endif /* __SYSAUFS_H__ */
 diff -urN /usr/share/empty/fs/aufs/sysfs.c linux/fs/aufs/sysfs.c
 --- /usr/share/empty/fs/aufs/sysfs.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/sysfs.c      2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/sysfs.c      2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,257 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -24731,7 +24835,7 @@ diff -urN /usr/share/empty/fs/aufs/sysfs.c linux/fs/aufs/sysfs.c
 +}
 diff -urN /usr/share/empty/fs/aufs/sysrq.c linux/fs/aufs/sysrq.c
 --- /usr/share/empty/fs/aufs/sysrq.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/sysrq.c      2012-10-17 10:31:01.775814563 +0200
++++ linux/fs/aufs/sysrq.c      2012-12-13 20:41:10.431460173 +0100
 @@ -0,0 +1,148 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -24883,7 +24987,7 @@ diff -urN /usr/share/empty/fs/aufs/sysrq.c linux/fs/aufs/sysrq.c
 +}
 diff -urN /usr/share/empty/fs/aufs/vdir.c linux/fs/aufs/vdir.c
 --- /usr/share/empty/fs/aufs/vdir.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/vdir.c       2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/vdir.c       2012-12-13 20:41:10.434793588 +0100
 @@ -0,0 +1,885 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -25409,7 +25513,7 @@ diff -urN /usr/share/empty/fs/aufs/vdir.c linux/fs/aufs/vdir.c
 +      AuDebugOn(!au_opt_test(au_mntflags(sb), SHWH));
 +
 +      err = -ENOMEM;
-+      o = p = __getname_gfp(GFP_NOFS);
++      o = p = (void *)__get_free_page(GFP_NOFS);
 +      if (unlikely(!p))
 +              goto out;
 +
@@ -25429,7 +25533,7 @@ diff -urN /usr/share/empty/fs/aufs/vdir.c linux/fs/aufs/vdir.c
 +              }
 +      }
 +
-+      __putname(o);
++      free_page((unsigned long)o);
 +
 +out:
 +      AuTraceErr(err);
@@ -25772,7 +25876,7 @@ diff -urN /usr/share/empty/fs/aufs/vdir.c linux/fs/aufs/vdir.c
 +}
 diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 --- /usr/share/empty/fs/aufs/vfsub.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/vfsub.c      2012-10-17 10:31:01.775814563 +0200
++++ linux/fs/aufs/vfsub.c      2012-12-13 20:41:10.434793588 +0100
 @@ -0,0 +1,777 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -26553,8 +26657,8 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
 +}
 diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
 --- /usr/share/empty/fs/aufs/vfsub.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/vfsub.h      2012-10-17 10:31:01.775814563 +0200
-@@ -0,0 +1,283 @@
++++ linux/fs/aufs/vfsub.h      2012-12-13 20:41:10.434793588 +0100
+@@ -0,0 +1,284 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -26720,7 +26824,8 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
 +void vfsub_unlock_rename(struct dentry *d1, struct au_hinode *hdir1,
 +                       struct dentry *d2, struct au_hinode *hdir2);
 +
-+int vfsub_create(struct inode *dir, struct path *path, int mode, bool want_excl);
++int vfsub_create(struct inode *dir, struct path *path, int mode,
++               bool want_excl);
 +int vfsub_symlink(struct inode *dir, struct path *path,
 +                const char *symname);
 +int vfsub_mknod(struct inode *dir, struct path *path, int mode, dev_t dev);
@@ -26840,7 +26945,7 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
 +#endif /* __AUFS_VFSUB_H__ */
 diff -urN /usr/share/empty/fs/aufs/wbr_policy.c linux/fs/aufs/wbr_policy.c
 --- /usr/share/empty/fs/aufs/wbr_policy.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/wbr_policy.c 2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/wbr_policy.c 2012-12-13 20:41:10.434793588 +0100
 @@ -0,0 +1,700 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -27544,7 +27649,7 @@ diff -urN /usr/share/empty/fs/aufs/wbr_policy.c linux/fs/aufs/wbr_policy.c
 +};
 diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 --- /usr/share/empty/fs/aufs/whout.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/whout.c      2012-10-17 10:31:01.775814563 +0200
++++ linux/fs/aufs/whout.c      2012-12-13 20:41:10.434793588 +0100
 @@ -0,0 +1,1042 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -28363,7 +28468,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 +      struct au_vdir_destr *str;
 +
 +      err = -ENOMEM;
-+      p = __getname_gfp(GFP_NOFS);
++      p = (void *)__get_free_page(GFP_NOFS);
 +      wh_name.name = p;
 +      if (unlikely(!wh_name.name))
 +              goto out;
@@ -28393,7 +28498,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 +                      break;
 +              }
 +      }
-+      __putname(wh_name.name);
++      free_page((unsigned long)wh_name.name);
 +
 +out:
 +      return err;
@@ -28590,7 +28695,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.c linux/fs/aufs/whout.c
 +}
 diff -urN /usr/share/empty/fs/aufs/whout.h linux/fs/aufs/whout.h
 --- /usr/share/empty/fs/aufs/whout.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/whout.h      2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/whout.h      2012-12-13 20:41:10.434793588 +0100
 @@ -0,0 +1,88 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -28682,7 +28787,7 @@ diff -urN /usr/share/empty/fs/aufs/whout.h linux/fs/aufs/whout.h
 +#endif /* __AUFS_WHOUT_H__ */
 diff -urN /usr/share/empty/fs/aufs/wkq.c linux/fs/aufs/wkq.c
 --- /usr/share/empty/fs/aufs/wkq.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/wkq.c        2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/wkq.c        2012-12-13 20:41:10.434793588 +0100
 @@ -0,0 +1,214 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -28900,7 +29005,7 @@ diff -urN /usr/share/empty/fs/aufs/wkq.c linux/fs/aufs/wkq.c
 +}
 diff -urN /usr/share/empty/fs/aufs/wkq.h linux/fs/aufs/wkq.h
 --- /usr/share/empty/fs/aufs/wkq.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/wkq.h        2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/wkq.h        2012-12-13 20:41:10.434793588 +0100
 @@ -0,0 +1,92 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -28996,7 +29101,7 @@ diff -urN /usr/share/empty/fs/aufs/wkq.h linux/fs/aufs/wkq.h
 +#endif /* __AUFS_WKQ_H__ */
 diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
 --- /usr/share/empty/fs/aufs/xino.c    1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/xino.c       2012-08-26 08:39:00.763841498 +0200
++++ linux/fs/aufs/xino.c       2012-12-13 20:41:10.434793588 +0100
 @@ -0,0 +1,1264 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -30208,7 +30313,7 @@ diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
 +
 +      if (bwr >= 0) {
 +              file = ERR_PTR(-ENOMEM);
-+              page = __getname_gfp(GFP_NOFS);
++              page = (void *)__get_free_page(GFP_NOFS);
 +              if (unlikely(!page))
 +                      goto out;
 +              path.mnt = br->br_mnt;
@@ -30222,7 +30327,7 @@ diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
 +                      if (!IS_ERR(file))
 +                              au_xino_brid_set(sb, br->br_id);
 +              }
-+              __putname(page);
++              free_page((unsigned long)page);
 +      } else {
 +              file = au_xino_create(sb, AUFS_XINO_DEFPATH, /*silent*/0);
 +              if (IS_ERR(file))
@@ -30264,7 +30369,30 @@ diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
 +}
 diff -urN /usr/share/empty/include/linux/aufs_type.h linux/include/linux/aufs_type.h
 --- /usr/share/empty/include/linux/aufs_type.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux/include/linux/aufs_type.h    2012-10-17 10:31:01.775814563 +0200
++++ linux/include/linux/aufs_type.h    2012-12-13 20:41:10.434793588 +0100
+@@ -0,0 +1,19 @@
++/*
++ * Copyright (C) 2012 Junjiro R. Okajima
++ *
++ * This program, aufs 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; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
++ */
++
++#include <uapi/linux/aufs_type.h>
+diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/linux/aufs_type.h
+--- /usr/share/empty/include/uapi/linux/aufs_type.h    1970-01-01 01:00:00.000000000 +0100
++++ linux/include/uapi/linux/aufs_type.h       2012-12-13 20:41:10.434793588 +0100
 @@ -0,0 +1,233 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -30307,7 +30435,7 @@ diff -urN /usr/share/empty/include/linux/aufs_type.h linux/include/linux/aufs_ty
 +
 +#include <linux/limits.h>
 +
-+#define AUFS_VERSION  "3.6-20121015"
++#define AUFS_VERSION  "3.x-rcN-20121210"
 +
 +/* todo? move this to linux-2.6.19/include/magic.h */
 +#define AUFS_SUPER_MAGIC      ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
index 531b8121c13e6f704b6b125d15a6d8377e26c060..56ec97d2f3d68142deb71e16e7c8f4d3d9c247ed 100644 (file)
@@ -1,6 +1,6 @@
-diff -Naur linux-2.6.24.orig/include/linux/pkt_sched.h linux-2.6.24/include/linux/pkt_sched.h
---- linux-2.6.24.orig/include/linux/pkt_sched.h        2008-01-24 14:58:37.000000000 -0800
-+++ linux-2.6.24/include/linux/pkt_sched.h     2008-01-28 00:27:12.000000000 -0800
+diff -Naur linux-2.6.24.orig/include/uapi/linux/pkt_sched.h linux-2.6.24/include/uapi/linux/pkt_sched.h
+--- linux-2.6.24.orig/include/uapi/linux/pkt_sched.h   2008-01-24 14:58:37.000000000 -0800
++++ linux-2.6.24/include/uapi/linux/pkt_sched.h        2008-01-28 00:27:12.000000000 -0800
 @@ -157,6 +157,33 @@
   *    to change these parameters in compile time.
   */
index 32606e32210168c7517e68625287e0d577f6412c..a4ef4626dc6464137abb317529b2779dfbfd78c9 100644 (file)
@@ -1022,9 +1022,9 @@ diff -uNr linux-3.1/include/linux/netfilter/xt_IMQ.h linux-3.1-imq/include/linux
 +
 +#endif /* _XT_IMQ_H */
 +
-diff -uNr linux-3.1/include/linux/netfilter.h linux-3.1-imq/include/linux/netfilter.h
---- linux-3.1/include/linux/netfilter.h        2011-10-24 10:10:05.000000000 +0300
-+++ linux-3.1-imq/include/linux/netfilter.h    2011-11-04 11:12:52.109723710 +0200
+diff -uNr linux-3.1/include/uapi/linux/netfilter.h linux-3.1-imq/include/uapi/linux/netfilter.h
+--- linux-3.1/include/uapi/linux/netfilter.h   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/include/uapi/linux/netfilter.h       2011-11-04 11:12:52.109723710 +0200
 @@ -22,7 +22,8 @@
  #define NF_QUEUE 3
  #define NF_REPEAT 4
index 319e939e8e64b0cf50b28c7d83c63f8cf42f00ed..6844b9406666b81345139a8786e1da2693ef319d 100644 (file)
@@ -9,6 +9,7 @@ CPU_SUP_INTEL all=y
 DEBUG_NMI_SELFTEST all=n
 DEBUG_SET_MODULE_RONX all=y
 DEBUG_STRICT_USER_COPY_CHECKS all=n
+DEBUG_TLBFLUSH all=n
 DMI all=y
 EFI_STUB all=y
 GART_IOMMU all=y
@@ -139,7 +140,9 @@ CRYPTO_BLOWFISH_X86_64 all=m
 CRYPTO_CAMELLIA all=m
 CRYPTO_CAMELLIA_X86_64 all=m
 CRYPTO_CAST5 all=m
+CRYPTO_CAST5_AVX_X86_64 all=m
 CRYPTO_CAST6 all=m
+CRYPTO_CAST6_AVX_X86_64 all=m
 CRYPTO_DES all=m
 CRYPTO_FCRYPT all=m
 CRYPTO_KHAZAD all=m
@@ -166,6 +169,15 @@ CRYPTO_ANSI_CPRNG all=m
 CRYPTO_USER_API_HASH all=m
 CRYPTO_USER_API_SKCIPHER all=m
 #- file drivers/crypto/Kconfig goes here
+#- file crypto/asymmetric_keys/Kconfig goes here
+
+#-
+#- *** FILE: crypto/asymmetric_keys/Kconfig ***
+#-
+ASYMMETRIC_KEY_TYPE all=m
+ASYMMETRIC_PUBLIC_KEY_SUBTYPE all=m
+PUBLIC_KEY_ALGO_RSA all=m
+X509_CERTIFICATE_PARSER all=m
 
 #-
 #- *** FILE: drivers/accessibility/Kconfig ***
@@ -205,7 +217,7 @@ ACPI_HOTPLUG_MEMORY all=m
 ACPI_SBS x86=m
 ACPI_HED all=m
 ACPI_CUSTOM_METHOD all=m
-ACPI_BGRT all=m
+ACPI_BGRT all=y
 #- file drivers/acpi/apei/Kconfig goes here
 
 #-
@@ -241,6 +253,7 @@ SATA_SX4 all=m sparc=n
 ATA_BMDMA all=y
 #- SATA SFF controllers with BMDMA
 ATA_PIIX all=m sparc=n
+SATA_HIGHBANK all=m
 SATA_MV all=m sparc=n
 SATA_NV all=m sparc=n
 SATA_PROMISE all=m sparc=n
@@ -403,7 +416,6 @@ BLK_DEV_NBD all=m
 BLK_DEV_NVME all=m
 BLK_DEV_OSD all=m
 BLK_DEV_SX8 all=m
-BLK_DEV_UB all=n
 BLK_DEV_RAM all=y
 BLK_DEV_RAM_COUNT all=16
 BLK_DEV_RAM_SIZE all=16384
@@ -483,6 +495,11 @@ BT_MRVL_SDIO all=m
 BT_ATH3K all=m
 BT_WILINK all=m
 
+#-
+#- *** FILE: drivers/bus/Kconfig ***
+#-
+OMAP_OCP2SCP all=m
+
 #-
 #- *** FILE: drivers/char/Kconfig ***
 #-
@@ -560,6 +577,7 @@ HW_RANDOM_N2RNG sparc64=m
 HW_RANDOM_VIA all=m
 HW_RANDOM_PASEMI ppc64=m
 HW_RANDOM_VIRTIO=m
+HW_RANDOM_TPM all=m
 
 #-
 #- *** FILE: drivers/char/ipmi/Kconfig ***
@@ -586,6 +604,7 @@ IPWIRELESS all=m
 TCG_TPM all=m x86=y ia64=y
 #* TCG_TIS forced to 'y' by IMA
 TCG_TIS all=m x86=y ia64=y
+TCG_TIS_I2C_INFINEON all=m
 TCG_NSC all=m
 TCG_ATMEL all=m
 TCG_INFINEON all=m
@@ -634,6 +653,7 @@ CRYPTO_DEV_HIFN_795X all=m
 CRYPTO_DEV_HIFN_795X_RNG all=y
 #- file drivers/crypto/caam/Kconfig goes here
 CRYPTO_DEV_TALITOS all=m
+#- file drivers/crypto/nx/Kconfig goes here
 #- file drivers/crypto/ux500/Kconfig goes here
 
 #-
@@ -668,8 +688,8 @@ DMATEST all=n
 #- *** FILE: drivers/edac/Kconfig ***
 #-
 EDAC all=y
-EDAC_LEGACY_SYSFS all=y
 #- Reporting subsystems
+EDAC_LEGACY_SYSFS all=y
 EDAC_DEBUG all=n
 EDAC_DECODE_MCE all=m
 EDAC_MCE_INJ all=m
@@ -692,8 +712,6 @@ EDAC_I5000 i386=m x86_64=m
 EDAC_I5100 i386=m x86_64=m
 EDAC_I7300 all=m
 EDAC_SBRIDGE all=m
-VFIO all=m
-VFIO_PCI all=m
 EDAC_PASEMI ppc64=m
 EDAC_CELL ppc64=m
 EDAC_AMD8131 powerpc=m
@@ -713,15 +731,9 @@ EISA_NAMES alpha=y i386=y
 EXTCON all=m
 #- Extcon Device Drivers
 EXTCON_GPIO all=m
+EXTCON_ADC_JACK all=m
 EXTCON_ARIZONA all=m
 
-AD7266 all=m
-ADJD_S311 all=m
-SENSORS_LM3533 all=m
-VCNL4000 all=m
-AD9523 all=m
-ADF4350 all=m
-
 #-
 #- *** FILE: drivers/firewire/Kconfig ***
 #-
@@ -760,6 +772,7 @@ GOOGLE_MEMCONSOLE all=m
 GPIOLIB all=y
 DEBUG_GPIO all=n
 GPIO_SYSFS all=y
+GPIO_DA9052 all=m
 #- Memory mapped GPIO drivers:
 GPIO_GENERIC_PLATFORM all=m
 GPIO_IT8761E all=m
@@ -767,8 +780,8 @@ GPIO_XILINX powerpc=y
 GPIO_SCH all=m
 GPIO_ICH all=m
 GPIO_VX855 all=m
-GPIO_ARIZONA all=m
 #- I2C GPIO expanders:
+GPIO_ARIZONA all=m
 GPIO_MAX7300 all=m
 GPIO_MAX732X all=m
 GPIO_PCA953X all=m
@@ -823,6 +836,7 @@ DRM_SAVAGE all=m
 #- file drivers/gpu/drm/ast/Kconfig goes here
 #- file drivers/gpu/drm/mgag200/Kconfig goes here
 #- file drivers/gpu/drm/cirrus/Kconfig goes here
+#- file drivers/gpu/drm/shmobile/Kconfig goes here
 
 #-
 #- *** FILE: drivers/gpu/drm/ast/Kconfig ***
@@ -850,8 +864,9 @@ DRM_MGAG200 all=m
 #- *** FILE: drivers/gpu/drm/nouveau/Kconfig ***
 #-
 DRM_NOUVEAU all=m
+NOUVEAU_DEBUG all=5
+NOUVEAU_DEBUG_DEFAULT all=3
 DRM_NOUVEAU_BACKLIGHT all=y
-DRM_NOUVEAU_DEBUG all=n
 DRM_I2C_CH7006 all=m
 DRM_I2C_SIL164 all=m
 
@@ -937,6 +952,7 @@ HID_PICOLCD_BACKLIGHT all=y
 HID_PICOLCD_LCD all=y
 HID_PICOLCD_LEDS all=y
 HID_PRIMAX all=m
+HID_PS3REMOTE all=m
 HID_ROCCAT all=m
 HID_SAITEK all=m
 HID_SAMSUNG all=m
@@ -958,6 +974,7 @@ HID_WIIMOTE_EXT all=y
 HID_ZEROPLUS all=m
 ZEROPLUS_FF all=y
 HID_ZYDACRON all=m
+HID_SENSOR_HUB all=m
 #- file drivers/hid/usbhid/Kconfig goes here
 
 #-
@@ -1007,6 +1024,7 @@ SENSORS_ADM1026 all=m
 SENSORS_ADM1029 all=m
 SENSORS_ADM1031 all=m
 SENSORS_ADM9240 all=m
+SENSORS_ADT7410 all=m
 SENSORS_ADT7411 all=m
 SENSORS_ADT7462 all=m
 SENSORS_ADT7470 all=m
@@ -1059,6 +1077,7 @@ SENSORS_MAX1111 all=m
 SENSORS_MAX16065 all=m
 SENSORS_MAX1619 all=m
 SENSORS_MAX1668 all=m
+SENSORS_MAX197 all=m
 SENSORS_MAX6639 all=m
 SENSORS_MAX6642 all=m
 SENSORS_MAX6650 all=m
@@ -1140,6 +1159,7 @@ I2C_MUX all=m
 I2C_HELPER_AUTO all=y
 #- file drivers/i2c/algos/Kconfig goes here
 #- file drivers/i2c/busses/Kconfig goes here
+I2C_STUB all=m
 I2C_DEBUG_CORE all=n
 I2C_DEBUG_ALGO all=n
 I2C_DEBUG_BUS all=n
@@ -1198,7 +1218,6 @@ I2C_TINY_USB all=m
 #- Other I2C/SMBus bus drivers
 I2C_ELEKTOR i386=m
 I2C_PCA_ISA all=m
-I2C_STUB all=m
 SCx200_I2C i386=m
 SCx200_I2C_SCL i386=12
 SCx200_I2C_SDA i386=13
@@ -1291,14 +1310,6 @@ BLK_DEV_UMC8672 alpha=m i386=m
 INTEL_IDLE all=n i386=y x86_64=y
 I7300_IDLE x86_64=m
 
-#-
-#- *** FILE: drivers/ieee802154/Kconfig ***
-#-
-IEEE802154_DRIVERS all=m
-IEEE802154_FAKEHARD all=m
-IEEE802154_FAKELB all=m
-IEEE802154_AT86RF230 all=m
-
 #-
 #- *** FILE: drivers/iio/Kconfig ***
 #-
@@ -1306,14 +1317,79 @@ IIO all=m
 IIO_KFIFO_BUF all=m
 IIO_TRIGGER all=y
 IIO_CONSUMERS_PER_TRIGGER all=2
+#- file drivers/iio/accel/Kconfig goes here
 #- file drivers/iio/adc/Kconfig goes here
 #- file drivers/iio/amplifiers/Kconfig goes here
+#- file drivers/iio/light/Kconfig goes here
+#- file drivers/iio/frequency/Kconfig goes here
+#- file drivers/iio/dac/Kconfig goes here
+#- file drivers/iio/common/Kconfig goes here
+#- file drivers/iio/gyro/Kconfig goes here
+#- file drivers/iio/magnetometer/Kconfig goes here
+
+#-
+#- *** FILE: drivers/iio/accel/Kconfig ***
+#-
+HID_SENSOR_ACCEL_3D all=m
+
+#-
+#- *** FILE: drivers/iio/adc/Kconfig ***
+#-
+AD7266 all=m
+AD7791 all=m
+AD7476 all=m
 
 #-
 #- *** FILE: drivers/iio/amplifiers/Kconfig ***
 #-
 AD8366 all=m
 
+#-
+#- *** FILE: drivers/iio/common/hid-sensors/Kconfig ***
+#-
+HID_SENSOR_ENUM_BASE_QUIRKS all=m
+
+#-
+#- *** FILE: drivers/iio/dac/Kconfig ***
+#-
+AD5064 all=m
+AD5360 all=m
+AD5380 all=m
+AD5421 all=m
+AD5624R_SPI all=m
+AD5446 all=m
+AD5504 all=m
+AD5755 all=m
+AD5764 all=m
+AD5791 all=m
+AD5686 all=m
+MAX517 all=m
+MCP4725 all=m
+
+#-
+#- *** FILE: drivers/iio/frequency/Kconfig ***
+#-
+AD9523 all=m
+ADF4350 all=m
+
+#-
+#- *** FILE: drivers/iio/gyro/Kconfig ***
+#-
+HID_SENSOR_GYRO_3D all=m
+
+#-
+#- *** FILE: drivers/iio/light/Kconfig ***
+#-
+ADJD_S311 all=m
+SENSORS_LM3533 all=m
+VCNL4000 all=m
+HID_SENSOR_ALS all=m
+
+#-
+#- *** FILE: drivers/iio/magnetometer/Kconfig ***
+#-
+HID_SENSOR_MAGNETOMETER_3D all=m
+
 #-
 #- *** FILE: drivers/infiniband/Kconfig ***
 #-
@@ -1829,6 +1905,7 @@ LEDS_CLASS all=y
 #- LED drivers
 LEDS_LM3530 all=m
 LEDS_LM3533 all=m
+LEDS_LM3642 all=m
 LEDS_NET48XX i386=m
 LEDS_WRAP i386=m
 LEDS_SUNFIRE sparc64=m
@@ -1853,9 +1930,9 @@ LEDS_LT3593 all=m
 LEDS_DELL_NETBOOKS all=m
 LEDS_MC13783 all=m
 LEDS_TCA6507 all=m
-LEDS_LM3556 all=m
-LEDS_BLINKM all=m
+LEDS_LM355x all=m
 LEDS_OT200 all=m
+LEDS_BLINKM all=m
 LEDS_TRIGGERS all=y
 #- LED Triggers
 LEDS_TRIGGER_TIMER all=m
@@ -1863,6 +1940,7 @@ LEDS_TRIGGER_ONESHOT all=m
 LEDS_TRIGGER_IDE_DISK all=y
 LEDS_TRIGGER_HEARTBEAT all=m
 LEDS_TRIGGER_BACKLIGHT all=m
+LEDS_TRIGGER_CPU all=y
 LEDS_TRIGGER_GPIO all=m
 LEDS_TRIGGER_DEFAULT_ON all=m
 #- iptables trigger is under Netfilter config (LED target)
@@ -1920,7 +1998,6 @@ DM_CRYPT all=m
 DM_SNAPSHOT all=m
 DM_THIN_PROVISIONING all=m
 DM_DEBUG_BLOCK_STACK_TRACING all=n
-DM_DEBUG_SPACE_MAPS all=n
 DM_MIRROR all=m
 DM_RAID all=m
 DM_LOG_USERSPACE all=m
@@ -1937,148 +2014,62 @@ DM_VERITY all=m
 #- *** FILE: drivers/media/Kconfig ***
 #-
 MEDIA_SUPPORT all=m
+#- Multimedia core support
 MEDIA_CAMERA_SUPPORT all=y
 MEDIA_ANALOG_TV_SUPPORT all=y
 MEDIA_DIGITAL_TV_SUPPORT all=y
 MEDIA_RADIO_SUPPORT all=y
 MEDIA_RC_SUPPORT all=y
-#- Multimedia core support
 MEDIA_CONTROLLER all=y
 VIDEO_DEV all=m
-VIDEO_V4L2_COMMON all=m
 VIDEO_V4L2_SUBDEV_API all=y
+#- file drivers/media/v4l2-core/Kconfig goes here
 DVB_CORE all=m
 DVB_NET all=y
-#- Multimedia drivers
-#- file drivers/media/common/Kconfig goes here
+#- file drivers/media/dvb-core/Kconfig goes here
+#- Media drivers
 #- file drivers/media/rc/Kconfig goes here
-#- file drivers/media/common/tuners/Kconfig goes here
-#- file drivers/media/video/Kconfig goes here
+#- file drivers/media/usb/Kconfig goes here
+#- file drivers/media/pci/Kconfig goes here
+#- file drivers/media/platform/Kconfig goes here
+#- file drivers/media/mmc/Kconfig goes here
+#- file drivers/media/parport/Kconfig goes here
 #- file drivers/media/radio/Kconfig goes here
-#- file drivers/media/dvb/Kconfig goes here
-
-#-
-#- *** FILE: drivers/media/common/Kconfig ***
-#-
-VIDEO_SAA7146 all=m
-VIDEO_SAA7146_VV all=m
-
-#-
-#- *** FILE: drivers/media/common/tuners/Kconfig ***
-#-
-MEDIA_ATTACH all=y
-MEDIA_TUNER_CUSTOMISE all=n
-MEDIA_TUNER_TDA18212 all=m
-
-#-
-#- *** FILE: drivers/media/dvb/Kconfig ***
-#-
-DVB_MAX_ADAPTERS all=8
-DVB_DYNAMIC_MINORS all=y
-DVB_CAPTURE_DRIVERS all=y
-#- Supported SAA7146 based PCI Adapters
-#- file drivers/media/dvb/ttpci/Kconfig goes here
-#- Supported USB Adapters
-#- file drivers/media/dvb/dvb-usb/Kconfig goes here
-#- file drivers/media/dvb/ttusb-budget/Kconfig goes here
-#- file drivers/media/dvb/ttusb-dec/Kconfig goes here
-#- file drivers/media/dvb/siano/Kconfig goes here
-#- Supported FlexCopII (B2C2) Adapters
-#- file drivers/media/dvb/b2c2/Kconfig goes here
-#- Supported BT878 Adapters
-#- file drivers/media/dvb/bt8xx/Kconfig goes here
-#- Supported Pluto2 Adapters
-#- file drivers/media/dvb/pluto2/Kconfig goes here
-#- Supported SDMC DM1105 Adapters
-#- file drivers/media/dvb/dm1105/Kconfig goes here
 #- Supported FireWire (IEEE 1394) Adapters
-#- file drivers/media/dvb/firewire/Kconfig goes here
-#- Supported Earthsoft PT1 Adapters
-#- file drivers/media/dvb/pt1/Kconfig goes here
-#- Supported Mantis Adapters
-#- file drivers/media/dvb/mantis/Kconfig goes here
-#- Supported nGene Adapters
-#- file drivers/media/dvb/ngene/Kconfig goes here
-#- Supported ddbridge ('Octopus') Adapters
-#- file drivers/media/dvb/ddbridge/Kconfig goes here
-#- Supported DVB Frontends
-#- file drivers/media/dvb/frontends/Kconfig goes here
+#- file drivers/media/firewire/Kconfig goes here
+#- file drivers/media/common/Kconfig goes here
+MEDIA_SUBDRV_AUTOSELECT all=y
+#- Media ancillary drivers (tuners, sensors, i2c, frontends)
+#- file drivers/media/i2c/Kconfig goes here
+#- file drivers/media/tuners/Kconfig goes here
+#- file drivers/media/dvb-frontends/Kconfig goes here
 
 #-
-#- *** FILE: drivers/media/dvb/b2c2/Kconfig ***
+#- *** FILE: drivers/media/common/b2c2/Kconfig ***
 #-
 DVB_B2C2_FLEXCOP all=m
-DVB_B2C2_FLEXCOP_PCI all=m sparc=n
-DVB_B2C2_FLEXCOP_USB alpha=m ia64=m i386=m ppc=m ppc64=m sparc64=m x86_64=m
 DVB_B2C2_FLEXCOP_DEBUG all=n
 
 #-
-#- *** FILE: drivers/media/dvb/bt8xx/Kconfig ***
-#-
-DVB_BT8XX all=m
-
-#-
-#- *** FILE: drivers/media/dvb/ddbridge/Kconfig ***
-#-
-DVB_DDBRIDGE all=m
-
-#-
-#- *** FILE: drivers/media/dvb/dm1105/Kconfig ***
+#- *** FILE: drivers/media/common/saa7146/Kconfig ***
 #-
-DVB_DM1105 all=m
+VIDEO_SAA7146 all=m
+VIDEO_SAA7146_VV all=m
 
 #-
-#- *** FILE: drivers/media/dvb/dvb-usb/Kconfig ***
+#- *** FILE: drivers/media/common/siano/Kconfig ***
 #-
-DVB_USB all=m
-DVB_USB_DEBUG all=n
-DVB_USB_A800 all=m
-DVB_USB_DIBUSB_MB all=m
-DVB_USB_DIBUSB_MB_FAULTY all=n
-DVB_USB_DIBUSB_MC all=m
-DVB_USB_DIB0700 all=m
-DVB_USB_UMT_010 all=m
-DVB_USB_CXUSB all=m
-DVB_USB_M920X all=m
-DVB_USB_GL861 all=m
-DVB_USB_AU6610 all=m
-DVB_USB_DIGITV all=m
-DVB_USB_VP7045 all=m
-DVB_USB_VP702X all=m
-DVB_USB_GP8PSK all=m
-DVB_USB_NOVA_T_USB2 all=m
-DVB_USB_TTUSB2 all=m
-DVB_USB_DTT200U all=m
-DVB_USB_OPERA1 all=m
-DVB_USB_AF9005 all=m
-DVB_USB_AF9005_REMOTE all=m
-DVB_USB_PCTV452E all=m
-DVB_USB_DW2102 all=m
-DVB_USB_CINERGY_T2 all=m
-DVB_USB_ANYSEE all=m
-DVB_USB_DTV5100 all=m
-DVB_USB_AF9015 all=m
-DVB_USB_CE6230 all=m
-DVB_USB_FRIIO all=m
-DVB_USB_EC168 all=m
-DVB_USB_AZ6007 all=m
-DVB_USB_AZ6027 all=m
-DVB_USB_LME2510 all=m
-DVB_USB_TECHNISAT_USB2 all=m
-DVB_USB_IT913X all=m
-DVB_USB_MXL111SF all=m
-DVB_USB_RTL28XXU all=m
-DVB_USB_AF9035 all=m
+SMS_SIANO_MDTV all=m
 
 #-
-#- *** FILE: drivers/media/dvb/firewire/Kconfig ***
+#- *** FILE: drivers/media/dvb-core/Kconfig ***
 #-
-DVB_FIREDTV all=m
+DVB_MAX_ADAPTERS all=8
+DVB_DYNAMIC_MINORS all=y
 
 #-
-#- *** FILE: drivers/media/dvb/frontends/Kconfig ***
+#- *** FILE: drivers/media/dvb-frontends/Kconfig ***
 #-
-DVB_FE_CUSTOMISE all=n
 #- Multistandard (satellite) frontends
 #- Multistandard (cable + terrestrial) frontends
 #- DVB-S (satellite) frontends
@@ -2137,36 +2128,235 @@ DVB_LGS8GL5 all=m
 #- Tools to develop new frontends
 
 #-
-#- *** FILE: drivers/media/dvb/mantis/Kconfig ***
+#- *** FILE: drivers/media/firewire/Kconfig ***
+#-
+DVB_FIREDTV all=m
+
+#-
+#- *** FILE: drivers/media/i2c/Kconfig ***
+#-
+VIDEO_BTCX all=m sparc=
+VIDEO_TVEEPROM all=m
+#- Audio decoders, processors and mixers
+VIDEO_TVAUDIO all=m
+VIDEO_TDA7432 all=m
+VIDEO_TDA9840 all=m
+VIDEO_TEA6415C all=m
+VIDEO_TEA6420 all=m
+VIDEO_MSP3400 all=m
+VIDEO_CS53L32A all=m
+VIDEO_WM8775 all=m
+VIDEO_WM8739 all=m
+VIDEO_VP27SMPX ia64=m
+#- RDS decoders
+VIDEO_SAA6588 all=m
+#- Video decoders
+VIDEO_BT819 all=m
+VIDEO_BT856 all=m
+VIDEO_KS0127 all=m
+VIDEO_SAA7110 all=m
+VIDEO_SAA711X all=m
+VIDEO_TVP5150 all=m
+VIDEO_VPX3220 all=m
+#- Video and audio decoders
+#- file drivers/media/i2c/cx25840/Kconfig goes here
+#- MPEG video encoders
+VIDEO_CX2341X all=m
+#- Video encoders
+VIDEO_SAA7127 all=m
+VIDEO_SAA7185 all=m
+VIDEO_ADV7170 all=m
+VIDEO_ADV7175 all=m
+#- Camera sensor devices
+VIDEO_OV7670 all=m
+VIDEO_SR030PC30 all=m
+VIDEO_NOON010PC30 all=m
+#- file drivers/media/i2c/m5mols/Kconfig goes here
+#- file drivers/media/i2c/smiapp/Kconfig goes here
+#- Flash devices
+#- Video improvement chips
+VIDEO_UPD64031A all=m
+VIDEO_UPD64083 all=m
+#- Miscelaneous helper chips
+#- file drivers/media/i2c/soc_camera/Kconfig goes here
+
+#-
+#- *** FILE: drivers/media/i2c/cx25840/Kconfig ***
+#-
+VIDEO_CX25840 all=m
+
+#-
+#- *** FILE: drivers/media/i2c/m5mols/Kconfig ***
+#-
+VIDEO_M5MOLS all=m
+
+#-
+#- *** FILE: drivers/media/i2c/soc_camera/Kconfig ***
+#-
+#- soc_camera sensor drivers
+SOC_CAMERA_IMX074 all=m
+SOC_CAMERA_MT9M001 all=m
+SOC_CAMERA_MT9M111 all=m
+SOC_CAMERA_MT9T031 all=m
+SOC_CAMERA_MT9T112 all=m
+SOC_CAMERA_MT9V022 all=m
+SOC_CAMERA_OV2640 all=m
+SOC_CAMERA_OV5642 all=m
+SOC_CAMERA_OV6650 all=m
+SOC_CAMERA_OV772X all=m
+SOC_CAMERA_OV9640 all=m
+SOC_CAMERA_OV9740 all=m
+SOC_CAMERA_RJ54N1 all=m
+SOC_CAMERA_TW9910 all=m
+
+#-
+#- *** FILE: drivers/media/mmc/siano/Kconfig ***
+#-
+SMS_SDIO_DRV all=m
+
+#-
+#- *** FILE: drivers/media/parport/Kconfig ***
+#-
+MEDIA_PARPORT_SUPPORT all=y
+VIDEO_BWQCAM all=m
+VIDEO_CQCAM all=m
+VIDEO_PMS all=m
+VIDEO_W9966 all=m
+
+#-
+#- *** FILE: drivers/media/pci/Kconfig ***
+#-
+MEDIA_PCI_SUPPORT all=y
+#- Media capture support
+#- file drivers/media/pci/meye/Kconfig goes here
+#- file drivers/media/pci/sta2x11/Kconfig goes here
+#- Media capture/analog TV support
+#- file drivers/media/pci/ivtv/Kconfig goes here
+#- file drivers/media/pci/zoran/Kconfig goes here
+#- file drivers/media/pci/saa7146/Kconfig goes here
+#- Media capture/analog/hybrid TV support
+#- file drivers/media/pci/cx18/Kconfig goes here
+#- file drivers/media/pci/cx23885/Kconfig goes here
+#- file drivers/media/pci/cx25821/Kconfig goes here
+#- file drivers/media/pci/cx88/Kconfig goes here
+#- file drivers/media/pci/bt8xx/Kconfig goes here
+#- file drivers/media/pci/saa7134/Kconfig goes here
+#- file drivers/media/pci/saa7164/Kconfig goes here
+#- Media digital TV PCI Adapters
+#- file drivers/media/pci/ttpci/Kconfig goes here
+#- file drivers/media/pci/b2c2/Kconfig goes here
+#- file drivers/media/pci/pluto2/Kconfig goes here
+#- file drivers/media/pci/dm1105/Kconfig goes here
+#- file drivers/media/pci/pt1/Kconfig goes here
+#- file drivers/media/pci/mantis/Kconfig goes here
+#- file drivers/media/pci/ngene/Kconfig goes here
+#- file drivers/media/pci/ddbridge/Kconfig goes here
+
+#-
+#- *** FILE: drivers/media/pci/b2c2/Kconfig ***
+#-
+DVB_B2C2_FLEXCOP_PCI all=m sparc=n
+DVB_B2C2_FLEXCOP_PCI_DEBUG all=n
+
+#-
+#- *** FILE: drivers/media/pci/bt8xx/Kconfig ***
+#-
+VIDEO_BT848 all=m sparc=n
+DVB_BT8XX all=m
+
+#-
+#- *** FILE: drivers/media/pci/cx18/Kconfig ***
+#-
+VIDEO_CX18 all=m sparc=n
+VIDEO_CX18_ALSA all=m
+
+#-
+#- *** FILE: drivers/media/pci/cx23885/Kconfig ***
+#-
+VIDEO_CX23885 all=m sparc=n
+MEDIA_ALTERA_CI all=m
+
+#-
+#- *** FILE: drivers/media/pci/cx25821/Kconfig ***
+#-
+VIDEO_CX25821 all=m
+VIDEO_CX25821_ALSA all=m
+
+#-
+#- *** FILE: drivers/media/pci/cx88/Kconfig ***
+#-
+VIDEO_CX88 all=m sparc=n
+VIDEO_CX88_ALSA all=m
+VIDEO_CX88_BLACKBIRD all=m
+VIDEO_CX88_DVB all=m sparc64=n
+VIDEO_CX88_VP3054 all=m
+
+#-
+#- *** FILE: drivers/media/pci/ddbridge/Kconfig ***
+#-
+DVB_DDBRIDGE all=m
+
+#-
+#- *** FILE: drivers/media/pci/dm1105/Kconfig ***
+#-
+DVB_DM1105 all=m
+
+#-
+#- *** FILE: drivers/media/pci/ivtv/Kconfig ***
+#-
+VIDEO_IVTV all=m sparc=n
+VIDEO_IVTV_ALSA all=m
+VIDEO_FB_IVTV all=m sparc=n
+
+#-
+#- *** FILE: drivers/media/pci/mantis/Kconfig ***
 #-
 MANTIS_CORE all=m
 DVB_MANTIS all=m
 DVB_HOPPER all=m
 
 #-
-#- *** FILE: drivers/media/dvb/ngene/Kconfig ***
+#- *** FILE: drivers/media/pci/meye/Kconfig ***
+#-
+VIDEO_MEYE i386=m x86_64=m
+
+#-
+#- *** FILE: drivers/media/pci/ngene/Kconfig ***
 #-
 DVB_NGENE all=m
 
 #-
-#- *** FILE: drivers/media/dvb/pluto2/Kconfig ***
+#- *** FILE: drivers/media/pci/pluto2/Kconfig ***
 #-
 DVB_PLUTO2 all=m sparc=n
 
 #-
-#- *** FILE: drivers/media/dvb/pt1/Kconfig ***
+#- *** FILE: drivers/media/pci/pt1/Kconfig ***
 #-
 DVB_PT1 all=m
 
 #-
-#- *** FILE: drivers/media/dvb/siano/Kconfig ***
+#- *** FILE: drivers/media/pci/saa7134/Kconfig ***
 #-
-SMS_SIANO_MDTV all=m
-SMS_USB_DRV all=m
-SMS_SDIO_DRV all=m
+VIDEO_SAA7134 all=m sparc=n
+VIDEO_SAA7134_ALSA all=m
+VIDEO_SAA7134_RC all=y
+VIDEO_SAA7134_DVB all=m sparc64=n
 
 #-
-#- *** FILE: drivers/media/dvb/ttpci/Kconfig ***
+#- *** FILE: drivers/media/pci/saa7146/Kconfig ***
+#-
+VIDEO_HEXIUM_GEMINI all=m
+VIDEO_HEXIUM_ORION all=m
+VIDEO_MXB all=m sparc=n
+
+#-
+#- *** FILE: drivers/media/pci/saa7164/Kconfig ***
+#-
+VIDEO_SAA7164 all=m
+
+#-
+#- *** FILE: drivers/media/pci/ttpci/Kconfig ***
 #-
 DVB_AV7110 all=m sparc=n
 DVB_AV7110_OSD all=y
@@ -2177,14 +2367,47 @@ DVB_BUDGET_AV all=m sparc=n
 DVB_BUDGET_PATCH all=m
 
 #-
-#- *** FILE: drivers/media/dvb/ttusb-budget/Kconfig ***
+#- *** FILE: drivers/media/pci/zoran/Kconfig ***
 #-
-DVB_TTUSB_BUDGET all=m
+VIDEO_ZORAN all=m ppc=n sparc=n
+VIDEO_ZORAN_DC30 all=m
+VIDEO_ZORAN_ZR36060 all=m
+VIDEO_ZORAN_BUZ all=m
+VIDEO_ZORAN_DC10 all=m
+VIDEO_ZORAN_LML33 all=m
+VIDEO_ZORAN_LML33R10 all=m
+VIDEO_ZORAN_AVS6EYES all=m
 
 #-
-#- *** FILE: drivers/media/dvb/ttusb-dec/Kconfig ***
+#- *** FILE: drivers/media/platform/Kconfig ***
 #-
-DVB_TTUSB_DEC all=m
+V4L_PLATFORM_DRIVERS all=y
+#- file drivers/media/platform/marvell-ccic/Kconfig goes here
+VIDEO_VIA_CAMERA all=m
+#- file drivers/media/platform/davinci/Kconfig goes here
+#- file drivers/media/platform/omap/Kconfig goes here
+#- file drivers/media/platform/blackfin/Kconfig goes here
+VIDEO_TIMBERDALE all=m
+#- file drivers/media/platform/soc_camera/Kconfig goes here
+#- file drivers/media/platform/s5p-fimc/Kconfig goes here
+#- file drivers/media/platform/s5p-tv/Kconfig goes here
+V4L_MEM2MEM_DRIVERS all=y
+VIDEO_MEM2MEM_DEINTERLACE all=m
+V4L_TEST_DRIVERS all=n
+VIDEO_VIVI all=m
+VIDEO_MEM2MEM_TESTDEV all=m
+
+#-
+#- *** FILE: drivers/media/platform/marvell-ccic/Kconfig ***
+#-
+VIDEO_CAFE_CCIC all=m sparc=n
+
+#-
+#- *** FILE: drivers/media/platform/soc_camera/Kconfig ***
+#-
+SOC_CAMERA all=m
+SOC_CAMERA_PLATFORM all=m
+VIDEO_SH_MOBILE_CEU all=m
 
 #-
 #- *** FILE: drivers/media/radio/Kconfig ***
@@ -2235,6 +2458,9 @@ RADIO_WL128X all=m
 #-
 RC_CORE all=m
 #- file drivers/media/rc/keymaps/Kconfig goes here
+RC_DECODERS all=y
+LIRC all=m
+IR_LIRC_CODEC all=m
 IR_NEC_DECODER all=m
 IR_RC5_DECODER all=m
 IR_RC6_DECODER all=m
@@ -2244,7 +2470,6 @@ IR_RC5_SZ_DECODER all=m
 IR_SANYO_DECODER all=m
 IR_MCE_KBD_DECODER all=m
 RC_DEVICES all=y
-IR_LIRC_CODEC all=m
 RC_ATI_REMOTE all=m
 IR_ENE all=m
 IR_IMON all=m
@@ -2256,6 +2481,7 @@ IR_REDRAT3 all=m
 IR_STREAMZAP all=m
 IR_WINBOND_CIR all=m
 IR_IGUANA all=m
+IR_TTUSBIR all=m
 RC_LOOPBACK all=m
 IR_GPIO_CIR all=m
 
@@ -2263,154 +2489,64 @@ IR_GPIO_CIR all=m
 #- *** FILE: drivers/media/rc/keymaps/Kconfig ***
 #-
 RC_MAP all=m
-RC_DECODERS all=y
-LIRC all=m
 
 #-
-#- *** FILE: drivers/media/video/Kconfig ***
+#- *** FILE: drivers/media/tuners/Kconfig ***
 #-
-VIDEO_V4L2 all=m
-VIDEO_BTCX all=m sparc=
-VIDEO_TVEEPROM all=m
-VIDEO_TUNER all=m sparc=
-VIDEOBUF2_CORE all=m
-VIDEOBUF2_MEMOPS all=m
-VIDEOBUF2_VMALLOC all=m
-VIDEO_CAPTURE_DRIVERS all=y
-VIDEO_ADV_DEBUG all=n
-VIDEO_FIXED_MINOR_RANGES all=n
-VIDEO_HELPER_CHIPS_AUTO all=y
-#- Audio decoders, processors and mixers
-VIDEO_TVAUDIO all=m
-VIDEO_TDA7432 all=m
-VIDEO_TDA9840 all=m
-VIDEO_TEA6415C all=m
-VIDEO_TEA6420 all=m
-VIDEO_MSP3400 all=m
-VIDEO_CS53L32A all=m
-VIDEO_WM8775 all=m
-VIDEO_WM8739 all=m
-VIDEO_VP27SMPX ia64=m
-#- RDS decoders
-VIDEO_SAA6588 all=m
-#- Video decoders
-VIDEO_BT819 all=m
-VIDEO_BT856 all=m
-VIDEO_KS0127 all=m
-VIDEO_SAA7110 all=m
-VIDEO_SAA711X all=m
-VIDEO_TVP5150 all=m
-VIDEO_VPX3220 all=m
-#- Video and audio decoders
-#- file drivers/media/video/cx25840/Kconfig goes here
-#- MPEG video encoders
-VIDEO_CX2341X all=m
-#- Video encoders
-VIDEO_SAA7127 all=m
-VIDEO_SAA7185 all=m
-VIDEO_ADV7170 all=m
-VIDEO_ADV7175 all=m
-#- Camera sensor devices
-VIDEO_OV7670 all=m
-VIDEO_SR030PC30 all=m
-VIDEO_NOON010PC30 all=m
-#- file drivers/media/video/m5mols/Kconfig goes here
-#- file drivers/media/video/smiapp/Kconfig goes here
-#- Flash devices
-#- Video improvement chips
-VIDEO_UPD64031A all=m
-VIDEO_UPD64083 all=m
-#- Miscelaneous helper chips
-VIDEO_VIVI all=m
-V4L_USB_DRIVERS all=y sparc=n
-#- file drivers/media/video/au0828/Kconfig goes here
-#- file drivers/media/video/uvc/Kconfig goes here
-#- file drivers/media/video/gspca/Kconfig goes here
-#- file drivers/media/video/pvrusb2/Kconfig goes here
-#- file drivers/media/video/hdpvr/Kconfig goes here
-#- file drivers/media/video/em28xx/Kconfig goes here
-#- file drivers/media/video/tlg2300/Kconfig goes here
-#- file drivers/media/video/cx231xx/Kconfig goes here
-#- file drivers/media/video/tm6000/Kconfig goes here
-#- file drivers/media/video/usbvision/Kconfig goes here
-#- file drivers/media/video/sn9c102/Kconfig goes here
-#- file drivers/media/video/pwc/Kconfig goes here
-#- file drivers/media/video/cpia2/Kconfig goes here
-USB_ZR364XX all=m
-USB_STKWEBCAM all=m
-USB_S2255 all=m
-V4L_PCI_DRIVERS all=y
-#- file drivers/media/video/bt8xx/Kconfig goes here
-#- file drivers/media/video/cx18/Kconfig goes here
-#- file drivers/media/video/cx23885/Kconfig goes here
-#- file drivers/media/video/cx25821/Kconfig goes here
-#- file drivers/media/video/cx88/Kconfig goes here
-VIDEO_HEXIUM_GEMINI all=m
-VIDEO_HEXIUM_ORION all=m
-#- file drivers/media/video/ivtv/Kconfig goes here
-VIDEO_MEYE i386=m x86_64=m
-VIDEO_MXB all=m sparc=n
-#- file drivers/media/video/saa7134/Kconfig goes here
-#- file drivers/media/video/saa7164/Kconfig goes here
-#- file drivers/media/video/zoran/Kconfig goes here
-V4L_ISA_PARPORT_DRIVERS all=y
-VIDEO_BWQCAM all=m
-VIDEO_CQCAM all=m
-VIDEO_PMS all=m
-VIDEO_W9966 all=m
-V4L_PLATFORM_DRIVERS all=y
-#- file drivers/media/video/marvell-ccic/Kconfig goes here
-VIDEO_VIA_CAMERA all=m
-#- file drivers/media/video/davinci/Kconfig goes here
-#- file drivers/media/video/omap/Kconfig goes here
-#- file drivers/media/video/blackfin/Kconfig goes here
-VIDEO_TIMBERDALE all=m
-SOC_CAMERA all=m
-SOC_CAMERA_IMX074 all=m
-SOC_CAMERA_MT9M001 all=m
-SOC_CAMERA_MT9M111 all=m
-SOC_CAMERA_MT9T031 all=m
-SOC_CAMERA_MT9T112 all=m
-SOC_CAMERA_MT9V022 all=m
-SOC_CAMERA_RJ54N1 all=m
-SOC_CAMERA_TW9910 all=m
-SOC_CAMERA_PLATFORM all=m
-SOC_CAMERA_OV2640 all=m
-SOC_CAMERA_OV5642 all=m
-SOC_CAMERA_OV6650 all=m
-SOC_CAMERA_OV772X all=m
-SOC_CAMERA_OV9640 all=m
-SOC_CAMERA_OV9740 all=m
-VIDEO_SH_MOBILE_CEU all=m
-#- file drivers/media/video/s5p-fimc/Kconfig goes here
-#- file drivers/media/video/s5p-tv/Kconfig goes here
-V4L_MEM2MEM_DRIVERS all=y
-VIDEO_MEM2MEM_TESTDEV all=m
+MEDIA_ATTACH all=y
+MEDIA_TUNER_TDA18212 all=m
 
 #-
-#- *** FILE: drivers/media/video/au0828/Kconfig ***
+#- *** FILE: drivers/media/usb/Kconfig ***
+#-
+MEDIA_USB_SUPPORT all=y
+#- Webcam devices
+#- file drivers/media/usb/uvc/Kconfig goes here
+#- file drivers/media/usb/gspca/Kconfig goes here
+#- file drivers/media/usb/pwc/Kconfig goes here
+#- file drivers/media/usb/cpia2/Kconfig goes here
+#- file drivers/media/usb/zr364xx/Kconfig goes here
+#- file drivers/media/usb/stkwebcam/Kconfig goes here
+#- file drivers/media/usb/s2255/Kconfig goes here
+#- file drivers/media/usb/sn9c102/Kconfig goes here
+#- Analog TV USB devices
+#- file drivers/media/usb/au0828/Kconfig goes here
+#- file drivers/media/usb/pvrusb2/Kconfig goes here
+#- file drivers/media/usb/hdpvr/Kconfig goes here
+#- file drivers/media/usb/tlg2300/Kconfig goes here
+#- file drivers/media/usb/usbvision/Kconfig goes here
+#- file drivers/media/usb/stk1160/Kconfig goes here
+#- Analog/digital TV USB devices
+#- file drivers/media/usb/cx231xx/Kconfig goes here
+#- file drivers/media/usb/tm6000/Kconfig goes here
+#- Digital TV USB devices
+#- file drivers/media/usb/dvb-usb/Kconfig goes here
+#- file drivers/media/usb/dvb-usb-v2/Kconfig goes here
+#- file drivers/media/usb/ttusb-budget/Kconfig goes here
+#- file drivers/media/usb/ttusb-dec/Kconfig goes here
+#- file drivers/media/usb/siano/Kconfig goes here
+#- file drivers/media/usb/b2c2/Kconfig goes here
+#- Webcam, TV (analog/digital) USB devices
+#- file drivers/media/usb/em28xx/Kconfig goes here
+
+#-
+#- *** FILE: drivers/media/usb/au0828/Kconfig ***
 #-
 VIDEO_AU0828 all=m sparc=n
 
 #-
-#- *** FILE: drivers/media/video/bt8xx/Kconfig ***
+#- *** FILE: drivers/media/usb/b2c2/Kconfig ***
 #-
-VIDEO_BT848 all=m sparc=n
-VIDEO_BT848_DVB all=y
+DVB_B2C2_FLEXCOP_USB alpha=m ia64=m i386=m ppc=m ppc64=m sparc64=m x86_64=m
+DVB_B2C2_FLEXCOP_USB_DEBUG all=n
 
 #-
-#- *** FILE: drivers/media/video/cpia2/Kconfig ***
+#- *** FILE: drivers/media/usb/cpia2/Kconfig ***
 #-
 VIDEO_CPIA2 all=m
 
 #-
-#- *** FILE: drivers/media/video/cx18/Kconfig ***
-#-
-VIDEO_CX18 all=m sparc=n
-VIDEO_CX18_ALSA all=m
-
-#-
-#- *** FILE: drivers/media/video/cx231xx/Kconfig ***
+#- *** FILE: drivers/media/usb/cx231xx/Kconfig ***
 #-
 VIDEO_CX231XX all=m
 VIDEO_CX231XX_RC all=y
@@ -2418,33 +2554,55 @@ VIDEO_CX231XX_ALSA all=m
 VIDEO_CX231XX_DVB all=m
 
 #-
-#- *** FILE: drivers/media/video/cx23885/Kconfig ***
+#- *** FILE: drivers/media/usb/dvb-usb-v2/Kconfig ***
 #-
-VIDEO_CX23885 all=m sparc=n
-MEDIA_ALTERA_CI all=m
-
-#-
-#- *** FILE: drivers/media/video/cx25821/Kconfig ***
-#-
-VIDEO_CX25821 all=m
-VIDEO_CX25821_ALSA all=m
-
-#-
-#- *** FILE: drivers/media/video/cx25840/Kconfig ***
-#-
-VIDEO_CX25840 all=m
+DVB_USB_V2 all=m
+DVB_USB_AF9015 all=m
+DVB_USB_AF9035 all=m
+DVB_USB_ANYSEE all=m
+DVB_USB_AU6610 all=m
+DVB_USB_AZ6007 all=m
+DVB_USB_CE6230 all=m
+DVB_USB_EC168 all=m
+DVB_USB_GL861 all=m
+DVB_USB_IT913X all=m
+DVB_USB_LME2510 all=m
+DVB_USB_MXL111SF all=m
+DVB_USB_RTL28XXU all=m
 
 #-
-#- *** FILE: drivers/media/video/cx88/Kconfig ***
+#- *** FILE: drivers/media/usb/dvb-usb/Kconfig ***
 #-
-VIDEO_CX88 all=m sparc=n
-VIDEO_CX88_ALSA all=m
-VIDEO_CX88_BLACKBIRD all=m
-VIDEO_CX88_DVB all=m sparc64=n
-VIDEO_CX88_VP3054 all=m
+DVB_USB all=m
+DVB_USB_DEBUG all=n
+DVB_USB_A800 all=m
+DVB_USB_DIBUSB_MB all=m
+DVB_USB_DIBUSB_MB_FAULTY all=n
+DVB_USB_DIBUSB_MC all=m
+DVB_USB_DIB0700 all=m
+DVB_USB_UMT_010 all=m
+DVB_USB_CXUSB all=m
+DVB_USB_M920X all=m
+DVB_USB_DIGITV all=m
+DVB_USB_VP7045 all=m
+DVB_USB_VP702X all=m
+DVB_USB_GP8PSK all=m
+DVB_USB_NOVA_T_USB2 all=m
+DVB_USB_TTUSB2 all=m
+DVB_USB_DTT200U all=m
+DVB_USB_OPERA1 all=m
+DVB_USB_AF9005 all=m
+DVB_USB_AF9005_REMOTE all=m
+DVB_USB_PCTV452E all=m
+DVB_USB_DW2102 all=m
+DVB_USB_CINERGY_T2 all=m
+DVB_USB_DTV5100 all=m
+DVB_USB_FRIIO all=m
+DVB_USB_AZ6027 all=m
+DVB_USB_TECHNISAT_USB2 all=m
 
 #-
-#- *** FILE: drivers/media/video/em28xx/Kconfig ***
+#- *** FILE: drivers/media/usb/em28xx/Kconfig ***
 #-
 VIDEO_EM28XX all=m
 VIDEO_EM28XX_ALSA all=m sparc=n
@@ -2452,12 +2610,12 @@ VIDEO_EM28XX_DVB all=m sparc=n
 VIDEO_EM28XX_RC all=y
 
 #-
-#- *** FILE: drivers/media/video/gspca/Kconfig ***
+#- *** FILE: drivers/media/usb/gspca/Kconfig ***
 #-
 USB_GSPCA all=m
-#- file drivers/media/video/gspca/m5602/Kconfig goes here
-#- file drivers/media/video/gspca/stv06xx/Kconfig goes here
-#- file drivers/media/video/gspca/gl860/Kconfig goes here
+#- file drivers/media/usb/gspca/m5602/Kconfig goes here
+#- file drivers/media/usb/gspca/stv06xx/Kconfig goes here
+#- file drivers/media/usb/gspca/gl860/Kconfig goes here
 USB_GSPCA_BENQ all=m
 USB_GSPCA_CONEX all=m
 USB_GSPCA_CPIA1 all=m
@@ -2503,43 +2661,27 @@ USB_GSPCA_XIRLINK_CIT all=m
 USB_GSPCA_ZC3XX all=m
 
 #-
-#- *** FILE: drivers/media/video/gspca/gl860/Kconfig ***
+#- *** FILE: drivers/media/usb/gspca/gl860/Kconfig ***
 #-
 USB_GL860 all=m
 
 #-
-#- *** FILE: drivers/media/video/gspca/m5602/Kconfig ***
+#- *** FILE: drivers/media/usb/gspca/m5602/Kconfig ***
 #-
 USB_M5602 all=m
 
 #-
-#- *** FILE: drivers/media/video/gspca/stv06xx/Kconfig ***
-#-
-USB_STV06XX all=m
-
-#-
-#- *** FILE: drivers/media/video/hdpvr/Kconfig ***
-#-
-VIDEO_HDPVR all=m
-
-#-
-#- *** FILE: drivers/media/video/ivtv/Kconfig ***
-#-
-VIDEO_IVTV all=m sparc=n
-VIDEO_FB_IVTV all=m sparc=n
-
-#-
-#- *** FILE: drivers/media/video/m5mols/Kconfig ***
+#- *** FILE: drivers/media/usb/gspca/stv06xx/Kconfig ***
 #-
-VIDEO_M5MOLS all=m
+USB_STV06XX all=m
 
 #-
-#- *** FILE: drivers/media/video/marvell-ccic/Kconfig ***
+#- *** FILE: drivers/media/usb/hdpvr/Kconfig ***
 #-
-VIDEO_CAFE_CCIC all=m sparc=n
+VIDEO_HDPVR all=m
 
 #-
-#- *** FILE: drivers/media/video/pvrusb2/Kconfig ***
+#- *** FILE: drivers/media/usb/pvrusb2/Kconfig ***
 #-
 VIDEO_PVRUSB2 all=m sparc=n
 VIDEO_PVRUSB2_SYSFS all=y sparc=n
@@ -2547,64 +2689,86 @@ VIDEO_PVRUSB2_DVB all=y sparc=n
 VIDEO_PVRUSB2_DEBUGIFC all=n
 
 #-
-#- *** FILE: drivers/media/video/pwc/Kconfig ***
+#- *** FILE: drivers/media/usb/pwc/Kconfig ***
 #-
 USB_PWC all=m
 USB_PWC_DEBUG all=n
 USB_PWC_INPUT_EVDEV all=y
 
 #-
-#- *** FILE: drivers/media/video/saa7134/Kconfig ***
+#- *** FILE: drivers/media/usb/s2255/Kconfig ***
 #-
-VIDEO_SAA7134 all=m sparc=n
-VIDEO_SAA7134_ALSA all=m
-VIDEO_SAA7134_RC all=y
-VIDEO_SAA7134_DVB all=m sparc64=n
+USB_S2255 all=m
 
 #-
-#- *** FILE: drivers/media/video/saa7164/Kconfig ***
+#- *** FILE: drivers/media/usb/siano/Kconfig ***
 #-
-VIDEO_SAA7164 all=m
+SMS_USB_DRV all=m
 
 #-
-#- *** FILE: drivers/media/video/sn9c102/Kconfig ***
+#- *** FILE: drivers/media/usb/sn9c102/Kconfig ***
 #-
 USB_SN9C102 all=m
 
 #-
-#- *** FILE: drivers/media/video/tlg2300/Kconfig ***
+#- *** FILE: drivers/media/usb/stk1160/Kconfig ***
+#-
+VIDEO_STK1160 all=m
+VIDEO_STK1160_AC97 all=y
+
+#-
+#- *** FILE: drivers/media/usb/stkwebcam/Kconfig ***
+#-
+USB_STKWEBCAM all=m
+
+#-
+#- *** FILE: drivers/media/usb/tlg2300/Kconfig ***
 #-
 VIDEO_TLG2300 all=m
 
 #-
-#- *** FILE: drivers/media/video/tm6000/Kconfig ***
+#- *** FILE: drivers/media/usb/tm6000/Kconfig ***
 #-
 VIDEO_TM6000 all=m
 VIDEO_TM6000_ALSA all=m
 VIDEO_TM6000_DVB all=m
 
 #-
-#- *** FILE: drivers/media/video/usbvision/Kconfig ***
+#- *** FILE: drivers/media/usb/ttusb-budget/Kconfig ***
+#-
+DVB_TTUSB_BUDGET all=m
+
+#-
+#- *** FILE: drivers/media/usb/ttusb-dec/Kconfig ***
+#-
+DVB_TTUSB_DEC all=m
+
+#-
+#- *** FILE: drivers/media/usb/usbvision/Kconfig ***
 #-
 VIDEO_USBVISION all=m
 
 #-
-#- *** FILE: drivers/media/video/uvc/Kconfig ***
+#- *** FILE: drivers/media/usb/uvc/Kconfig ***
 #-
 USB_VIDEO_CLASS all=m sparc=n
 USB_VIDEO_CLASS_INPUT_EVDEV all=y sparc=n
 
 #-
-#- *** FILE: drivers/media/video/zoran/Kconfig ***
+#- *** FILE: drivers/media/usb/zr364xx/Kconfig ***
 #-
-VIDEO_ZORAN all=m ppc=n sparc=n
-VIDEO_ZORAN_DC30 all=m
-VIDEO_ZORAN_ZR36060 all=m
-VIDEO_ZORAN_BUZ all=m
-VIDEO_ZORAN_DC10 all=m
-VIDEO_ZORAN_LML33 all=m
-VIDEO_ZORAN_LML33R10 all=m
-VIDEO_ZORAN_AVS6EYES all=m
+USB_ZR364XX all=m
+
+#-
+#- *** FILE: drivers/media/v4l2-core/Kconfig ***
+#-
+VIDEO_V4L2 all=m
+VIDEO_ADV_DEBUG all=n
+VIDEO_FIXED_MINOR_RANGES all=n
+VIDEO_TUNER all=m sparc=
+VIDEOBUF2_CORE all=m
+VIDEOBUF2_MEMOPS all=m
+VIDEOBUF2_VMALLOC all=m
 
 #-
 #- *** FILE: drivers/memory/Kconfig ***
@@ -2682,7 +2846,6 @@ MFD_DA9052_SPI all=y
 MFD_ARIZONA_I2C all=m
 MFD_ARIZONA_SPI all=m
 MFD_WM5102 all=y
-WM5102 all=y
 MFD_WM5110 all=y
 MFD_WM8400 all=m
 MFD_WM831X all=y
@@ -2752,7 +2915,6 @@ USB_SWITCH_FSA9480 all=m
 #- file drivers/misc/c2port/Kconfig goes here
 #- file drivers/misc/eeprom/Kconfig goes here
 #- file drivers/misc/cb710/Kconfig goes here
-#- file drivers/misc/iwmc3200top/Kconfig goes here
 #- file drivers/misc/ti-st/Kconfig goes here
 #- file drivers/misc/lis3lv02d/Kconfig goes here
 #- file drivers/misc/carma/Kconfig goes here
@@ -2787,13 +2949,6 @@ EEPROM_MAX6875 all=m
 EEPROM_93CX6 all=m
 EEPROM_93XX46 all=m
 
-#-
-#- *** FILE: drivers/misc/iwmc3200top/Kconfig ***
-#-
-IWMC3200TOP all=m
-IWMC3200TOP_DEBUG all=n
-IWMC3200TOP_DEBUGFS all=n
-
 #-
 #- *** FILE: drivers/misc/lis3lv02d/Kconfig ***
 #-
@@ -2986,7 +3141,6 @@ MTD_LATCH_ADDR all=m
 #-
 MTD_NAND_ECC_SMC all=y
 MTD_NAND all=m
-MTD_NAND_VERIFY_WRITE all=y
 MTD_NAND_BCH all=m
 MTD_NAND_ECC_BCH all=y
 MTD_NAND_MUSEUM_IDS all=y sparc=n
@@ -3022,7 +3176,8 @@ MTD_ONENAND_SIM all=m
 #-
 MTD_UBI all=m sparc=n
 MTD_UBI_WL_THRESHOLD all=4096
-MTD_UBI_BEB_RESERVE all=1
+MTD_UBI_BEB_LIMIT all=20
+MTD_UBI_FASTMAP all=n
 MTD_UBI_GLUEBI all=n powerpc=m
 
 #-
@@ -3034,11 +3189,11 @@ DUMMY all=m
 EQUALIZER all=m
 NET_FC all=y
 MII all=m
-#- file drivers/ieee802154/Kconfig goes here
 IFB all=m
 #- file drivers/net/team/Kconfig goes here
 MACVLAN all=m
 MACVTAP all=m
+VXLAN all=m
 NETCONSOLE all=m
 NETCONSOLE_DYNAMIC all=y
 NETPOLL_TRAP all=y
@@ -3065,6 +3220,7 @@ NET_SB1000 all=m
 #- file drivers/net/wireless/Kconfig goes here
 #- file drivers/net/wimax/Kconfig goes here
 #- file drivers/net/wan/Kconfig goes here
+#- file drivers/net/ieee802154/Kconfig goes here
 XEN_NETDEV_FRONTEND all=m
 XEN_NETDEV_BACKEND all=m
 VMXNET3 all=m
@@ -3615,6 +3771,7 @@ SFC all=m sparc=n
 SFC_MTD all=y
 SFC_MCDI_MON all=y
 SFC_SRIOV all=y
+SFC_PTP all=y
 
 #-
 #- *** FILE: drivers/net/ethernet/silan/Kconfig ***
@@ -3751,6 +3908,15 @@ ROADRUNNER_LARGE_RINGS all=n
 #-
 HYPERV_NET all=m
 
+#-
+#- *** FILE: drivers/net/ieee802154/Kconfig ***
+#-
+IEEE802154_DRIVERS all=m
+IEEE802154_FAKEHARD all=m
+IEEE802154_FAKELB all=m
+IEEE802154_AT86RF230 all=m
+IEEE802154_MRF24J40 all=m
+
 #-
 #- *** FILE: drivers/net/irda/Kconfig ***
 #-
@@ -3788,6 +3954,7 @@ MCS_FIR all=m
 #-
 PHYLIB all=y
 #- MII PHY device drivers
+AT803X_PHY all=m
 AMD_PHY all=m
 MARVELL_PHY all=m
 DAVICOM_PHY all=m
@@ -3797,8 +3964,8 @@ CICADA_PHY all=m
 VITESSE_PHY all=m
 SMSC_PHY all=m
 BROADCOM_PHY all=m
-BCM87XX_PHY all=m
 BCM63XX_PHY all=m
+BCM87XX_PHY all=m
 ICPLUS_PHY all=m
 REALTEK_PHY all=m
 NATIONAL_PHY all=m
@@ -3928,10 +4095,7 @@ SBNI_MULTILINE i386=y x86_64=y
 #- *** FILE: drivers/net/wimax/i2400m/Kconfig ***
 #-
 #- Enable USB support to see WiMAX USB drivers
-#- Enable MMC support to see WiMAX SDIO drivers
 WIMAX_I2400M_USB all=m
-WIMAX_I2400M_SDIO all=m
-WIMAX_IWMC3200_SDIO all=y
 WIMAX_I2400M_DEBUG_LEVEL all=8
 
 #-
@@ -3964,7 +4128,6 @@ MWL8K all=m
 #- file drivers/net/wireless/ipw2x00/Kconfig goes here
 #- file drivers/net/wireless/iwlwifi/Kconfig goes here
 #- file drivers/net/wireless/iwlegacy/Kconfig goes here
-#- file drivers/net/wireless/iwmc3200wifi/Kconfig goes here
 #- file drivers/net/wireless/libertas/Kconfig goes here
 #- file drivers/net/wireless/orinoco/Kconfig goes here
 #- file drivers/net/wireless/p54/Kconfig goes here
@@ -4089,13 +4252,6 @@ IWLWIFI_DEVICE_TRACING all=n
 IWLWIFI_P2P all=y
 IWLWIFI_EXPERIMENTAL_MFP all=n
 
-#-
-#- *** FILE: drivers/net/wireless/iwmc3200wifi/Kconfig ***
-#-
-IWM all=m
-IWM_DEBUG all=n
-IWM_TRACING all=n
-
 #-
 #- *** FILE: drivers/net/wireless/libertas/Kconfig ***
 #-
@@ -4182,6 +4338,7 @@ RTL8192C_COMMON all=m
 WL_TI all=y
 #- file drivers/net/wireless/ti/wl1251/Kconfig goes here
 #- file drivers/net/wireless/ti/wl12xx/Kconfig goes here
+#- file drivers/net/wireless/ti/wl18xx/Kconfig goes here
 #- file drivers/net/wireless/ti/wlcore/Kconfig goes here
 
 #-
@@ -4195,6 +4352,10 @@ WL1251_SDIO all=m
 #- *** FILE: drivers/net/wireless/ti/wl12xx/Kconfig ***
 #-
 WL12XX all=m
+
+#-
+#- *** FILE: drivers/net/wireless/ti/wl18xx/Kconfig ***
+#-
 WL18XX all=m
 
 #-
@@ -4212,7 +4373,6 @@ ZD1211RW_DEBUG all=n
 #-
 #- *** FILE: drivers/nfc/Kconfig ***
 #-
-PN544_NFC all=m
 PN544_HCI_NFC all=m
 NFC_PN533 all=m
 NFC_WILINK all=m
@@ -4261,7 +4421,6 @@ PCI_LABEL all=y
 #- *** FILE: drivers/pci/hotplug/Kconfig ***
 #-
 HOTPLUG_PCI all=m
-HOTPLUG_PCI_FAKE all=m
 HOTPLUG_PCI_COMPAQ i386=m
 HOTPLUG_PCI_COMPAQ_NVRAM i386=y
 HOTPLUG_PCI_IBM i386=m
@@ -4408,6 +4567,7 @@ POWER_SUPPLY all=m i386=y ia64=y x86_64=y
 POWER_SUPPLY_DEBUG all=n
 PDA_POWER all=m
 APM_POWER ppc=m
+GENERIC_ADC_BATTERY all=m
 WM831X_BACKUP all=m
 WM831X_POWER all=m
 WM8350_POWER all=m
@@ -4422,6 +4582,7 @@ BATTERY_BQ27x00 all=m
 BATTERY_BQ27X00_I2C all=y
 BATTERY_BQ27X00_PLATFORM all=y
 BATTERY_DA9030 all=m
+BATTERY_DA9052 all=m
 BATTERY_MAX17040 all=m
 BATTERY_MAX17042 all=m
 CHARGER_PCF50633 all=m
@@ -4433,6 +4594,12 @@ CHARGER_GPIO all=m
 CHARGER_MANAGER all=y
 CHARGER_SMB347 all=m
 AB8500_BM all=n
+#- file drivers/power/avs/Kconfig goes here
+
+#-
+#- *** FILE: drivers/power/avs/Kconfig ***
+#-
+POWER_AVS all=y
 
 #-
 #- *** FILE: drivers/pps/Kconfig ***
@@ -4459,6 +4626,11 @@ PTP_1588_CLOCK all=m
 #- Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
 PTP_1588_CLOCK_PCH all=m
 
+#-
+#- *** FILE: drivers/pwm/Kconfig ***
+#-
+PWM all=y
+
 #-
 #- *** FILE: drivers/rapidio/Kconfig ***
 #-
@@ -4497,6 +4669,7 @@ REGULATOR_AD5398 all=m
 REGULATOR_ARIZONA all=m
 REGULATOR_DA903X all=m
 REGULATOR_DA9052 all=m
+REGULATOR_FAN53555 all=m
 REGULATOR_MC13783 all=m
 REGULATOR_MC13892 all=m
 REGULATOR_ISL6271A all=m
@@ -4524,6 +4697,11 @@ REGULATOR_WM8350 all=m
 REGULATOR_WM8400 all=m
 REGULATOR_WM8994 all=m
 
+#-
+#- *** FILE: drivers/remoteproc/Kconfig ***
+#-
+STE_MODEM_RPROC all=m
+
 #-
 #- *** FILE: drivers/rtc/Kconfig ***
 #-
@@ -4586,6 +4764,7 @@ RTC_DRV_MSM6242 all=m
 RTC_DRV_BQ4802 all=m sparc64=y
 RTC_DRV_RP5C01 all=m
 RTC_DRV_V3020 all=m
+RTC_DRV_DS2404 all=m
 RTC_DRV_WM831X all=m
 RTC_DRV_WM8350 all=m
 RTC_DRV_PCF50633 all=m
@@ -4630,7 +4809,6 @@ SCSI_MULTI_LUN all=y
 SCSI_CONSTANTS all=n
 SCSI_LOGGING all=y
 SCSI_SCAN_ASYNC all=y
-SCSI_WAIT_SCAN all=m
 SCSI_SPI_ATTRS all=m
 SCSI_FC_ATTRS all=m
 SCSI_FC_TGT_ATTRS all=y
@@ -4898,6 +5076,7 @@ SPI_LM70_LLP all=m
 SPI_MPC52xx_PSC ppc=m
 SPI_OC_TINY all=m
 SPI_PXA2XX all=m
+SPI_SC18IS602 all=m
 SPI_TOPCLIFF_PCH all=m
 SPI_XCOMM all=m
 SPI_XILINX all=m
@@ -4951,7 +5130,7 @@ STAGING all=y
 #- file drivers/staging/zsmalloc/Kconfig goes here
 #- file drivers/staging/wlags49_h2/Kconfig goes here
 #- file drivers/staging/wlags49_h25/Kconfig goes here
-#- file drivers/staging/sm7xx/Kconfig goes here
+#- file drivers/staging/sm7xxfb/Kconfig goes here
 #- file drivers/staging/crystalhd/Kconfig goes here
 #- file drivers/staging/cxt1e1/Kconfig goes here
 #- file drivers/staging/xgifb/Kconfig goes here
@@ -4970,11 +5149,17 @@ STAGING all=y
 #- file drivers/staging/omapdrm/Kconfig goes here
 #- file drivers/staging/android/Kconfig goes here
 #- file drivers/staging/telephony/Kconfig goes here
-#- file drivers/staging/ramster/Kconfig goes here
 #- file drivers/staging/ozwpan/Kconfig goes here
 #- file drivers/staging/ccg/Kconfig goes here
 #- file drivers/staging/ipack/Kconfig goes here
 #- file drivers/staging/gdm72xx/Kconfig goes here
+#- file drivers/staging/csr/Kconfig goes here
+#- file drivers/staging/omap-thermal/Kconfig goes here
+#- file drivers/staging/ramster/Kconfig goes here
+#- file drivers/staging/silicom/Kconfig goes here
+#- file drivers/staging/ced1401/Kconfig goes here
+#- file drivers/staging/imx-drm/Kconfig goes here
+#- file drivers/staging/dgrp/Kconfig goes here
 
 #-
 #- *** FILE: drivers/staging/android/Kconfig ***
@@ -4991,21 +5176,25 @@ ASUS_OLED all=m
 #-
 BCM_WIMAX all=m
 
+#-
+#- *** FILE: drivers/staging/ced1401/Kconfig ***
+#-
+CED1401 all=m
+
 #-
 #- *** FILE: drivers/staging/comedi/Kconfig ***
 #-
 COMEDI all=m ppc=n
-COMEDI_MISC_DRIVERS all=y
 COMEDI_DEBUG all=n
 COMEDI_DEFAULT_BUF_SIZE_KB all=2048
 COMEDI_DEFAULT_BUF_MAXSIZE_KB all=20480
+COMEDI_MISC_DRIVERS all=y
 COMEDI_KCOMEDILIB all=m
 COMEDI_BOND all=m
 COMEDI_TEST all=m
 COMEDI_PARPORT all=m
 COMEDI_SERIAL2002 all=m
 COMEDI_SKEL all=m
-COMEDI_PCI_DRIVERS all=y
 COMEDI_ISA_DRIVERS all=m
 COMEDI_ACL7225B i386=m
 COMEDI_PCL711 i386=m
@@ -5048,6 +5237,8 @@ COMEDI_PCMMIO i386=m
 COMEDI_PCMUIO i386=m
 COMEDI_MULTIQ3 i386=m
 COMEDI_POC i386=m
+COMEDI_PCI_DRIVERS all=y
+COMEDI_8255_PCI all=m
 COMEDI_ADDI_APCI_035 all=m
 COMEDI_ADDI_APCI_1032 all=m
 COMEDI_ADDI_APCI_1500 all=m
@@ -5062,9 +5253,7 @@ COMEDI_ADDI_APCI_3120 all=m
 COMEDI_ADDI_APCI_3501 all=m
 COMEDI_ADDI_APCI_3XXX all=m
 COMEDI_ADL_PCI6208 all=m
-COMEDI_ADL_PCI7230 all=m
-COMEDI_ADL_PCI7296 all=m
-COMEDI_ADL_PCI7432 all=m
+COMEDI_ADL_PCI7X3X all=m
 COMEDI_ADL_PCI8164 all=m
 COMEDI_ADL_PCI9111 all=m
 COMEDI_ADL_PCI9118 all=m
@@ -5073,6 +5262,7 @@ COMEDI_ADV_PCI1723 all=m
 COMEDI_ADV_PCI_DIO all=m
 COMEDI_AMPLC_DIO200_PCI all=m
 COMEDI_AMPLC_PC236_PCI all=m
+COMEDI_AMPLC_PC263_PCI all=m
 COMEDI_AMPLC_PCI224 all=m
 COMEDI_AMPLC_PCI230 all=m
 COMEDI_CONTEC_PCI_DIO all=m
@@ -5089,7 +5279,6 @@ COMEDI_KE_COUNTER all=m
 COMEDI_CB_PCIDAS64 all=m
 COMEDI_CB_PCIDAS all=m
 COMEDI_CB_PCIDDA all=m
-COMEDI_CB_PCIDIO all=m
 COMEDI_CB_PCIMDAS all=m
 COMEDI_CB_PCIMDDA all=m
 COMEDI_ME4000 all=m
@@ -5098,12 +5287,14 @@ COMEDI_NI_6527 all=m
 COMEDI_NI_65XX all=m
 COMEDI_NI_660X all=m
 COMEDI_NI_670X all=m
+COMEDI_NI_LABPC all=m
 COMEDI_NI_PCIDIO all=m
 COMEDI_NI_PCIMIO all=m
 COMEDI_RTD520 all=m
 COMEDI_S526 all=m
 COMEDI_S626 all=m
 COMEDI_SSV_DNP all=m
+COMEDI_MITE all=m
 COMEDI_PCMCIA_DRIVERS all=y
 COMEDI_CB_DAS16_CS all=m
 COMEDI_DAS08_CS all=m
@@ -5118,13 +5309,9 @@ COMEDI_USBDUX all=m
 COMEDI_USBDUXFAST all=m
 COMEDI_USBDUXSIGMA all=m
 COMEDI_VMK80XX all=m
-COMEDI_NI_COMMON all=m
-COMEDI_MITE all=m
-COMEDI_NI_TIO all=m
-COMEDI_NI_LABPC all=m
 COMEDI_AMPLC_DIO200 all=m
 COMEDI_AMPLC_PC236 all=m
-COMEDI_AMPLC_PC263_PCI all=m
+COMEDI_NI_TIO all=m
 
 #-
 #- *** FILE: drivers/staging/cptm1217/Kconfig ***
@@ -5136,12 +5323,22 @@ TOUCHSCREEN_CLEARPAD_TM1217 all=m
 #-
 CRYSTALHD all=m
 
+#-
+#- *** FILE: drivers/staging/csr/Kconfig ***
+#-
+CSR_WIFI all=m
+
 #-
 #- *** FILE: drivers/staging/cxt1e1/Kconfig ***
 #-
 CXT1E1 all=m
 SBE_PMCC4_NCOMM all=y
 
+#-
+#- *** FILE: drivers/staging/dgrp/Kconfig ***
+#-
+DGRP all=m
+
 #-
 #- *** FILE: drivers/staging/echo/Kconfig ***
 #-
@@ -5174,7 +5371,6 @@ WIMAX_GDM72XX_WIMAX2 all=y
 WIMAX_GDM72XX_USB all=y
 WIMAX_GDM72XX_SDIO all=n
 WIMAX_GDM72XX_USB_PM all=y
-CSR_WIFI all=m
 
 #-
 #- *** FILE: drivers/staging/iio/Kconfig ***
@@ -5185,7 +5381,6 @@ IIO_SW_RING all=m
 #- file drivers/staging/iio/adc/Kconfig goes here
 #- file drivers/staging/iio/addac/Kconfig goes here
 #- file drivers/staging/iio/cdc/Kconfig goes here
-#- file drivers/staging/iio/dac/Kconfig goes here
 #- file drivers/staging/iio/frequency/Kconfig goes here
 #- file drivers/staging/iio/gyro/Kconfig goes here
 #- file drivers/staging/iio/impedance-analyzer/Kconfig goes here
@@ -5198,7 +5393,6 @@ IIO_SW_RING all=m
 IIO_SIMPLE_DUMMY all=m
 IIO_SIMPLE_DUMMY_EVENTS all=y
 IIO_SIMPLE_DUMMY_BUFFER all=y
-ZSMALLOC all=m
 
 #-
 #- *** FILE: drivers/staging/iio/accel/Kconfig ***
@@ -5224,7 +5418,6 @@ AD7606 all=m
 AD7606_IFACE_PARALLEL all=m
 AD7606_IFACE_SPI all=m
 AD799X all=m
-AD7476 all=m
 AD7887 all=m
 AD7780 all=m
 AD7793 all=m
@@ -5250,24 +5443,6 @@ AD7150 all=m
 AD7152 all=m
 AD7746 all=m
 
-#-
-#- *** FILE: drivers/staging/iio/dac/Kconfig ***
-#-
-AD5064 all=m
-AD5360 all=m
-AD5380 all=m
-AD5421 all=m
-AD5624R_SPI all=m
-AD5446 all=m
-AD5504 all=m
-AD5764 all=m
-AD5791 all=m
-AD5686 all=m
-MAX517 all=m
-MCP4725 all=m
-
-PWM all=y
-
 #-
 #- *** FILE: drivers/staging/iio/frequency/Kconfig ***
 #-
@@ -5379,7 +5554,6 @@ STAGING_MEDIA all=y
 #- file drivers/staging/media/as102/Kconfig goes here
 #- file drivers/staging/media/cxd2099/Kconfig goes here
 #- file drivers/staging/media/dt3155v4l/Kconfig goes here
-#- file drivers/staging/media/easycap/Kconfig goes here
 #- file drivers/staging/media/go7007/Kconfig goes here
 #- file drivers/staging/media/solo6x10/Kconfig goes here
 #- file drivers/staging/media/lirc/Kconfig goes here
@@ -5401,12 +5575,6 @@ VIDEO_DT3155 all=m
 DT3155_CCIR all=y
 DT3155_STREAMING all=y
 
-#-
-#- *** FILE: drivers/staging/media/easycap/Kconfig ***
-#-
-EASYCAP all=m
-EASYCAP_DEBUG all=n
-
 #-
 #- *** FILE: drivers/staging/media/go7007/Kconfig ***
 #-
@@ -5433,7 +5601,6 @@ LIRC_SASEM all=m
 LIRC_SERIAL all=m
 LIRC_SERIAL_TRANSMITTER all=y
 LIRC_SIR all=m
-LIRC_TTUSBIR all=m
 LIRC_ZILOG all=m
 
 #-
@@ -5472,6 +5639,11 @@ IDE_PHISON all=m
 #-
 ACPI_QUICKSTART all=m
 
+#-
+#- *** FILE: drivers/staging/ramster/Kconfig ***
+#-
+ZCACHE2 all=y
+
 #-
 #- *** FILE: drivers/staging/rtl8187se/Kconfig ***
 #-
@@ -5528,13 +5700,20 @@ DX_SEP all=m
 #-
 USB_SERIAL_QUATECH2 all=m
 
+#-
+#- *** FILE: drivers/staging/silicom/Kconfig ***
+#-
+NET_VENDOR_SILICOM all=y
+SBYPASS all=m
+BPCTL all=m
+
 #-
 #- *** FILE: drivers/staging/slicoss/Kconfig ***
 #-
 SLICOSS all=m
 
 #-
-#- *** FILE: drivers/staging/sm7xx/Kconfig ***
+#- *** FILE: drivers/staging/sm7xxfb/Kconfig ***
 #-
 FB_SM7XX all=m
 
@@ -5631,6 +5810,11 @@ ZCACHE all=y
 ZRAM all=m
 ZRAM_DEBUG all=n
 
+#-
+#- *** FILE: drivers/staging/zsmalloc/Kconfig ***
+#-
+ZSMALLOC all=m
+
 #-
 #- *** FILE: drivers/target/Kconfig ***
 #-
@@ -5667,6 +5851,7 @@ TCM_FC all=m
 #- *** FILE: drivers/thermal/Kconfig ***
 #-
 THERMAL all=y
+CPU_THERMAL all=y
 
 #-
 #- *** FILE: drivers/tty/Kconfig ***
@@ -5712,9 +5897,9 @@ HVCS ppc64=n
 #- *** FILE: drivers/tty/serial/8250/Kconfig ***
 #-
 SERIAL_8250 all=y
+SERIAL_8250_PNP all=y
 SERIAL_8250_CONSOLE all=y
 SERIAL_8250_PCI all=y
-SERIAL_8250_PNP all=y
 SERIAL_8250_CS all=m
 SERIAL_8250_NR_UARTS all=8
 SERIAL_8250_RUNTIME_UARTS all=4
@@ -5734,8 +5919,9 @@ SERIAL_8250_RSA all=y
 #-
 #- file drivers/tty/serial/8250/Kconfig goes here
 #- Non-8250 serial port support
+SERIAL_KGDB_NMI all=n
 SERIAL_MAX3100 all=m
-SERIAL_MAX3107 all=m
+SERIAL_MAX310X all=y
 SERIAL_MRST_MAX3110 all=m
 SERIAL_MFD_HSU all=m
 SERIAL_UARTLITE all=m
@@ -5763,6 +5949,7 @@ SERIAL_SGI_IOC4 ia64=m
 SERIAL_SGI_IOC3 ia64=m
 SERIAL_OF_PLATFORM ppc=m ppc64=m
 SERIAL_OF_PLATFORM_NWPSERIAL powerpc=m
+SERIAL_SCCNXP all=m
 SERIAL_TIMBERDALE all=m
 SERIAL_ALTERA_JTAGUART all=m
 SERIAL_ALTERA_UART all=m
@@ -5877,7 +6064,6 @@ USB_NET2280 all=m
 USB_GOKU all=m
 USB_EG20T all=m
 USB_DUMMY_HCD all=m
-USB_GADGET_DUALSPEED all=y
 USB_ZERO all=m
 USB_ZERO_HNPTEST all=n
 USB_AUDIO all=m
@@ -5982,6 +6168,7 @@ USB_IOWARRIOR all=m
 USB_TEST all=m
 USB_ISIGHTFW all=m
 USB_YUREX all=m
+USB_EZUSB_FX2 all=m
 
 #-
 #- *** FILE: drivers/usb/misc/sisusbvga/Kconfig ***
@@ -6013,6 +6200,7 @@ USB_MV_OTG all=m
 #- *** FILE: drivers/usb/phy/Kconfig ***
 #-
 #- USB Physical Layer drivers
+OMAP_USB2 all=m
 USB_ISP1301 all=m
 
 #-
@@ -6024,7 +6212,6 @@ USB_RENESAS_USBHS all=m
 #- *** FILE: drivers/usb/serial/Kconfig ***
 #-
 USB_SERIAL all=m
-USB_EZUSB all=y
 USB_SERIAL_GENERIC all=y
 USB_SERIAL_AIRCABLE all=m
 USB_SERIAL_ARK3116 all=m
@@ -6088,6 +6275,7 @@ USB_SERIAL_OMNINET all=m
 USB_SERIAL_OPTICON all=m
 USB_SERIAL_VIVOPAY_SERIAL all=m
 USB_SERIAL_ZIO all=m
+USB_SERIAL_ZTE all=m
 USB_SERIAL_SSU100 all=m
 USB_SERIAL_QT2 all=m
 USB_SERIAL_DEBUG all=m
@@ -6114,7 +6302,6 @@ USB_STORAGE_KARMA all=m
 USB_STORAGE_CYPRESS_ATACB all=m
 USB_STORAGE_ENE_UB6250 all=m
 USB_UAS all=m
-USB_LIBUSUAL all=y
 
 #-
 #- *** FILE: drivers/usb/wusbcore/Kconfig ***
@@ -6130,10 +6317,26 @@ UWB all=m
 UWB_WHCI sparc=m
 UWB_I1480U all=m
 
+#-
+#- *** FILE: drivers/vfio/Kconfig ***
+#-
+VFIO all=m
+#- file drivers/vfio/pci/Kconfig goes here
+
+#-
+#- *** FILE: drivers/vfio/pci/Kconfig ***
+#-
+VFIO_PCI all=m
+
 #-
 #- *** FILE: drivers/vhost/Kconfig ***
 #-
 VHOST_NET all=m
+#- file drivers/vhost/Kconfig.tcm goes here
+
+#-
+#- *** FILE: drivers/vhost/Kconfig.tcm ***
+#-
 TCM_VHOST all=m
 
 #-
@@ -6294,7 +6497,6 @@ LCD_AMS369FG06 all=m
 BACKLIGHT_CLASS_DEVICE all=y
 BACKLIGHT_GENERIC all=m
 BACKLIGHT_LM3533 all=m
-BACKLIGHT_PROGEAR i386=m x86_64=m
 BACKLIGHT_CARILLO_RANCH i386=m x86_64=m
 BACKLIGHT_PWM all=m
 BACKLIGHT_DA903X all=m
@@ -6305,8 +6507,11 @@ BACKLIGHT_WM831X all=m
 BACKLIGHT_ADP8860 all=m
 BACKLIGHT_ADP8870 all=m
 BACKLIGHT_PCF50633 all=m
+BACKLIGHT_LM3630 all=m
+BACKLIGHT_LM3639 all=m
 BACKLIGHT_LP855X all=m
 BACKLIGHT_OT200 all=m
+BACKLIGHT_TPS65217 all=m
 
 #-
 #- *** FILE: drivers/video/console/Kconfig ***
@@ -6363,7 +6568,6 @@ VIRT_DRIVERS all=y
 #- *** FILE: drivers/virtio/Kconfig ***
 #-
 VIRTIO all=m
-VIRTIO_RING all=m
 VIRTIO_PCI all=m
 VIRTIO_BALLOON all=m
 VIRTIO_MMIO all=m
@@ -6406,6 +6610,7 @@ W1_MASTER_DS2490 all=m
 W1_MASTER_DS2482 all=m
 W1_MASTER_DS1WM all=m
 W1_MASTER_GPIO all=m
+HDQ_MASTER_OMAP all=m
 
 #-
 #- *** FILE: drivers/w1/slaves/Kconfig ***
@@ -6423,8 +6628,6 @@ W1_SLAVE_DS2781 all=m
 W1_SLAVE_DS28E04 all=m
 W1_SLAVE_BQ27000 all=m
 
-POWER_AVS all=y
-
 #-
 #- *** FILE: drivers/watchdog/Kconfig ***
 #-
@@ -6540,6 +6743,7 @@ FILE_LOCKING all=y
 #- file fs/quota/Kconfig goes here
 #- file fs/autofs4/Kconfig goes here
 #- file fs/fuse/Kconfig goes here
+#- file fs/overlayfs/Kconfig goes here
 CUSE all=m
 GENERIC_ACL all=y
 #- file fs/fscache/Kconfig goes here
@@ -6559,7 +6763,6 @@ MISC_FILESYSTEMS all=y
 #- file fs/adfs/Kconfig goes here
 #- file fs/affs/Kconfig goes here
 #- file fs/ecryptfs/Kconfig goes here
-#- file fs/unionfs/Kconfig goes here
 #- file fs/hfs/Kconfig goes here
 #- file fs/hfsplus/Kconfig goes here
 #- file fs/befs/Kconfig goes here
@@ -6677,10 +6880,11 @@ CIFS_WEAK_PW_HASH all=y
 CIFS_UPCALL all=y
 CIFS_XATTR all=y
 CIFS_POSIX all=y
+CIFS_ACL all=y
 CIFS_DEBUG2 all=n
 CIFS_DFS_UPCALL all=n
+CIFS_SMB2 all=y
 CIFS_FSCACHE all=y
-CIFS_ACL all=y
 
 #-
 #- *** FILE: fs/coda/Kconfig ***
@@ -7113,19 +7317,22 @@ SWAP all=y
 SYSVIPC all=y
 SYSVIPC_SYSCTL all=y
 POSIX_MQUEUE all=y
-BSD_PROCESS_ACCT all=y
-BSD_PROCESS_ACCT_V3 all=y
 FHANDLE all=y
-TASKSTATS all=y
-TASK_DELAY_ACCT all=y
-TASK_XACCT all=y
-TASK_IO_ACCOUNTING all=y
 AUDIT all=y
 AUDITSYSCALL all=y
 AUDIT_LOGINUID_IMMUTABLE all=n
 #- file kernel/irq/Kconfig goes here
 #- file kernel/time/Kconfig goes here
+TICK_CPU_ACCOUNTING all=n
+IRQ_TIME_ACCOUNTING all=y
+BSD_PROCESS_ACCT all=y
+BSD_PROCESS_ACCT_V3 all=y
+TASKSTATS all=y
+TASK_DELAY_ACCT all=y
+TASK_XACCT all=y
+TASK_IO_ACCOUNTING all=y
 TREE_RCU all=y
+RCU_USER_QS all=n
 RCU_FANOUT all=32 alpha=64 ia64=64 ppc64=64 sparc64=64 x86_64=64
 RCU_FANOUT_LEAF all=16
 RCU_FANOUT_EXACT all=n
@@ -7146,10 +7353,6 @@ MEMCG_SWAP all=y
 MEMCG_SWAP_ENABLED all=y
 MEMCG_KMEM all=y
 CGROUP_HUGETLB all=y
-CGROUP_MEM_RES_CTLR all=y
-CGROUP_MEM_RES_CTLR_SWAP all=y
-CGROUP_MEM_RES_CTLR_SWAP_ENABLED all=n
-CGROUP_MEM_RES_CTLR_KMEM all=y
 CGROUP_PERF all=y
 CGROUP_SCHED all=y
 FAIR_GROUP_SCHED all=y
@@ -7210,6 +7413,7 @@ MODULE_UNLOAD all=y
 MODULE_FORCE_UNLOAD all=y
 MODVERSIONS all=n
 MODULE_SRCVERSION_ALL all=n
+MODULE_SIG all=n
 STOP_MACHINE all=y
 #- file block/Kconfig goes here
 #- file kernel/Kconfig.locks goes here
@@ -7406,8 +7610,9 @@ MEMORY_NOTIFIER_ERROR_INJECT all=m
 FAULT_INJECTION all=n
 LATENCYTOP all=n
 #- file mm/Kconfig.debug goes here
-DEBUG_TLBFLUSH all=n
 #- file kernel/trace/Kconfig goes here
+RBTREE_TEST all=m
+INTERVAL_TREE_TEST all=m
 PROVIDE_OHCI1394_DMA_INIT all=n
 FIREWIRE_OHCI_REMOTE_DMA all=n
 BUILD_DOCSRC all=n
@@ -7685,7 +7890,6 @@ CEPH_LIB_USE_DNS_RESOLVER all=y
 #- *** FILE: net/dcb/Kconfig ***
 #-
 DCB all=y
-DNS_RESOLVER all=m
 
 #-
 #- *** FILE: net/dccp/Kconfig ***
@@ -7715,6 +7919,11 @@ DECNET_ROUTER all=y
 #-
 DECNET_NF_GRABULATOR all=m
 
+#-
+#- *** FILE: net/dns_resolver/Kconfig ***
+#-
+DNS_RESOLVER all=m
+
 #-
 #- *** FILE: net/dsa/Kconfig ***
 #-
@@ -7799,7 +8008,7 @@ IP_NF_MATCH_TTL all=m
 IP_NF_FILTER all=m
 IP_NF_TARGET_REJECT all=m
 IP_NF_TARGET_ULOG all=m
-NF_NAT all=m
+NF_NAT_IPV4 all=m
 IP_NF_TARGET_MASQUERADE all=m
 IP_NF_TARGET_NETMAP all=m
 IP_NF_TARGET_REDIRECT all=m
@@ -7835,6 +8044,7 @@ INET6_XFRM_MODE_ROUTEOPTIMIZATION all=m
 IPV6_SIT all=m
 IPV6_SIT_6RD all=y
 IPV6_TUNNEL all=m
+IPV6_GRE all=m
 IPV6_MULTIPLE_TABLES all=y
 IPV6_SUBTREES all=y
 IPV6_MROUTE all=y
@@ -7861,6 +8071,9 @@ IP6_NF_TARGET_REJECT all=m
 IP6_NF_MANGLE all=m
 IP6_NF_RAW all=m
 IP6_NF_SECURITY all=m
+NF_NAT_IPV6 all=m
+IP6_NF_TARGET_MASQUERADE all=m
+IP6_NF_TARGET_NPT all=m
 
 #-
 #- *** FILE: net/ipx/Kconfig ***
@@ -7973,6 +8186,7 @@ NF_CT_NETLINK all=m
 NF_CT_NETLINK_TIMEOUT all=m
 NF_CT_NETLINK_HELPER all=m
 NETFILTER_NETLINK_QUEUE_CT all=y
+NF_NAT all=m
 NETFILTER_TPROXY all=m
 NETFILTER_XTABLES all=m
 #- Xtables combined modules
@@ -7994,7 +8208,6 @@ NETFILTER_XT_TARGET_LOG all=m
 NETFILTER_XT_TARGET_MARK all=m
 NETFILTER_XT_TARGET_NFLOG all=m
 NETFILTER_XT_TARGET_NFQUEUE all=m
-NETFILTER_XT_TARGET_NOTRACK all=m
 NETFILTER_XT_TARGET_RATEEST all=m
 NETFILTER_XT_TARGET_TEE all=m
 NETFILTER_XT_TARGET_TPROXY all=m
@@ -8132,6 +8345,7 @@ OPENVSWITCH all=m
 #- *** FILE: net/packet/Kconfig ***
 #-
 PACKET all=y
+PACKET_DIAG all=m
 
 #-
 #- *** FILE: net/phonet/Kconfig ***
@@ -8248,7 +8462,6 @@ SUNRPC_DEBUG all=n
 #-
 TIPC all=m
 TIPC_ADVANCED all=n
-TIPC_DEBUG all=n
 
 #-
 #- *** FILE: net/unix/Kconfig ***
@@ -8279,7 +8492,6 @@ CFG80211_DEFAULT_PS all=y
 CFG80211_DEBUGFS all=n
 CFG80211_INTERNAL_REGDB all=n
 CFG80211_WEXT all=y
-WIRELESS_EXT_SYSFS all=y
 LIB80211 all=m
 LIB80211_DEBUG all=n
 
@@ -8334,6 +8546,7 @@ DEFAULT_SECURITY all=""
 #-
 SECURITY_APPARMOR=y
 SECURITY_APPARMOR_BOOTPARAM_VALUE=1
+SECURITY_APPARMOR_COMPAT_24=y
 
 #-
 #- *** FILE: security/integrity/ima/Kconfig ***
@@ -8379,6 +8592,7 @@ SECURITY_TOMOYO_ACTIVATION_TRIGGER all="/sbin/init"
 #- *** FILE: security/yama/Kconfig ***
 #-
 SECURITY_YAMA all=y
+SECURITY_YAMA_STACKED all=y
 
 #-
 #- *** FILE: sound/Kconfig ***
@@ -8661,7 +8875,6 @@ SND_HDA_CODEC_CA0132 all=y
 SND_HDA_CODEC_CMEDIA all=y
 SND_HDA_CODEC_SI3054 all=y
 SND_HDA_GENERIC all=y
-SND_HDA_POWER_SAVE all=y
 SND_HDA_POWER_SAVE_DEFAULT all=300
 
 #-
@@ -8687,8 +8900,9 @@ SND_SOC all=m
 #- file sound/soc/atmel/Kconfig goes here
 #- file sound/soc/au1x/Kconfig goes here
 #- file sound/soc/blackfin/Kconfig goes here
+#- file sound/soc/cirrus/Kconfig goes here
 #- file sound/soc/davinci/Kconfig goes here
-#- file sound/soc/ep93xx/Kconfig goes here
+#- file sound/soc/dwc/Kconfig goes here
 #- file sound/soc/fsl/Kconfig goes here
 #- file sound/soc/jz4740/Kconfig goes here
 #- file sound/soc/nuc900/Kconfig goes here
@@ -8786,21 +9000,38 @@ AD7314 all=m
 AD7745 all=m
 ADT75 all=m
 ATH6K_LEGACY all=n
+BACKLIGHT_PROGEAR i386=m x86_64=m
 BATTERY_BQ20Z75 all=m
+BLK_DEV_UB all=n
 BRIQ_PANEL ppc=m
 BT_L2CAP all=y
 BT_SCO all=y
+CGROUP_MEM_RES_CTLR all=y
+CGROUP_MEM_RES_CTLR_KMEM all=y
+CGROUP_MEM_RES_CTLR_SWAP all=y
+CGROUP_MEM_RES_CTLR_SWAP_ENABLED all=n
+COMEDI_ADL_PCI7230 all=m
+COMEDI_ADL_PCI7296 all=m
+COMEDI_ADL_PCI7432 all=m
+COMEDI_CB_PCIDIO all=m
+COMEDI_NI_COMMON all=m
 COMPUTONE all=m
 CRYPTO_LZF all=m
 CS5535_GPIO i386=m
 DEBUG_SPINLOCK_SLEEP all=n
 DIGIEPCA all=m
 DISPLAY_SUPPORT all=m
+DM_DEBUG_SPACE_MAPS all=n
+DRM_NOUVEAU_DEBUG all=n
 DRM_PSB all=m
 DRM_PSB_CDV all=y
 DRM_PSB_MFLD all=y
 DRM_PSB_MRST all=y
+DVB_CAPTURE_DRIVERS all=y
+DVB_FE_CUSTOMISE all=n
 EARLY_PRINTK_MRST all=n
+EASYCAP all=m
+EASYCAP_DEBUG all=n
 EASYCAP_OSS all=n
 EASYCAP_SND all=y
 ECONET all=m
@@ -8821,6 +9052,7 @@ HID_ROCCAT_KOVAPLUS all=m
 HID_ROCCAT_PYRA all=m
 HID_SUPPORT all=y
 HID_WACOM_POWER_SUPPLY all=y
+HOTPLUG_PCI_FAKE all=m
 HVC_ISERIES ppc64=n
 HYPERV_BLOCK all=m
 HYPERV_MOUSE all=m
@@ -8851,24 +9083,36 @@ IWLWIFI_LEGACY all=m
 IWLWIFI_LEGACY_DEBUG all=n
 IWLWIFI_LEGACY_DEVICE_TRACING all=n
 IWL_P2P all=n
+IWM all=m
+IWMC3200TOP all=m
+IWMC3200TOP_DEBUG all=n
+IWMC3200TOP_DEBUGFS all=n
+IWM_DEBUG all=n
+IWM_TRACING all=n
 LEDS_ALIX2 all=m
 LEDS_GPIO_OF powerpc=y sparc=y
 LEDS_GPIO_PLATFORM all=y
+LEDS_LM3556 all=m
 LEDS_NET5501 all=m
+LIRC_TTUSBIR all=m
 LOGIWII_FF all=y
 LOOPBACK_TARGET_CDB_DEBUG all=n
 MADGEMC all=m
 MCA_LEGACY i386=y
 MCA_PROC_FS i386=y
+MEDIA_TUNER_CUSTOMISE all=n
 MFD_SUPPORT all=y
 MISC_DEVICES all=y
 MMC_SDHCI_OF powerpc=m
 MTD_DEBUG all=n
+MTD_NAND_VERIFY_WRITE all=y
+MTD_UBI_BEB_RESERVE all=1
 MTD_UBI_DEBUG all=n
 MYRI_SBUS sparc=m sparc64=m
 NE2_MCA i386=m
 NETDEV_1000 all=y
 NETDEV_10000 all=y
+NETFILTER_XT_TARGET_NOTRACK all=m
 NET_ETHERNET all=y
 NET_ISA alpha=y i386=y
 NET_PCI all=y
@@ -8881,6 +9125,7 @@ NFS_USE_NEW_IDMAPPER all=y
 NF_CONNTRACK_RTSP all=m
 PCMCIA_IBMTR all=m ppc=n
 PERF_COUNTERS all=y
+PN544_NFC all=m
 POHMELFS all=m
 POHMELFS_CRYPTO all=y
 POHMELFS_DEBUG all=n
@@ -8895,13 +9140,15 @@ RISCOM8 all=m
 SCSI_ARCMSR_AER all=y
 SCSI_FD_MCS i386=m
 SCSI_IBMMCA i386=m
-SECURITY_APPARMOR_COMPAT_24=y
+SCSI_WAIT_SCAN all=m
 SERIAL_8250_MCA i386=m
+SERIAL_MAX3107 all=m
 SERIAL_MAX3107_AAVA all=m
 SIGMA all=m
 SKISA alpha=m i386=m
 SMCTR all=m
 SND_HDA_ENABLE_REALTEK_QUIRKS all=y
+SND_HDA_POWER_SAVE all=y
 SND_INTELMID all=n
 SND_INTEL_SST all=m
 SND_SOC_CACHE_LZO all=y
@@ -8916,6 +9163,7 @@ STALLION all=m
 STMMAC_DUAL_MAC all=y
 SX all=m
 SYSCTL_SYSCALL_CHECK all=n
+TIPC_DEBUG all=n
 TMS380TR all=m sparc=
 TMSPCI all=m sparc=
 TR all=y sparc=n
@@ -8926,10 +9174,12 @@ USB_CI13XXX_PCI all=m
 USB_DEVICEFS all=y
 USB_DEVICE_CLASS all=n
 USB_ET61X251 all=m
+USB_EZUSB all=y
 USB_GADGET_AMD5536UDC all=n
 USB_GADGET_AT91 all=n
 USB_GADGET_ATMEL_USBA all=n
 USB_GADGET_CI13XXX_PCI all=n
+USB_GADGET_DUALSPEED all=y
 USB_GADGET_DUMMY_HCD all=y
 USB_GADGET_DWC3 all=m
 USB_GADGET_EG20T all=n
@@ -8945,11 +9195,24 @@ USB_GADGET_R8A66597 all=n
 USB_GADGET_S3C2410 all=n
 USB_GADGET_SELECTED all=y
 USB_LANGWELL_OTG all=m
+USB_LIBUSUAL all=y
 USB_SERIAL_QUATECH_USB2 all=m
+V4L_ISA_PARPORT_DRIVERS all=y
+V4L_PCI_DRIVERS all=y
+V4L_USB_DRIVERS all=y sparc=n
+VIDEO_BT848_DVB all=y
+VIDEO_CAPTURE_DRIVERS all=y
+VIDEO_HELPER_CHIPS_AUTO all=y
+VIDEO_V4L2_COMMON all=m
+VIRTIO_RING all=m
+WIMAX_I2400M_SDIO all=m
+WIMAX_IWMC3200_SDIO all=y
+WIRELESS_EXT_SYSFS all=y
 WL12XX_HT all=y
 WL12XX_MENU all=m
 WL12XX_SDIO all=m
 WL12XX_SDIO_TEST all=m
 WL12XX_SPI all=m
+WM5102 all=y
 XEN_PLATFORM_PCI all=m
 XVMALLOC all=y
index 0030bbbb60e0fc799234909e3706c40a328deb77..01389aa781414e0062fd123d1ba842450ebfd7ec 100644 (file)
@@ -1,6 +1,6 @@
-diff -upr linux-2.6.25/include/linux/netfilter/xt_owner.h linux-2.6.25-owner-xid/include/linux/netfilter/xt_owner.h
---- linux-2.6.25/include/linux/netfilter/xt_owner.h    2008-04-17 02:49:44.000000000 +0000
-+++ linux-2.6.25-owner-xid/include/linux/netfilter/xt_owner.h  2008-05-20 18:36:38.074950561 +0000
+diff -upr linux-2.6.25/include/uapi/linux/netfilter/xt_owner.h linux-2.6.25-owner-xid/include/uapi/linux/netfilter/xt_owner.h
+--- linux-2.6.25/include/uapi/linux/netfilter/xt_owner.h       2008-04-17 02:49:44.000000000 +0000
++++ linux-2.6.25-owner-xid/include/uapi/linux/netfilter/xt_owner.h     2008-05-20 18:36:38.074950561 +0000
 @@ -5,12 +5,16 @@ enum {
        XT_OWNER_UID    = 1 << 0,
        XT_OWNER_GID    = 1 << 1,
index c6455a41a29a9f68603b9ba3093ff2ccd79f96ba..57ad0061ec149e3cf170bda744d82f25b9c366ff 100644 (file)
@@ -1,5 +1,5 @@
---- linux-2.6.21.a/drivers/media/video/pwc/pwc-uncompress.c    2007-04-26 05:08:32.000000000 +0200
-+++ linux-2.6.21.b/drivers/media/video/pwc/pwc-uncompress.c    2007-05-02 14:32:49.000000000 +0200
+--- linux-2.6.21.a/drivers/media/usb/pwc/pwc-uncompress.c      2007-04-26 05:08:32.000000000 +0200
++++ linux-2.6.21.b/drivers/media/usb/pwc/pwc-uncompress.c      2007-05-02 14:32:49.000000000 +0200
 @@ -26,6 +26,7 @@
     vim: set ts=8:
  */
index 5c873819a26db0ca18dcee14dc8695aa04295daf..acaf5892e2bc62bbeb339e58538afeac93ef49cc 100644 (file)
@@ -357,8 +357,8 @@ index 3d94a14..9a9a6cc 100644
  
  config VGASTATE
         tristate
---- linux-3.4/include/linux/virtio_ids.h~      2012-05-21 08:42:02.000000000 +0200
-+++ linux-3.4/include/linux/virtio_ids.h       2012-05-21 09:02:40.065957644 +0200
+--- linux-3.4/include/uapi/linux/virtio_ids.h~ 2012-05-21 08:42:02.000000000 +0200
++++ linux-3.4/include/uapi/linux/virtio_ids.h  2012-05-21 09:02:40.065957644 +0200
 @@ -34,6 +34,7 @@
  #define VIRTIO_ID_CONSOLE     3 /* virtio console */
  #define VIRTIO_ID_RNG         4 /* virtio ring */
index 8dff9eab769a80a5749d6d32d9ffb1b64832521c..9bf1d63a627816e046fad04dd7620142d48dd8be 100644 (file)
@@ -1,6 +1,6 @@
-diff -NurpP --minimal linux-3.6.10/Documentation/vserver/debug.txt linux-3.6.10-vs2.3.4.5/Documentation/vserver/debug.txt
---- linux-3.6.10/Documentation/vserver/debug.txt       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/Documentation/vserver/debug.txt     2012-10-04 18:46:59.000000000 +0200
+diff -NurpP --minimal linux-3.7/Documentation/vserver/debug.txt linux-3.7-vs2.3.5.1/Documentation/vserver/debug.txt
+--- linux-3.7/Documentation/vserver/debug.txt  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/Documentation/vserver/debug.txt        2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,154 @@
 +
 +debug_cvirt:
@@ -156,10 +156,10 @@ diff -NurpP --minimal linux-3.6.10/Documentation/vserver/debug.txt linux-3.6.10-
 + 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.6.10/arch/alpha/Kconfig linux-3.6.10-vs2.3.4.5/arch/alpha/Kconfig
---- linux-3.6.10/arch/alpha/Kconfig    2012-10-04 15:26:43.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/alpha/Kconfig  2012-10-04 18:46:59.000000000 +0200
-@@ -664,6 +664,8 @@ config DUMMY_CONSOLE
+diff -NurpP --minimal linux-3.7/arch/alpha/Kconfig linux-3.7-vs2.3.5.1/arch/alpha/Kconfig
+--- linux-3.7/arch/alpha/Kconfig       2012-12-11 15:45:43.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/alpha/Kconfig     2012-12-11 15:56:32.000000000 +0000
+@@ -668,6 +668,8 @@ config DUMMY_CONSOLE
        depends on VGA_HOSE
        default y
  
@@ -168,20 +168,9 @@ diff -NurpP --minimal linux-3.6.10/arch/alpha/Kconfig linux-3.6.10-vs2.3.4.5/arc
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/alpha/kernel/ptrace.c linux-3.6.10-vs2.3.4.5/arch/alpha/kernel/ptrace.c
---- linux-3.6.10/arch/alpha/kernel/ptrace.c    2012-05-21 18:06:12.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/alpha/kernel/ptrace.c  2012-10-04 18:46:59.000000000 +0200
-@@ -13,6 +13,7 @@
- #include <linux/user.h>
- #include <linux/security.h>
- #include <linux/signal.h>
-+#include <linux/vs_base.h>
- #include <asm/uaccess.h>
- #include <asm/pgtable.h>
-diff -NurpP --minimal linux-3.6.10/arch/alpha/kernel/systbls.S linux-3.6.10-vs2.3.4.5/arch/alpha/kernel/systbls.S
---- linux-3.6.10/arch/alpha/kernel/systbls.S   2012-10-04 15:26:43.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/alpha/kernel/systbls.S 2012-10-04 18:46:59.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/alpha/kernel/systbls.S linux-3.7-vs2.3.5.1/arch/alpha/kernel/systbls.S
+--- linux-3.7/arch/alpha/kernel/systbls.S      2012-10-04 13:26:43.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/alpha/kernel/systbls.S    2012-12-11 15:56:32.000000000 +0000
 @@ -446,7 +446,7 @@ sys_call_table:
        .quad sys_stat64                        /* 425 */
        .quad sys_lstat64
@@ -191,9 +180,9 @@ diff -NurpP --minimal linux-3.6.10/arch/alpha/kernel/systbls.S linux-3.6.10-vs2.
        .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.6.10/arch/alpha/kernel/traps.c linux-3.6.10-vs2.3.4.5/arch/alpha/kernel/traps.c
---- linux-3.6.10/arch/alpha/kernel/traps.c     2012-05-21 18:06:12.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/alpha/kernel/traps.c   2012-10-04 18:46:59.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/alpha/kernel/traps.c linux-3.7-vs2.3.5.1/arch/alpha/kernel/traps.c
+--- linux-3.7/arch/alpha/kernel/traps.c        2012-12-11 15:45:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/alpha/kernel/traps.c      2012-12-11 15:56:32.000000000 +0000
 @@ -184,7 +184,8 @@ die_if_kernel(char * str, struct pt_regs
  #ifdef CONFIG_SMP
        printk("CPU %d ", hard_smp_processor_id());
@@ -204,10 +193,10 @@ diff -NurpP --minimal linux-3.6.10/arch/alpha/kernel/traps.c linux-3.6.10-vs2.3.
        dik_show_regs(regs, r9_15);
        add_taint(TAINT_DIE);
        dik_show_trace((unsigned long *)(regs+1));
-diff -NurpP --minimal linux-3.6.10/arch/arm/Kconfig linux-3.6.10-vs2.3.4.5/arch/arm/Kconfig
---- linux-3.6.10/arch/arm/Kconfig      2012-12-11 12:36:49.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/arm/Kconfig    2012-12-11 12:45:19.000000000 +0100
-@@ -2342,6 +2342,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/arm/Kconfig linux-3.7-vs2.3.5.1/arch/arm/Kconfig
+--- linux-3.7/arch/arm/Kconfig 2012-12-11 15:45:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/arm/Kconfig       2012-12-11 15:56:32.000000000 +0000
+@@ -2307,6 +2307,8 @@ source "fs/Kconfig"
  
  source "arch/arm/Kconfig.debug"
  
@@ -216,9 +205,9 @@ diff -NurpP --minimal linux-3.6.10/arch/arm/Kconfig linux-3.6.10-vs2.3.4.5/arch/
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/arm/kernel/calls.S linux-3.6.10-vs2.3.4.5/arch/arm/kernel/calls.S
---- linux-3.6.10/arch/arm/kernel/calls.S       2012-10-04 15:26:43.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/arm/kernel/calls.S     2012-10-04 18:46:59.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/arm/kernel/calls.S linux-3.7-vs2.3.5.1/arch/arm/kernel/calls.S
+--- linux-3.7/arch/arm/kernel/calls.S  2012-12-11 15:45:45.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/arm/kernel/calls.S        2012-12-11 15:56:32.000000000 +0000
 @@ -322,7 +322,7 @@
  /* 310 */     CALL(sys_request_key)
                CALL(sys_keyctl)
@@ -228,9 +217,9 @@ diff -NurpP --minimal linux-3.6.10/arch/arm/kernel/calls.S linux-3.6.10-vs2.3.4.
                CALL(sys_ioprio_set)
  /* 315 */     CALL(sys_ioprio_get)
                CALL(sys_inotify_init)
-diff -NurpP --minimal linux-3.6.10/arch/arm/kernel/process.c linux-3.6.10-vs2.3.4.5/arch/arm/kernel/process.c
---- linux-3.6.10/arch/arm/kernel/process.c     2012-10-04 15:26:43.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/arm/kernel/process.c   2012-10-04 18:46:59.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/arm/kernel/process.c linux-3.7-vs2.3.5.1/arch/arm/kernel/process.c
+--- linux-3.7/arch/arm/kernel/process.c        2012-12-11 15:45:45.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/arm/kernel/process.c      2012-12-11 15:56:32.000000000 +0000
 @@ -337,7 +337,8 @@ void __show_regs(struct pt_regs *regs)
  void show_regs(struct pt_regs * regs)
  {
@@ -241,9 +230,9 @@ diff -NurpP --minimal linux-3.6.10/arch/arm/kernel/process.c linux-3.6.10-vs2.3.
        __show_regs(regs);
        dump_stack();
  }
-diff -NurpP --minimal linux-3.6.10/arch/arm/kernel/traps.c linux-3.6.10-vs2.3.4.5/arch/arm/kernel/traps.c
---- linux-3.6.10/arch/arm/kernel/traps.c       2012-10-04 15:26:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/arm/kernel/traps.c     2012-10-04 19:03:56.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/arm/kernel/traps.c linux-3.7-vs2.3.5.1/arch/arm/kernel/traps.c
+--- linux-3.7/arch/arm/kernel/traps.c  2012-10-04 13:26:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/arm/kernel/traps.c        2012-12-11 15:56:32.000000000 +0000
 @@ -249,8 +249,8 @@ static int __die(const char *str, int er
  
        print_modules();
@@ -255,10 +244,10 @@ diff -NurpP --minimal linux-3.6.10/arch/arm/kernel/traps.c linux-3.6.10-vs2.3.4.
  
        if (!user_mode(regs) || in_interrupt()) {
                dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp,
-diff -NurpP --minimal linux-3.6.10/arch/cris/Kconfig linux-3.6.10-vs2.3.4.5/arch/cris/Kconfig
---- linux-3.6.10/arch/cris/Kconfig     2012-10-04 15:26:51.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/cris/Kconfig   2012-10-04 18:46:59.000000000 +0200
-@@ -673,6 +673,8 @@ source "drivers/staging/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/cris/Kconfig linux-3.7-vs2.3.5.1/arch/cris/Kconfig
+--- linux-3.7/arch/cris/Kconfig        2012-12-11 15:46:01.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/cris/Kconfig      2012-12-11 15:56:32.000000000 +0000
+@@ -670,6 +670,8 @@ source "drivers/staging/Kconfig"
  
  source "arch/cris/Kconfig.debug"
  
@@ -267,22 +256,10 @@ diff -NurpP --minimal linux-3.6.10/arch/cris/Kconfig linux-3.6.10-vs2.3.4.5/arch
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/frv/kernel/kernel_thread.S linux-3.6.10-vs2.3.4.5/arch/frv/kernel/kernel_thread.S
---- linux-3.6.10/arch/frv/kernel/kernel_thread.S       2012-10-04 15:26:51.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/frv/kernel/kernel_thread.S     2012-10-04 18:46:59.000000000 +0200
-@@ -37,7 +37,7 @@ kernel_thread:
-       # start by forking the current process, but with shared VM
-       setlos.p        #__NR_clone,gr7         ; syscall number
--      ori             gr10,#CLONE_VM,gr8      ; first syscall arg     [clone_flags]
-+      ori             gr10,#CLONE_KT,gr8      ; first syscall arg     [clone_flags]
-       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.6.10/arch/h8300/Kconfig linux-3.6.10-vs2.3.4.5/arch/h8300/Kconfig
---- linux-3.6.10/arch/h8300/Kconfig    2012-10-04 15:26:51.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/h8300/Kconfig  2012-10-04 18:46:59.000000000 +0200
-@@ -215,6 +215,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/h8300/Kconfig linux-3.7-vs2.3.5.1/arch/h8300/Kconfig
+--- linux-3.7/arch/h8300/Kconfig       2012-12-11 15:46:02.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/h8300/Kconfig     2012-12-11 15:56:32.000000000 +0000
+@@ -217,6 +217,8 @@ source "fs/Kconfig"
  
  source "arch/h8300/Kconfig.debug"
  
@@ -291,10 +268,10 @@ diff -NurpP --minimal linux-3.6.10/arch/h8300/Kconfig linux-3.6.10-vs2.3.4.5/arc
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/ia64/Kconfig linux-3.6.10-vs2.3.4.5/arch/ia64/Kconfig
---- linux-3.6.10/arch/ia64/Kconfig     2012-10-04 15:26:51.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/ia64/Kconfig   2012-10-04 18:46:59.000000000 +0200
-@@ -652,6 +652,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/ia64/Kconfig linux-3.7-vs2.3.5.1/arch/ia64/Kconfig
+--- linux-3.7/arch/ia64/Kconfig        2012-12-11 15:46:03.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/ia64/Kconfig      2012-12-11 15:56:32.000000000 +0000
+@@ -644,6 +644,8 @@ source "fs/Kconfig"
  
  source "arch/ia64/Kconfig.debug"
  
@@ -303,9 +280,9 @@ diff -NurpP --minimal linux-3.6.10/arch/ia64/Kconfig linux-3.6.10-vs2.3.4.5/arch
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/ia64/kernel/entry.S linux-3.6.10-vs2.3.4.5/arch/ia64/kernel/entry.S
---- linux-3.6.10/arch/ia64/kernel/entry.S      2012-03-19 19:46:40.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/ia64/kernel/entry.S    2012-10-04 18:46:59.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/ia64/kernel/entry.S linux-3.7-vs2.3.5.1/arch/ia64/kernel/entry.S
+--- linux-3.7/arch/ia64/kernel/entry.S 2012-03-19 18:46:40.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/ia64/kernel/entry.S       2012-12-11 15:56:32.000000000 +0000
 @@ -1714,7 +1714,7 @@ sys_call_table:
        data8 sys_mq_notify
        data8 sys_mq_getsetattr
@@ -315,9 +292,9 @@ diff -NurpP --minimal linux-3.6.10/arch/ia64/kernel/entry.S linux-3.6.10-vs2.3.4
        data8 sys_waitid                        // 1270
        data8 sys_add_key
        data8 sys_request_key
-diff -NurpP --minimal linux-3.6.10/arch/ia64/kernel/process.c linux-3.6.10-vs2.3.4.5/arch/ia64/kernel/process.c
---- linux-3.6.10/arch/ia64/kernel/process.c    2012-12-11 12:36:49.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/ia64/kernel/process.c  2012-11-06 18:43:40.000000000 +0100
+diff -NurpP --minimal linux-3.7/arch/ia64/kernel/process.c linux-3.7-vs2.3.5.1/arch/ia64/kernel/process.c
+--- linux-3.7/arch/ia64/kernel/process.c       2012-12-11 15:46:03.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/ia64/kernel/process.c     2012-12-11 15:56:32.000000000 +0000
 @@ -111,8 +111,8 @@ show_regs (struct pt_regs *regs)
        unsigned long ip = regs->cr_iip + ia64_psr(regs)->ri;
  
@@ -329,9 +306,9 @@ diff -NurpP --minimal linux-3.6.10/arch/ia64/kernel/process.c linux-3.6.10-vs2.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.6.10/arch/ia64/kernel/ptrace.c linux-3.6.10-vs2.3.4.5/arch/ia64/kernel/ptrace.c
---- linux-3.6.10/arch/ia64/kernel/ptrace.c     2012-05-21 18:06:26.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/ia64/kernel/ptrace.c   2012-10-04 18:46:59.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/ia64/kernel/ptrace.c linux-3.7-vs2.3.5.1/arch/ia64/kernel/ptrace.c
+--- linux-3.7/arch/ia64/kernel/ptrace.c        2012-05-21 16:06:26.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/ia64/kernel/ptrace.c      2012-12-11 15:56:32.000000000 +0000
 @@ -21,6 +21,7 @@
  #include <linux/regset.h>
  #include <linux/elf.h>
@@ -340,9 +317,9 @@ diff -NurpP --minimal linux-3.6.10/arch/ia64/kernel/ptrace.c linux-3.6.10-vs2.3.
  
  #include <asm/pgtable.h>
  #include <asm/processor.h>
-diff -NurpP --minimal linux-3.6.10/arch/ia64/kernel/traps.c linux-3.6.10-vs2.3.4.5/arch/ia64/kernel/traps.c
---- linux-3.6.10/arch/ia64/kernel/traps.c      2012-05-21 18:06:26.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/ia64/kernel/traps.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/ia64/kernel/traps.c linux-3.7-vs2.3.5.1/arch/ia64/kernel/traps.c
+--- linux-3.7/arch/ia64/kernel/traps.c 2012-05-21 16:06:26.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/ia64/kernel/traps.c       2012-12-11 15:56:32.000000000 +0000
 @@ -60,8 +60,9 @@ die (const char *str, struct pt_regs *re
        put_cpu();
  
@@ -367,9 +344,9 @@ diff -NurpP --minimal linux-3.6.10/arch/ia64/kernel/traps.c linux-3.6.10-vs2.3.4
                        }
                }
        }
-diff -NurpP --minimal linux-3.6.10/arch/m32r/kernel/traps.c linux-3.6.10-vs2.3.4.5/arch/m32r/kernel/traps.c
---- linux-3.6.10/arch/m32r/kernel/traps.c      2012-05-21 18:06:26.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/m32r/kernel/traps.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/m32r/kernel/traps.c linux-3.7-vs2.3.5.1/arch/m32r/kernel/traps.c
+--- linux-3.7/arch/m32r/kernel/traps.c 2012-05-21 16:06:26.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/m32r/kernel/traps.c       2012-12-11 15:56:32.000000000 +0000
 @@ -195,8 +195,9 @@ static void show_registers(struct pt_reg
        } else {
                printk("SPI: %08lx\n", sp);
@@ -382,10 +359,10 @@ diff -NurpP --minimal linux-3.6.10/arch/m32r/kernel/traps.c linux-3.6.10-vs2.3.4
  
        /*
         * When in-kernel, we also print out the stack and code at the
-diff -NurpP --minimal linux-3.6.10/arch/m68k/Kconfig linux-3.6.10-vs2.3.4.5/arch/m68k/Kconfig
---- linux-3.6.10/arch/m68k/Kconfig     2012-10-04 15:26:51.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/m68k/Kconfig   2012-10-04 18:47:00.000000000 +0200
-@@ -129,6 +129,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/m68k/Kconfig linux-3.7-vs2.3.5.1/arch/m68k/Kconfig
+--- linux-3.7/arch/m68k/Kconfig        2012-12-11 15:46:03.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/m68k/Kconfig      2012-12-11 15:56:32.000000000 +0000
+@@ -135,6 +135,8 @@ source "fs/Kconfig"
  
  source "arch/m68k/Kconfig.debug"
  
@@ -394,10 +371,10 @@ diff -NurpP --minimal linux-3.6.10/arch/m68k/Kconfig linux-3.6.10-vs2.3.4.5/arch
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/mips/Kconfig linux-3.6.10-vs2.3.4.5/arch/mips/Kconfig
---- linux-3.6.10/arch/mips/Kconfig     2012-10-04 15:26:52.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/mips/Kconfig   2012-10-04 18:47:00.000000000 +0200
-@@ -2554,6 +2554,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/mips/Kconfig linux-3.7-vs2.3.5.1/arch/mips/Kconfig
+--- linux-3.7/arch/mips/Kconfig        2012-12-11 15:46:05.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/mips/Kconfig      2012-12-11 15:56:32.000000000 +0000
+@@ -2574,6 +2574,8 @@ source "fs/Kconfig"
  
  source "arch/mips/Kconfig.debug"
  
@@ -406,9 +383,9 @@ diff -NurpP --minimal linux-3.6.10/arch/mips/Kconfig linux-3.6.10-vs2.3.4.5/arch
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/mips/kernel/ptrace.c linux-3.6.10-vs2.3.4.5/arch/mips/kernel/ptrace.c
---- linux-3.6.10/arch/mips/kernel/ptrace.c     2012-07-22 23:38:52.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/mips/kernel/ptrace.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/mips/kernel/ptrace.c linux-3.7-vs2.3.5.1/arch/mips/kernel/ptrace.c
+--- linux-3.7/arch/mips/kernel/ptrace.c        2012-07-22 21:38:52.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/mips/kernel/ptrace.c      2012-12-11 15:56:32.000000000 +0000
 @@ -25,6 +25,7 @@
  #include <linux/security.h>
  #include <linux/audit.h>
@@ -427,10 +404,10 @@ diff -NurpP --minimal linux-3.6.10/arch/mips/kernel/ptrace.c linux-3.6.10-vs2.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.6.10/arch/mips/kernel/scall32-o32.S linux-3.6.10-vs2.3.4.5/arch/mips/kernel/scall32-o32.S
---- linux-3.6.10/arch/mips/kernel/scall32-o32.S        2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/mips/kernel/scall32-o32.S      2012-10-04 18:47:00.000000000 +0200
-@@ -523,7 +523,7 @@ einval:    li      v0, -ENOSYS
+diff -NurpP --minimal linux-3.7/arch/mips/kernel/scall32-o32.S linux-3.7-vs2.3.5.1/arch/mips/kernel/scall32-o32.S
+--- linux-3.7/arch/mips/kernel/scall32-o32.S   2012-12-11 15:46:07.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/mips/kernel/scall32-o32.S 2012-12-11 15:56:32.000000000 +0000
+@@ -512,7 +512,7 @@ einval:    li      v0, -ENOSYS
        sys     sys_mq_timedreceive     5
        sys     sys_mq_notify           2       /* 4275 */
        sys     sys_mq_getsetattr       3
@@ -439,10 +416,10 @@ diff -NurpP --minimal linux-3.6.10/arch/mips/kernel/scall32-o32.S linux-3.6.10-v
        sys     sys_waitid              5
        sys     sys_ni_syscall          0       /* available, was setaltroot */
        sys     sys_add_key             5       /* 4280 */
-diff -NurpP --minimal linux-3.6.10/arch/mips/kernel/scall64-64.S linux-3.6.10-vs2.3.4.5/arch/mips/kernel/scall64-64.S
---- linux-3.6.10/arch/mips/kernel/scall64-64.S 2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/mips/kernel/scall64-64.S       2012-10-04 18:47:00.000000000 +0200
-@@ -362,7 +362,7 @@ sys_call_table:
+diff -NurpP --minimal linux-3.7/arch/mips/kernel/scall64-64.S linux-3.7-vs2.3.5.1/arch/mips/kernel/scall64-64.S
+--- linux-3.7/arch/mips/kernel/scall64-64.S    2012-12-11 15:46:07.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/mips/kernel/scall64-64.S  2012-12-11 15:56:32.000000000 +0000
+@@ -351,7 +351,7 @@ sys_call_table:
        PTR     sys_mq_timedreceive
        PTR     sys_mq_notify
        PTR     sys_mq_getsetattr               /* 5235 */
@@ -451,10 +428,10 @@ diff -NurpP --minimal linux-3.6.10/arch/mips/kernel/scall64-64.S linux-3.6.10-vs
        PTR     sys_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key
-diff -NurpP --minimal linux-3.6.10/arch/mips/kernel/scall64-n32.S linux-3.6.10-vs2.3.4.5/arch/mips/kernel/scall64-n32.S
---- linux-3.6.10/arch/mips/kernel/scall64-n32.S        2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/mips/kernel/scall64-n32.S      2012-10-04 18:47:00.000000000 +0200
-@@ -361,7 +361,7 @@ EXPORT(sysn32_call_table)
+diff -NurpP --minimal linux-3.7/arch/mips/kernel/scall64-n32.S linux-3.7-vs2.3.5.1/arch/mips/kernel/scall64-n32.S
+--- linux-3.7/arch/mips/kernel/scall64-n32.S   2012-12-11 15:46:07.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/mips/kernel/scall64-n32.S 2012-12-11 15:56:32.000000000 +0000
+@@ -350,7 +350,7 @@ EXPORT(sysn32_call_table)
        PTR     compat_sys_mq_timedreceive
        PTR     compat_sys_mq_notify
        PTR     compat_sys_mq_getsetattr
@@ -463,10 +440,10 @@ diff -NurpP --minimal linux-3.6.10/arch/mips/kernel/scall64-n32.S linux-3.6.10-v
        PTR     compat_sys_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key
-diff -NurpP --minimal linux-3.6.10/arch/mips/kernel/scall64-o32.S linux-3.6.10-vs2.3.4.5/arch/mips/kernel/scall64-o32.S
---- linux-3.6.10/arch/mips/kernel/scall64-o32.S        2012-01-09 16:14:05.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/mips/kernel/scall64-o32.S      2012-10-04 18:47:00.000000000 +0200
-@@ -480,7 +480,7 @@ sys_call_table:
+diff -NurpP --minimal linux-3.7/arch/mips/kernel/scall64-o32.S linux-3.7-vs2.3.5.1/arch/mips/kernel/scall64-o32.S
+--- linux-3.7/arch/mips/kernel/scall64-o32.S   2012-12-11 15:46:07.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/mips/kernel/scall64-o32.S 2012-12-11 15:56:32.000000000 +0000
+@@ -469,7 +469,7 @@ sys_call_table:
        PTR     compat_sys_mq_timedreceive
        PTR     compat_sys_mq_notify            /* 4275 */
        PTR     compat_sys_mq_getsetattr
@@ -475,9 +452,9 @@ diff -NurpP --minimal linux-3.6.10/arch/mips/kernel/scall64-o32.S linux-3.6.10-v
        PTR     sys_32_waitid
        PTR     sys_ni_syscall                  /* available, was setaltroot */
        PTR     sys_add_key                     /* 4280 */
-diff -NurpP --minimal linux-3.6.10/arch/mips/kernel/traps.c linux-3.6.10-vs2.3.4.5/arch/mips/kernel/traps.c
---- linux-3.6.10/arch/mips/kernel/traps.c      2012-10-04 15:26:53.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/mips/kernel/traps.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/mips/kernel/traps.c linux-3.7-vs2.3.5.1/arch/mips/kernel/traps.c
+--- linux-3.7/arch/mips/kernel/traps.c 2012-10-04 13:26:53.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/mips/kernel/traps.c       2012-12-11 15:56:32.000000000 +0000
 @@ -347,9 +347,10 @@ void show_registers(struct pt_regs *regs
  
        __show_regs(regs);
@@ -492,10 +469,10 @@ diff -NurpP --minimal linux-3.6.10/arch/mips/kernel/traps.c linux-3.6.10-vs2.3.4
        if (cpu_has_userlocal) {
                unsigned long tls;
  
-diff -NurpP --minimal linux-3.6.10/arch/parisc/Kconfig linux-3.6.10-vs2.3.4.5/arch/parisc/Kconfig
---- linux-3.6.10/arch/parisc/Kconfig   2012-07-22 23:38:52.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/parisc/Kconfig 2012-10-04 18:47:00.000000000 +0200
-@@ -281,6 +281,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/parisc/Kconfig linux-3.7-vs2.3.5.1/arch/parisc/Kconfig
+--- linux-3.7/arch/parisc/Kconfig      2012-12-11 15:46:08.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/parisc/Kconfig    2012-12-11 15:56:32.000000000 +0000
+@@ -284,6 +284,8 @@ source "fs/Kconfig"
  
  source "arch/parisc/Kconfig.debug"
  
@@ -504,9 +481,9 @@ diff -NurpP --minimal linux-3.6.10/arch/parisc/Kconfig linux-3.6.10-vs2.3.4.5/ar
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/parisc/kernel/syscall_table.S linux-3.6.10-vs2.3.4.5/arch/parisc/kernel/syscall_table.S
---- linux-3.6.10/arch/parisc/kernel/syscall_table.S    2011-10-24 18:45:00.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/parisc/kernel/syscall_table.S  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/parisc/kernel/syscall_table.S linux-3.7-vs2.3.5.1/arch/parisc/kernel/syscall_table.S
+--- linux-3.7/arch/parisc/kernel/syscall_table.S       2012-12-11 15:46:09.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/parisc/kernel/syscall_table.S     2012-12-11 15:56:32.000000000 +0000
 @@ -361,7 +361,7 @@
        ENTRY_COMP(mbind)               /* 260 */
        ENTRY_COMP(get_mempolicy)
@@ -516,9 +493,9 @@ diff -NurpP --minimal linux-3.6.10/arch/parisc/kernel/syscall_table.S linux-3.6.
        ENTRY_SAME(add_key)
        ENTRY_SAME(request_key)         /* 265 */
        ENTRY_SAME(keyctl)
-diff -NurpP --minimal linux-3.6.10/arch/parisc/kernel/traps.c linux-3.6.10-vs2.3.4.5/arch/parisc/kernel/traps.c
---- linux-3.6.10/arch/parisc/kernel/traps.c    2012-05-21 18:06:28.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/parisc/kernel/traps.c  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/parisc/kernel/traps.c linux-3.7-vs2.3.5.1/arch/parisc/kernel/traps.c
+--- linux-3.7/arch/parisc/kernel/traps.c       2012-05-21 16:06:28.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/parisc/kernel/traps.c     2012-12-11 15:56:32.000000000 +0000
 @@ -235,8 +235,9 @@ void die_if_kernel(char *str, struct pt_
                if (err == 0)
                        return; /* STFU */
@@ -542,9 +519,9 @@ diff -NurpP --minimal linux-3.6.10/arch/parisc/kernel/traps.c linux-3.6.10-vs2.3
  
        /* Wot's wrong wif bein' racy? */
        if (current->thread.flags & PARISC_KERNEL_DEATH) {
-diff -NurpP --minimal linux-3.6.10/arch/parisc/mm/fault.c linux-3.6.10-vs2.3.4.5/arch/parisc/mm/fault.c
---- linux-3.6.10/arch/parisc/mm/fault.c        2010-08-02 16:52:06.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/parisc/mm/fault.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/parisc/mm/fault.c linux-3.7-vs2.3.5.1/arch/parisc/mm/fault.c
+--- linux-3.7/arch/parisc/mm/fault.c   2010-08-02 14:52:06.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/parisc/mm/fault.c 2012-12-11 15:56:32.000000000 +0000
 @@ -237,8 +237,9 @@ bad_area:
  
  #ifdef PRINT_USER_FAULTS
@@ -557,10 +534,10 @@ diff -NurpP --minimal linux-3.6.10/arch/parisc/mm/fault.c linux-3.6.10-vs2.3.4.5
                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.6.10/arch/powerpc/Kconfig linux-3.6.10-vs2.3.4.5/arch/powerpc/Kconfig
---- linux-3.6.10/arch/powerpc/Kconfig  2012-10-04 15:26:53.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/powerpc/Kconfig        2012-10-04 18:47:00.000000000 +0200
-@@ -996,6 +996,8 @@ source "lib/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/powerpc/Kconfig linux-3.7-vs2.3.5.1/arch/powerpc/Kconfig
+--- linux-3.7/arch/powerpc/Kconfig     2012-12-11 15:46:09.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/powerpc/Kconfig   2012-12-11 15:56:32.000000000 +0000
+@@ -1014,6 +1014,8 @@ source "lib/Kconfig"
  
  source "arch/powerpc/Kconfig.debug"
  
@@ -569,9 +546,9 @@ diff -NurpP --minimal linux-3.6.10/arch/powerpc/Kconfig linux-3.6.10-vs2.3.4.5/a
  source "security/Kconfig"
  
  config KEYS_COMPAT
-diff -NurpP --minimal linux-3.6.10/arch/powerpc/include/asm/unistd.h linux-3.6.10-vs2.3.4.5/arch/powerpc/include/asm/unistd.h
---- linux-3.6.10/arch/powerpc/include/asm/unistd.h     2012-10-04 15:26:53.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/powerpc/include/asm/unistd.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/powerpc/include/uapi/asm/unistd.h linux-3.7-vs2.3.5.1/arch/powerpc/include/uapi/asm/unistd.h
+--- linux-3.7/arch/powerpc/include/uapi/asm/unistd.h   2012-12-11 15:46:10.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/powerpc/include/uapi/asm/unistd.h 2012-12-11 16:48:48.000000000 +0000
 @@ -275,7 +275,7 @@
  #endif
  #define __NR_rtas             255
@@ -581,10 +558,10 @@ diff -NurpP --minimal linux-3.6.10/arch/powerpc/include/asm/unistd.h linux-3.6.1
  #define __NR_migrate_pages    258
  #define __NR_mbind            259
  #define __NR_get_mempolicy    260
-diff -NurpP --minimal linux-3.6.10/arch/powerpc/kernel/process.c linux-3.6.10-vs2.3.4.5/arch/powerpc/kernel/process.c
---- linux-3.6.10/arch/powerpc/kernel/process.c 2012-10-04 15:26:54.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/powerpc/kernel/process.c       2012-10-04 18:47:00.000000000 +0200
-@@ -661,8 +661,9 @@ void show_regs(struct pt_regs * regs)
+diff -NurpP --minimal linux-3.7/arch/powerpc/kernel/process.c linux-3.7-vs2.3.5.1/arch/powerpc/kernel/process.c
+--- linux-3.7/arch/powerpc/kernel/process.c    2012-12-11 15:46:10.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/powerpc/kernel/process.c  2012-12-11 15:56:32.000000000 +0000
+@@ -660,8 +660,9 @@ void show_regs(struct pt_regs * regs)
  #else
                printk("DAR: "REG", DSISR: %08lx\n", regs->dar, regs->dsisr);
  #endif
@@ -596,10 +573,10 @@ diff -NurpP --minimal linux-3.6.10/arch/powerpc/kernel/process.c linux-3.6.10-vs
  
  #ifdef CONFIG_SMP
        printk(" CPU: %d", raw_smp_processor_id());
-diff -NurpP --minimal linux-3.6.10/arch/powerpc/kernel/traps.c linux-3.6.10-vs2.3.4.5/arch/powerpc/kernel/traps.c
---- linux-3.6.10/arch/powerpc/kernel/traps.c   2012-10-04 15:26:54.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/powerpc/kernel/traps.c 2012-10-04 18:47:00.000000000 +0200
-@@ -1119,8 +1119,9 @@ void nonrecoverable_exception(struct pt_
+diff -NurpP --minimal linux-3.7/arch/powerpc/kernel/traps.c linux-3.7-vs2.3.5.1/arch/powerpc/kernel/traps.c
+--- linux-3.7/arch/powerpc/kernel/traps.c      2012-12-11 15:46:10.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/powerpc/kernel/traps.c    2012-12-11 15:56:32.000000000 +0000
+@@ -1120,8 +1120,9 @@ void nonrecoverable_exception(struct pt_
  
  void trace_syscall(struct pt_regs *regs)
  {
@@ -611,10 +588,10 @@ diff -NurpP --minimal linux-3.6.10/arch/powerpc/kernel/traps.c linux-3.6.10-vs2.
               regs->ccr&0x10000000?"Error=":"", regs->gpr[3], print_tainted());
  }
  
-diff -NurpP --minimal linux-3.6.10/arch/s390/Kconfig linux-3.6.10-vs2.3.4.5/arch/s390/Kconfig
---- linux-3.6.10/arch/s390/Kconfig     2012-10-04 15:26:54.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/s390/Kconfig   2012-10-04 18:47:00.000000000 +0200
-@@ -634,6 +634,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/s390/Kconfig linux-3.7-vs2.3.5.1/arch/s390/Kconfig
+--- linux-3.7/arch/s390/Kconfig        2012-12-11 15:46:14.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/s390/Kconfig      2012-12-11 15:56:32.000000000 +0000
+@@ -530,6 +530,8 @@ source "fs/Kconfig"
  
  source "arch/s390/Kconfig.debug"
  
@@ -623,9 +600,9 @@ diff -NurpP --minimal linux-3.6.10/arch/s390/Kconfig linux-3.6.10-vs2.3.4.5/arch
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/s390/include/asm/tlb.h linux-3.6.10-vs2.3.4.5/arch/s390/include/asm/tlb.h
---- linux-3.6.10/arch/s390/include/asm/tlb.h   2012-07-22 23:38:59.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/s390/include/asm/tlb.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/s390/include/asm/tlb.h linux-3.7-vs2.3.5.1/arch/s390/include/asm/tlb.h
+--- linux-3.7/arch/s390/include/asm/tlb.h      2012-12-11 15:46:14.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/s390/include/asm/tlb.h    2012-12-11 15:56:32.000000000 +0000
 @@ -24,6 +24,7 @@
  #include <linux/mm.h>
  #include <linux/pagemap.h>
@@ -634,9 +611,9 @@ diff -NurpP --minimal linux-3.6.10/arch/s390/include/asm/tlb.h linux-3.6.10-vs2.
  #include <asm/processor.h>
  #include <asm/pgalloc.h>
  #include <asm/tlbflush.h>
-diff -NurpP --minimal linux-3.6.10/arch/s390/include/asm/unistd.h linux-3.6.10-vs2.3.4.5/arch/s390/include/asm/unistd.h
---- linux-3.6.10/arch/s390/include/asm/unistd.h        2012-10-04 15:26:55.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/s390/include/asm/unistd.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/s390/include/uapi/asm/unistd.h linux-3.7-vs2.3.5.1/arch/s390/include/uapi/asm/unistd.h
+--- linux-3.7/arch/s390/include/uapi/asm/unistd.h      2012-12-11 15:46:14.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/s390/include/uapi/asm/unistd.h    2012-12-11 16:47:45.000000000 +0000
 @@ -200,7 +200,7 @@
  #define __NR_clock_gettime    (__NR_timer_create+6)
  #define __NR_clock_getres     (__NR_timer_create+7)
@@ -646,9 +623,9 @@ diff -NurpP --minimal linux-3.6.10/arch/s390/include/asm/unistd.h linux-3.6.10-v
  #define __NR_statfs64         265
  #define __NR_fstatfs64                266
  #define __NR_remap_file_pages 267
-diff -NurpP --minimal linux-3.6.10/arch/s390/kernel/ptrace.c linux-3.6.10-vs2.3.4.5/arch/s390/kernel/ptrace.c
---- linux-3.6.10/arch/s390/kernel/ptrace.c     2012-10-04 15:26:55.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/s390/kernel/ptrace.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/s390/kernel/ptrace.c linux-3.7-vs2.3.5.1/arch/s390/kernel/ptrace.c
+--- linux-3.7/arch/s390/kernel/ptrace.c        2012-12-11 15:46:15.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/s390/kernel/ptrace.c      2012-12-11 15:56:32.000000000 +0000
 @@ -21,6 +21,7 @@
  #include <linux/tracehook.h>
  #include <linux/seccomp.h>
@@ -657,9 +634,9 @@ diff -NurpP --minimal linux-3.6.10/arch/s390/kernel/ptrace.c linux-3.6.10-vs2.3.
  #include <trace/syscall.h>
  #include <asm/segment.h>
  #include <asm/page.h>
-diff -NurpP --minimal linux-3.6.10/arch/s390/kernel/syscalls.S linux-3.6.10-vs2.3.4.5/arch/s390/kernel/syscalls.S
---- linux-3.6.10/arch/s390/kernel/syscalls.S   2012-01-09 16:14:06.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/s390/kernel/syscalls.S 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/s390/kernel/syscalls.S linux-3.7-vs2.3.5.1/arch/s390/kernel/syscalls.S
+--- linux-3.7/arch/s390/kernel/syscalls.S      2012-12-11 15:46:15.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/s390/kernel/syscalls.S    2012-12-11 15:56:32.000000000 +0000
 @@ -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)
@@ -669,10 +646,10 @@ diff -NurpP --minimal linux-3.6.10/arch/s390/kernel/syscalls.S linux-3.6.10-vs2.
  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.6.10/arch/sh/Kconfig linux-3.6.10-vs2.3.4.5/arch/sh/Kconfig
---- linux-3.6.10/arch/sh/Kconfig       2012-10-04 15:26:55.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/sh/Kconfig     2012-10-04 18:47:00.000000000 +0200
-@@ -940,6 +940,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/sh/Kconfig linux-3.7-vs2.3.5.1/arch/sh/Kconfig
+--- linux-3.7/arch/sh/Kconfig  2012-12-11 15:46:15.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/sh/Kconfig        2012-12-11 15:56:32.000000000 +0000
+@@ -945,6 +945,8 @@ source "fs/Kconfig"
  
  source "arch/sh/Kconfig.debug"
  
@@ -681,9 +658,9 @@ diff -NurpP --minimal linux-3.6.10/arch/sh/Kconfig linux-3.6.10-vs2.3.4.5/arch/s
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/sh/kernel/irq.c linux-3.6.10-vs2.3.4.5/arch/sh/kernel/irq.c
---- linux-3.6.10/arch/sh/kernel/irq.c  2012-10-04 15:26:56.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/sh/kernel/irq.c        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/sh/kernel/irq.c linux-3.7-vs2.3.5.1/arch/sh/kernel/irq.c
+--- linux-3.7/arch/sh/kernel/irq.c     2012-10-04 13:26:56.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/sh/kernel/irq.c   2012-12-11 15:56:32.000000000 +0000
 @@ -14,6 +14,7 @@
  #include <linux/ftrace.h>
  #include <linux/delay.h>
@@ -692,10 +669,10 @@ diff -NurpP --minimal linux-3.6.10/arch/sh/kernel/irq.c linux-3.6.10-vs2.3.4.5/a
  #include <asm/processor.h>
  #include <asm/machvec.h>
  #include <asm/uaccess.h>
-diff -NurpP --minimal linux-3.6.10/arch/sparc/Kconfig linux-3.6.10-vs2.3.4.5/arch/sparc/Kconfig
---- linux-3.6.10/arch/sparc/Kconfig    2012-10-04 15:26:58.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/sparc/Kconfig  2012-10-04 18:47:00.000000000 +0200
-@@ -593,6 +593,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/sparc/Kconfig linux-3.7-vs2.3.5.1/arch/sparc/Kconfig
+--- linux-3.7/arch/sparc/Kconfig       2012-12-11 15:46:15.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/sparc/Kconfig     2012-12-11 15:56:32.000000000 +0000
+@@ -564,6 +564,8 @@ source "fs/Kconfig"
  
  source "arch/sparc/Kconfig.debug"
  
@@ -704,10 +681,10 @@ diff -NurpP --minimal linux-3.6.10/arch/sparc/Kconfig linux-3.6.10-vs2.3.4.5/arc
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/sparc/include/asm/unistd.h linux-3.6.10-vs2.3.4.5/arch/sparc/include/asm/unistd.h
---- linux-3.6.10/arch/sparc/include/asm/unistd.h       2012-10-04 15:26:59.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/sparc/include/asm/unistd.h     2012-10-04 18:47:00.000000000 +0200
-@@ -335,7 +335,7 @@
+diff -NurpP --minimal linux-3.7/arch/sparc/include/uapi/asm/unistd.h linux-3.7-vs2.3.5.1/arch/sparc/include/uapi/asm/unistd.h
+--- linux-3.7/arch/sparc/include/uapi/asm/unistd.h     2012-12-11 15:46:16.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/sparc/include/uapi/asm/unistd.h   2012-12-11 16:43:01.000000000 +0000
+@@ -332,7 +332,7 @@
  #define __NR_timer_getoverrun 264
  #define __NR_timer_delete     265
  #define __NR_timer_create     266
@@ -716,9 +693,9 @@ diff -NurpP --minimal linux-3.6.10/arch/sparc/include/asm/unistd.h linux-3.6.10-
  #define __NR_io_setup         268
  #define __NR_io_destroy               269
  #define __NR_io_submit                270
-diff -NurpP --minimal linux-3.6.10/arch/sparc/kernel/systbls_32.S linux-3.6.10-vs2.3.4.5/arch/sparc/kernel/systbls_32.S
---- linux-3.6.10/arch/sparc/kernel/systbls_32.S        2012-01-09 16:14:09.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/sparc/kernel/systbls_32.S      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/sparc/kernel/systbls_32.S linux-3.7-vs2.3.5.1/arch/sparc/kernel/systbls_32.S
+--- linux-3.7/arch/sparc/kernel/systbls_32.S   2012-12-11 15:46:17.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/sparc/kernel/systbls_32.S 2012-12-11 15:56:32.000000000 +0000
 @@ -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
@@ -728,9 +705,9 @@ diff -NurpP --minimal linux-3.6.10/arch/sparc/kernel/systbls_32.S linux-3.6.10-v
  /*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.6.10/arch/sparc/kernel/systbls_64.S linux-3.6.10-vs2.3.4.5/arch/sparc/kernel/systbls_64.S
---- linux-3.6.10/arch/sparc/kernel/systbls_64.S        2012-07-22 23:39:00.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/sparc/kernel/systbls_64.S      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/sparc/kernel/systbls_64.S linux-3.7-vs2.3.5.1/arch/sparc/kernel/systbls_64.S
+--- linux-3.7/arch/sparc/kernel/systbls_64.S   2012-12-11 15:46:17.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/sparc/kernel/systbls_64.S 2012-12-11 15:56:32.000000000 +0000
 @@ -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
@@ -740,7 +717,7 @@ diff -NurpP --minimal linux-3.6.10/arch/sparc/kernel/systbls_64.S linux-3.6.10-v
  /*270*/       .word sys32_io_submit, sys_io_cancel, compat_sys_io_getevents, sys32_mq_open, sys_mq_unlink
        .word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid
  /*280*/       .word sys32_tee, sys_add_key, sys_request_key, compat_sys_keyctl, compat_sys_openat
-@@ -148,7 +148,7 @@ sys_call_table:
+@@ -149,7 +149,7 @@ sys_call_table:
  /*250*/       .word sys_64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nis_syscall
        .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
  /*260*/       .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
@@ -749,9 +726,9 @@ diff -NurpP --minimal linux-3.6.10/arch/sparc/kernel/systbls_64.S linux-3.6.10-v
  /*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.6.10/arch/um/Kconfig.rest linux-3.6.10-vs2.3.4.5/arch/um/Kconfig.rest
---- linux-3.6.10/arch/um/Kconfig.rest  2012-01-09 16:14:09.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/um/Kconfig.rest        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/um/Kconfig.rest linux-3.7-vs2.3.5.1/arch/um/Kconfig.rest
+--- linux-3.7/arch/um/Kconfig.rest     2012-01-09 15:14:09.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/um/Kconfig.rest   2012-12-11 15:56:32.000000000 +0000
 @@ -12,6 +12,8 @@ source "arch/um/Kconfig.net"
  
  source "fs/Kconfig"
@@ -761,14 +738,14 @@ diff -NurpP --minimal linux-3.6.10/arch/um/Kconfig.rest linux-3.6.10-vs2.3.4.5/a
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/um/include/shared/kern_constants.h linux-3.6.10-vs2.3.4.5/arch/um/include/shared/kern_constants.h
---- linux-3.6.10/arch/um/include/shared/kern_constants.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/um/include/shared/kern_constants.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/um/include/shared/kern_constants.h linux-3.7-vs2.3.5.1/arch/um/include/shared/kern_constants.h
+--- linux-3.7/arch/um/include/shared/kern_constants.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/um/include/shared/kern_constants.h        2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1 @@
 +#include "../../../../include/generated/asm-offsets.h"
-diff -NurpP --minimal linux-3.6.10/arch/um/include/shared/user_constants.h linux-3.6.10-vs2.3.4.5/arch/um/include/shared/user_constants.h
---- linux-3.6.10/arch/um/include/shared/user_constants.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/arch/um/include/shared/user_constants.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/um/include/shared/user_constants.h linux-3.7-vs2.3.5.1/arch/um/include/shared/user_constants.h
+--- linux-3.7/arch/um/include/shared/user_constants.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/um/include/shared/user_constants.h        2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,40 @@
 +/*
 + * DO NOT MODIFY.
@@ -810,10 +787,10 @@ diff -NurpP --minimal linux-3.6.10/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.6.10/arch/x86/Kconfig linux-3.6.10-vs2.3.4.5/arch/x86/Kconfig
---- linux-3.6.10/arch/x86/Kconfig      2012-10-04 15:27:00.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/x86/Kconfig    2012-10-04 18:47:00.000000000 +0200
-@@ -2228,6 +2228,8 @@ source "fs/Kconfig"
+diff -NurpP --minimal linux-3.7/arch/x86/Kconfig linux-3.7-vs2.3.5.1/arch/x86/Kconfig
+--- linux-3.7/arch/x86/Kconfig 2012-12-11 15:46:18.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/x86/Kconfig       2012-12-11 15:56:32.000000000 +0000
+@@ -2248,6 +2248,8 @@ source "fs/Kconfig"
  
  source "arch/x86/Kconfig.debug"
  
@@ -822,9 +799,9 @@ diff -NurpP --minimal linux-3.6.10/arch/x86/Kconfig linux-3.6.10-vs2.3.4.5/arch/
  source "security/Kconfig"
  
  source "crypto/Kconfig"
-diff -NurpP --minimal linux-3.6.10/arch/x86/syscalls/syscall_32.tbl linux-3.6.10-vs2.3.4.5/arch/x86/syscalls/syscall_32.tbl
---- linux-3.6.10/arch/x86/syscalls/syscall_32.tbl      2012-07-22 23:39:02.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/x86/syscalls/syscall_32.tbl    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/x86/syscalls/syscall_32.tbl linux-3.7-vs2.3.5.1/arch/x86/syscalls/syscall_32.tbl
+--- linux-3.7/arch/x86/syscalls/syscall_32.tbl 2012-12-11 15:46:21.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/x86/syscalls/syscall_32.tbl       2012-12-11 15:56:32.000000000 +0000
 @@ -279,7 +279,7 @@
  270   i386    tgkill                  sys_tgkill
  271   i386    utimes                  sys_utimes                      compat_sys_utimes
@@ -834,9 +811,9 @@ diff -NurpP --minimal linux-3.6.10/arch/x86/syscalls/syscall_32.tbl linux-3.6.10
  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.6.10/arch/x86/syscalls/syscall_64.tbl linux-3.6.10-vs2.3.4.5/arch/x86/syscalls/syscall_64.tbl
---- linux-3.6.10/arch/x86/syscalls/syscall_64.tbl      2012-10-04 15:27:01.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/arch/x86/syscalls/syscall_64.tbl    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/arch/x86/syscalls/syscall_64.tbl linux-3.7-vs2.3.5.1/arch/x86/syscalls/syscall_64.tbl
+--- linux-3.7/arch/x86/syscalls/syscall_64.tbl 2012-10-04 13:27:01.000000000 +0000
++++ linux-3.7-vs2.3.5.1/arch/x86/syscalls/syscall_64.tbl       2012-12-11 15:56:32.000000000 +0000
 @@ -242,7 +242,7 @@
  233   common  epoll_ctl               sys_epoll_ctl
  234   common  tgkill                  sys_tgkill
@@ -846,10 +823,10 @@ diff -NurpP --minimal linux-3.6.10/arch/x86/syscalls/syscall_64.tbl linux-3.6.10
  237   common  mbind                   sys_mbind
  238   common  set_mempolicy           sys_set_mempolicy
  239   common  get_mempolicy           sys_get_mempolicy
-diff -NurpP --minimal linux-3.6.10/drivers/block/Kconfig linux-3.6.10-vs2.3.4.5/drivers/block/Kconfig
---- linux-3.6.10/drivers/block/Kconfig 2012-05-21 18:06:43.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/drivers/block/Kconfig       2012-10-04 18:47:00.000000000 +0200
-@@ -290,6 +290,13 @@ config BLK_DEV_CRYPTOLOOP
+diff -NurpP --minimal linux-3.7/drivers/block/Kconfig linux-3.7-vs2.3.5.1/drivers/block/Kconfig
+--- linux-3.7/drivers/block/Kconfig    2012-12-11 15:46:23.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/block/Kconfig  2012-12-11 15:56:32.000000000 +0000
+@@ -291,6 +291,13 @@ config BLK_DEV_CRYPTOLOOP
  
  source "drivers/block/drbd/Kconfig"
  
@@ -863,20 +840,20 @@ diff -NurpP --minimal linux-3.6.10/drivers/block/Kconfig linux-3.6.10-vs2.3.4.5/
  config BLK_DEV_NBD
        tristate "Network block device support"
        depends on NET
-diff -NurpP --minimal linux-3.6.10/drivers/block/Makefile linux-3.6.10-vs2.3.4.5/drivers/block/Makefile
---- linux-3.6.10/drivers/block/Makefile        2012-03-19 19:46:52.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/drivers/block/Makefile      2012-10-04 18:47:00.000000000 +0200
-@@ -35,6 +35,7 @@ obj-$(CONFIG_VIODASD)                += viodasd.o
+diff -NurpP --minimal linux-3.7/drivers/block/Makefile linux-3.7-vs2.3.5.1/drivers/block/Makefile
+--- linux-3.7/drivers/block/Makefile   2012-12-11 15:46:23.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/block/Makefile 2012-12-11 15:56:32.000000000 +0000
+@@ -34,6 +34,7 @@ obj-$(CONFIG_VIRTIO_BLK)     += virtio_blk.o
+ obj-$(CONFIG_VIODASD)         += viodasd.o
  obj-$(CONFIG_BLK_DEV_SX8)     += sx8.o
- obj-$(CONFIG_BLK_DEV_UB)      += ub.o
  obj-$(CONFIG_BLK_DEV_HD)      += hd.o
 +obj-$(CONFIG_BLK_DEV_VROOT)   += vroot.o
  
  obj-$(CONFIG_XEN_BLKDEV_FRONTEND)     += xen-blkfront.o
  obj-$(CONFIG_XEN_BLKDEV_BACKEND)      += xen-blkback/
-diff -NurpP --minimal linux-3.6.10/drivers/block/loop.c linux-3.6.10-vs2.3.4.5/drivers/block/loop.c
---- linux-3.6.10/drivers/block/loop.c  2012-07-22 23:39:02.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/drivers/block/loop.c        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/drivers/block/loop.c linux-3.7-vs2.3.5.1/drivers/block/loop.c
+--- linux-3.7/drivers/block/loop.c     2012-12-11 15:46:24.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/block/loop.c   2012-12-11 16:49:59.000000000 +0000
 @@ -76,6 +76,7 @@
  #include <linux/sysfs.h>
  #include <linux/miscdevice.h>
@@ -893,7 +870,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/block/loop.c linux-3.6.10-vs2.3.4.5/d
        lo->lo_backing_file = file;
        lo->transfer = transfer_none;
        lo->ioctl = NULL;
-@@ -1001,6 +1003,7 @@ static int loop_clr_fd(struct loop_devic
+@@ -1014,6 +1016,7 @@ static int loop_clr_fd(struct loop_devic
        lo->lo_sizelimit = 0;
        lo->lo_encrypt_key_size = 0;
        lo->lo_thread = NULL;
@@ -901,16 +878,16 @@ diff -NurpP --minimal linux-3.6.10/drivers/block/loop.c linux-3.6.10-vs2.3.4.5/d
        memset(lo->lo_encrypt_key, 0, LO_KEY_SIZE);
        memset(lo->lo_crypt_name, 0, LO_NAME_SIZE);
        memset(lo->lo_file_name, 0, LO_NAME_SIZE);
-@@ -1042,7 +1045,7 @@ loop_set_status(struct loop_device *lo, 
+@@ -1055,7 +1058,7 @@ loop_set_status(struct loop_device *lo,
  
        if (lo->lo_encrypt_key_size &&
-           lo->lo_key_owner != uid &&
+           !uid_eq(lo->lo_key_owner, uid) &&
 -          !capable(CAP_SYS_ADMIN))
 +          !vx_capable(CAP_SYS_ADMIN, VXC_ADMIN_CLOOP))
                return -EPERM;
        if (lo->lo_state != Lo_bound)
                return -ENXIO;
-@@ -1132,7 +1135,8 @@ loop_get_status(struct loop_device *lo, 
+@@ -1145,7 +1148,8 @@ loop_get_status(struct loop_device *lo,
        memcpy(info->lo_crypt_name, lo->lo_crypt_name, LO_NAME_SIZE);
        info->lo_encrypt_type =
                lo->lo_encryption ? lo->lo_encryption->number : 0;
@@ -920,7 +897,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/block/loop.c linux-3.6.10-vs2.3.4.5/d
                info->lo_encrypt_key_size = lo->lo_encrypt_key_size;
                memcpy(info->lo_encrypt_key, lo->lo_encrypt_key,
                       lo->lo_encrypt_key_size);
-@@ -1492,6 +1496,11 @@ static int lo_open(struct block_device *
+@@ -1505,6 +1509,11 @@ static int lo_open(struct block_device *
                goto out;
        }
  
@@ -932,9 +909,9 @@ diff -NurpP --minimal linux-3.6.10/drivers/block/loop.c linux-3.6.10-vs2.3.4.5/d
        mutex_lock(&lo->lo_ctl_mutex);
        lo->lo_refcnt++;
        mutex_unlock(&lo->lo_ctl_mutex);
-diff -NurpP --minimal linux-3.6.10/drivers/block/vroot.c linux-3.6.10-vs2.3.4.5/drivers/block/vroot.c
---- linux-3.6.10/drivers/block/vroot.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/drivers/block/vroot.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/drivers/block/vroot.c linux-3.7-vs2.3.5.1/drivers/block/vroot.c
+--- linux-3.7/drivers/block/vroot.c    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/block/vroot.c  2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,291 @@
 +/*
 + *  linux/drivers/block/vroot.c
@@ -1227,9 +1204,9 @@ diff -NurpP --minimal linux-3.6.10/drivers/block/vroot.c linux-3.6.10-vs2.3.4.5/
 +
 +#endif
 +
-diff -NurpP --minimal linux-3.6.10/drivers/infiniband/Kconfig linux-3.6.10-vs2.3.4.5/drivers/infiniband/Kconfig
---- linux-3.6.10/drivers/infiniband/Kconfig    2012-07-22 23:39:06.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/drivers/infiniband/Kconfig  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/drivers/infiniband/Kconfig linux-3.7-vs2.3.5.1/drivers/infiniband/Kconfig
+--- linux-3.7/drivers/infiniband/Kconfig       2012-07-22 21:39:06.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/infiniband/Kconfig     2012-12-11 15:56:32.000000000 +0000
 @@ -39,7 +39,7 @@ config INFINIBAND_USER_MEM
  config INFINIBAND_ADDR_TRANS
        bool
@@ -1239,10 +1216,10 @@ diff -NurpP --minimal linux-3.6.10/drivers/infiniband/Kconfig linux-3.6.10-vs2.3
        default y
  
  source "drivers/infiniband/hw/mthca/Kconfig"
-diff -NurpP --minimal linux-3.6.10/drivers/infiniband/core/addr.c linux-3.6.10-vs2.3.4.5/drivers/infiniband/core/addr.c
---- linux-3.6.10/drivers/infiniband/core/addr.c        2012-10-04 15:27:10.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/drivers/infiniband/core/addr.c      2012-10-04 18:47:00.000000000 +0200
-@@ -263,7 +263,7 @@ static int addr6_resolve(struct sockaddr
+diff -NurpP --minimal linux-3.7/drivers/infiniband/core/addr.c linux-3.7-vs2.3.5.1/drivers/infiniband/core/addr.c
+--- linux-3.7/drivers/infiniband/core/addr.c   2012-12-11 15:46:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/infiniband/core/addr.c 2012-12-11 15:56:32.000000000 +0000
+@@ -261,7 +261,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,
@@ -1251,9 +1228,9 @@ diff -NurpP --minimal linux-3.6.10/drivers/infiniband/core/addr.c linux-3.6.10-v
                if (ret)
                        goto put;
  
-diff -NurpP --minimal linux-3.6.10/drivers/md/dm-ioctl.c linux-3.6.10-vs2.3.4.5/drivers/md/dm-ioctl.c
---- linux-3.6.10/drivers/md/dm-ioctl.c 2012-10-04 15:27:11.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/drivers/md/dm-ioctl.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/drivers/md/dm-ioctl.c linux-3.7-vs2.3.5.1/drivers/md/dm-ioctl.c
+--- linux-3.7/drivers/md/dm-ioctl.c    2012-10-04 13:27:11.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/md/dm-ioctl.c  2012-12-11 15:56:32.000000000 +0000
 @@ -16,6 +16,7 @@
  #include <linux/dm-ioctl.h>
  #include <linux/hdreg.h>
@@ -1300,7 +1277,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/md/dm-ioctl.c linux-3.6.10-vs2.3.4.5/
        if (!hc) {
                dm_put(md);
                return NULL;
-@@ -445,6 +450,9 @@ typedef int (*ioctl_fn)(struct dm_ioctl 
+@@ -445,6 +450,9 @@ typedef int (*ioctl_fn)(struct dm_ioctl
  
  static int remove_all(struct dm_ioctl *param, size_t param_size)
  {
@@ -1310,7 +1287,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/md/dm-ioctl.c linux-3.6.10-vs2.3.4.5/
        dm_hash_remove_all(1);
        param->data_size = 0;
        return 0;
-@@ -492,6 +500,8 @@ static int list_devices(struct dm_ioctl 
+@@ -492,6 +500,8 @@ static int list_devices(struct dm_ioctl
         */
        for (i = 0; i < NUM_BUCKETS; i++) {
                list_for_each_entry (hc, _name_buckets + i, name_list) {
@@ -1319,7 +1296,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/md/dm-ioctl.c linux-3.6.10-vs2.3.4.5/
                        needed += sizeof(struct dm_name_list);
                        needed += strlen(hc->name) + 1;
                        needed += ALIGN_MASK;
-@@ -515,6 +525,8 @@ static int list_devices(struct dm_ioctl 
+@@ -515,6 +525,8 @@ static int list_devices(struct dm_ioctl
         */
        for (i = 0; i < NUM_BUCKETS; i++) {
                list_for_each_entry (hc, _name_buckets + i, name_list) {
@@ -1339,9 +1316,9 @@ diff -NurpP --minimal linux-3.6.10/drivers/md/dm-ioctl.c linux-3.6.10-vs2.3.4.5/
                return -EACCES;
  
        if (_IOC_TYPE(command) != DM_IOCTL)
-diff -NurpP --minimal linux-3.6.10/drivers/md/dm.c linux-3.6.10-vs2.3.4.5/drivers/md/dm.c
---- linux-3.6.10/drivers/md/dm.c       2012-12-11 12:36:52.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/drivers/md/dm.c     2012-12-08 01:36:32.000000000 +0100
+diff -NurpP --minimal linux-3.7/drivers/md/dm.c linux-3.7-vs2.3.5.1/drivers/md/dm.c
+--- linux-3.7/drivers/md/dm.c  2012-12-11 15:46:38.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/md/dm.c        2012-12-11 15:56:32.000000000 +0000
 @@ -19,6 +19,7 @@
  #include <linux/idr.h>
  #include <linux/hdreg.h>
@@ -1350,7 +1327,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/md/dm.c linux-3.6.10-vs2.3.4.5/driver
  
  #include <trace/events/block.h>
  
-@@ -131,6 +132,7 @@ struct mapped_device {
+@@ -137,6 +138,7 @@ struct mapped_device {
        rwlock_t map_lock;
        atomic_t holders;
        atomic_t open_count;
@@ -1358,7 +1335,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/md/dm.c linux-3.6.10-vs2.3.4.5/driver
  
        unsigned long flags;
  
-@@ -343,6 +345,7 @@ int dm_deleting_md(struct mapped_device 
+@@ -345,6 +347,7 @@ int dm_deleting_md(struct mapped_device
  static int dm_blk_open(struct block_device *bdev, fmode_t mode)
  {
        struct mapped_device *md;
@@ -1366,7 +1343,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/md/dm.c linux-3.6.10-vs2.3.4.5/driver
  
        spin_lock(&_minor_lock);
  
-@@ -351,18 +354,19 @@ static int dm_blk_open(struct block_devi
+@@ -353,18 +356,19 @@ static int dm_blk_open(struct block_devi
                goto out;
  
        if (test_bit(DMF_FREEING, &md->flags) ||
@@ -1392,7 +1369,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/md/dm.c linux-3.6.10-vs2.3.4.5/driver
  }
  
  static int dm_blk_close(struct gendisk *disk, fmode_t mode)
-@@ -583,6 +587,14 @@ int dm_set_geometry(struct mapped_device
+@@ -575,6 +579,14 @@ int dm_set_geometry(struct mapped_device
        return 0;
  }
  
@@ -1407,7 +1384,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/md/dm.c linux-3.6.10-vs2.3.4.5/driver
  /*-----------------------------------------------------------------
   * CRUD START:
   *   A more elegant soln is in the works that uses the queue
-@@ -1898,6 +1910,7 @@ static struct mapped_device *alloc_dev(i
+@@ -1852,6 +1864,7 @@ static struct mapped_device *alloc_dev(i
        INIT_LIST_HEAD(&md->uevent_list);
        spin_lock_init(&md->uevent_lock);
  
@@ -1415,9 +1392,9 @@ diff -NurpP --minimal linux-3.6.10/drivers/md/dm.c linux-3.6.10-vs2.3.4.5/driver
        md->queue = blk_alloc_queue(GFP_KERNEL);
        if (!md->queue)
                goto bad_queue;
-diff -NurpP --minimal linux-3.6.10/drivers/md/dm.h linux-3.6.10-vs2.3.4.5/drivers/md/dm.h
---- linux-3.6.10/drivers/md/dm.h       2012-10-04 15:27:11.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/drivers/md/dm.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/drivers/md/dm.h linux-3.7-vs2.3.5.1/drivers/md/dm.h
+--- linux-3.7/drivers/md/dm.h  2012-10-04 13:27:11.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/md/dm.h        2012-12-11 15:56:32.000000000 +0000
 @@ -46,6 +46,8 @@ struct dm_dev_internal {
  struct dm_table;
  struct dm_md_mempools;
@@ -1427,9 +1404,9 @@ diff -NurpP --minimal linux-3.6.10/drivers/md/dm.h linux-3.6.10-vs2.3.4.5/driver
  /*-----------------------------------------------------------------
   * Internal table functions.
   *---------------------------------------------------------------*/
-diff -NurpP --minimal linux-3.6.10/drivers/net/tun.c linux-3.6.10-vs2.3.4.5/drivers/net/tun.c
---- linux-3.6.10/drivers/net/tun.c     2012-10-04 15:27:20.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/drivers/net/tun.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/drivers/net/tun.c linux-3.7-vs2.3.5.1/drivers/net/tun.c
+--- linux-3.7/drivers/net/tun.c        2012-12-11 15:47:01.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/net/tun.c      2012-12-12 00:07:34.000000000 +0000
 @@ -64,6 +64,7 @@
  #include <linux/nsproxy.h>
  #include <linux/virtio_net.h>
@@ -1438,32 +1415,32 @@ diff -NurpP --minimal linux-3.6.10/drivers/net/tun.c linux-3.6.10-vs2.3.4.5/driv
  #include <net/net_namespace.h>
  #include <net/netns/generic.h>
  #include <net/rtnetlink.h>
-@@ -122,6 +123,7 @@ struct tun_struct {
+@@ -123,6 +124,7 @@ struct tun_struct {
        unsigned int            flags;
-       uid_t                   owner;
-       gid_t                   group;
+       kuid_t                  owner;
+       kgid_t                  group;
 +      nid_t                   nid;
  
        struct net_device       *dev;
        netdev_features_t       set_features;
-@@ -1033,6 +1035,7 @@ static void tun_setup(struct net_device 
+@@ -1034,6 +1036,7 @@ static void tun_setup(struct net_device
  
-       tun->owner = -1;
-       tun->group = -1;
-+      tun->nid = current->nid;
+       tun->owner = INVALID_UID;
+       tun->group = INVALID_GID;
++      tun->nid = nx_current_nid();
  
        dev->ethtool_ops = &tun_ethtool_ops;
        dev->destructor = tun_free_netdev;
-@@ -1191,7 +1194,7 @@ static int tun_set_iff(struct net *net, 
+@@ -1198,7 +1201,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))) &&
+               if (((uid_valid(tun->owner) && !uid_eq(cred->euid, tun->owner)) ||
+                    (gid_valid(tun->group) && !in_egroup_p(tun->group))) &&
 -                  !capable(CAP_NET_ADMIN))
-+              !cap_raised(current_cap(), CAP_NET_ADMIN))
++                   !cap_raised(current_cap(), CAP_NET_ADMIN))
                        return -EPERM;
                err = security_tun_dev_attach(tun->socket.sk);
                if (err < 0)
-@@ -1205,7 +1208,7 @@ static int tun_set_iff(struct net *net, 
+@@ -1212,7 +1215,7 @@ static int tun_set_iff(struct net *net,
                char *name;
                unsigned long flags = 0;
  
@@ -1472,7 +1449,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/net/tun.c linux-3.6.10-vs2.3.4.5/driv
                        return -EPERM;
                err = security_tun_dev_create();
                if (err < 0)
-@@ -1276,6 +1279,9 @@ static int tun_set_iff(struct net *net, 
+@@ -1283,6 +1286,9 @@ static int tun_set_iff(struct net *net,
  
                sk->sk_destruct = tun_sock_destruct;
  
@@ -1482,8 +1459,8 @@ diff -NurpP --minimal linux-3.6.10/drivers/net/tun.c linux-3.6.10-vs2.3.4.5/driv
                err = tun_attach(tun, file);
                if (err < 0)
                        goto failed;
-@@ -1459,6 +1465,16 @@ static long __tun_chr_ioctl(struct file 
-               tun_debug(KERN_INFO, tun, "group set to %d\n", tun->group);
+@@ -1478,6 +1484,16 @@ static long __tun_chr_ioctl(struct file
+                         from_kgid(&init_user_ns, tun->group));
                break;
  
 +      case TUNSETNID:
@@ -1499,9 +1476,9 @@ diff -NurpP --minimal linux-3.6.10/drivers/net/tun.c linux-3.6.10-vs2.3.4.5/driv
        case TUNSETLINK:
                /* Only allow setting the type when the interface is down */
                if (tun->dev->flags & IFF_UP) {
-diff -NurpP --minimal linux-3.6.10/drivers/staging/csr/csr_wifi_hip_xbv.c linux-3.6.10-vs2.3.4.5/drivers/staging/csr/csr_wifi_hip_xbv.c
---- linux-3.6.10/drivers/staging/csr/csr_wifi_hip_xbv.c        2012-10-04 15:27:30.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/drivers/staging/csr/csr_wifi_hip_xbv.c      2012-12-10 17:33:14.000000000 +0100
+diff -NurpP --minimal linux-3.7/drivers/staging/csr/csr_wifi_hip_xbv.c linux-3.7-vs2.3.5.1/drivers/staging/csr/csr_wifi_hip_xbv.c
+--- linux-3.7/drivers/staging/csr/csr_wifi_hip_xbv.c   2012-10-04 13:27:30.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/staging/csr/csr_wifi_hip_xbv.c 2012-12-11 15:56:32.000000000 +0000
 @@ -55,7 +55,7 @@ typedef struct
  {
      char t_name[4];
@@ -1538,9 +1515,9 @@ diff -NurpP --minimal linux-3.6.10/drivers/staging/csr/csr_wifi_hip_xbv.c linux-
  {
      u8 buf[8];
      s32 n;
-diff -NurpP --minimal linux-3.6.10/drivers/tty/sysrq.c linux-3.6.10-vs2.3.4.5/drivers/tty/sysrq.c
---- linux-3.6.10/drivers/tty/sysrq.c   2012-05-21 18:07:16.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/drivers/tty/sysrq.c 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/drivers/tty/sysrq.c linux-3.7-vs2.3.5.1/drivers/tty/sysrq.c
+--- linux-3.7/drivers/tty/sysrq.c      2012-12-11 15:47:24.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/tty/sysrq.c    2012-12-11 16:52:41.000000000 +0000
 @@ -41,6 +41,7 @@
  #include <linux/slab.h>
  #include <linux/input.h>
@@ -1571,19 +1548,20 @@ diff -NurpP --minimal linux-3.6.10/drivers/tty/sysrq.c linux-3.6.10-vs2.3.4.5/dr
  /* Key Operations table and lock */
  static DEFINE_SPINLOCK(sysrq_key_table_lock);
  
-@@ -452,7 +468,11 @@ static struct sysrq_key_op *sysrq_key_ta
-       NULL,                           /* v */
+@@ -453,7 +469,11 @@ static struct sysrq_key_op *sysrq_key_ta
        &sysrq_showstate_blocked_op,    /* w */
        /* x: May be registered on ppc/powerpc for xmon */
+       /* x: May be registered on sparc64 for global PMU dump */
+-      NULL,                           /* x */
 +#ifdef CONFIG_VSERVER_DEBUG
 +      &sysrq_showvxinfo_op,           /* x */
 +#else
-       NULL,                           /* x */
++      NULL,                           /* x */
 +#endif
        /* y: May be registered on sparc64 for global register dump */
        NULL,                           /* y */
        &sysrq_ftrace_dump_op,          /* z */
-@@ -467,6 +487,8 @@ static int sysrq_key_table_key2index(int
+@@ -468,6 +488,8 @@ static int sysrq_key_table_key2index(int
                retval = key - '0';
        else if ((key >= 'a') && (key <= 'z'))
                retval = key + 10 - 'a';
@@ -1592,9 +1570,9 @@ diff -NurpP --minimal linux-3.6.10/drivers/tty/sysrq.c linux-3.6.10-vs2.3.4.5/dr
        else
                retval = -1;
        return retval;
-diff -NurpP --minimal linux-3.6.10/drivers/tty/tty_io.c linux-3.6.10-vs2.3.4.5/drivers/tty/tty_io.c
---- linux-3.6.10/drivers/tty/tty_io.c  2012-07-22 23:39:32.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/drivers/tty/tty_io.c        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/drivers/tty/tty_io.c linux-3.7-vs2.3.5.1/drivers/tty/tty_io.c
+--- linux-3.7/drivers/tty/tty_io.c     2012-12-11 15:47:24.000000000 +0000
++++ linux-3.7-vs2.3.5.1/drivers/tty/tty_io.c   2012-12-11 15:56:32.000000000 +0000
 @@ -104,6 +104,7 @@
  
  #include <linux/kmod.h>
@@ -1603,7 +1581,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/tty/tty_io.c linux-3.6.10-vs2.3.4.5/d
  
  #undef TTY_DEBUG_HANGUP
  
-@@ -2123,7 +2124,8 @@ static int tiocsti(struct tty_struct *tt
+@@ -2139,7 +2140,8 @@ static int tiocsti(struct tty_struct *tt
        char ch, mbz = 0;
        struct tty_ldisc *ld;
  
@@ -1613,7 +1591,7 @@ diff -NurpP --minimal linux-3.6.10/drivers/tty/tty_io.c linux-3.6.10-vs2.3.4.5/d
                return -EPERM;
        if (get_user(ch, p))
                return -EFAULT;
-@@ -2411,6 +2413,7 @@ static int tiocspgrp(struct tty_struct *
+@@ -2426,6 +2428,7 @@ static int tiocspgrp(struct tty_struct *
                return -ENOTTY;
        if (get_user(pgrp_nr, p))
                return -EFAULT;
@@ -1621,20 +1599,20 @@ diff -NurpP --minimal linux-3.6.10/drivers/tty/tty_io.c linux-3.6.10-vs2.3.4.5/d
        if (pgrp_nr < 0)
                return -EINVAL;
        rcu_read_lock();
-diff -NurpP --minimal linux-3.6.10/fs/attr.c linux-3.6.10-vs2.3.4.5/fs/attr.c
---- linux-3.6.10/fs/attr.c     2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/attr.c   2012-10-04 18:47:00.000000000 +0200
-@@ -14,6 +14,9 @@
- #include <linux/fcntl.h>
+diff -NurpP --minimal linux-3.7/fs/attr.c linux-3.7-vs2.3.5.1/fs/attr.c
+--- linux-3.7/fs/attr.c        2012-12-11 15:47:31.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/attr.c      2012-12-11 19:10:54.000000000 +0000
+@@ -15,6 +15,9 @@
  #include <linux/security.h>
  #include <linux/evm.h>
+ #include <linux/ima.h>
 +#include <linux/proc_fs.h>
 +#include <linux/devpts_fs.h>
 +#include <linux/vs_tag.h>
  
  /**
   * inode_change_ok - check if attribute changes to an inode are allowed
-@@ -74,6 +77,10 @@ int inode_change_ok(const struct inode *
+@@ -75,6 +78,10 @@ int inode_change_ok(const struct inode *
                        return -EPERM;
        }
  
@@ -1645,7 +1623,7 @@ diff -NurpP --minimal linux-3.6.10/fs/attr.c linux-3.6.10-vs2.3.4.5/fs/attr.c
        return 0;
  }
  EXPORT_SYMBOL(inode_change_ok);
-@@ -144,6 +151,8 @@ void setattr_copy(struct inode *inode, c
+@@ -145,6 +152,8 @@ void setattr_copy(struct inode *inode, c
                inode->i_uid = attr->ia_uid;
        if (ia_valid & ATTR_GID)
                inode->i_gid = attr->ia_gid;
@@ -1654,7 +1632,7 @@ diff -NurpP --minimal linux-3.6.10/fs/attr.c linux-3.6.10-vs2.3.4.5/fs/attr.c
        if (ia_valid & ATTR_ATIME)
                inode->i_atime = timespec_trunc(attr->ia_atime,
                                                inode->i_sb->s_time_gran);
-@@ -173,7 +182,8 @@ int notify_change(struct dentry * dentry
+@@ -174,7 +183,8 @@ int notify_change(struct dentry * dentry
  
        WARN_ON_ONCE(!mutex_is_locked(&inode->i_mutex));
  
@@ -1664,9 +1642,9 @@ diff -NurpP --minimal linux-3.6.10/fs/attr.c linux-3.6.10-vs2.3.4.5/fs/attr.c
                if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
                        return -EPERM;
        }
-diff -NurpP --minimal linux-3.6.10/fs/block_dev.c linux-3.6.10-vs2.3.4.5/fs/block_dev.c
---- linux-3.6.10/fs/block_dev.c        2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/block_dev.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/block_dev.c linux-3.7-vs2.3.5.1/fs/block_dev.c
+--- linux-3.7/fs/block_dev.c   2012-12-11 15:47:31.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/block_dev.c 2012-12-11 15:56:32.000000000 +0000
 @@ -27,6 +27,7 @@
  #include <linux/namei.h>
  #include <linux/log2.h>
@@ -1675,7 +1653,7 @@ diff -NurpP --minimal linux-3.6.10/fs/block_dev.c linux-3.6.10-vs2.3.4.5/fs/bloc
  #include <asm/uaccess.h>
  #include "internal.h"
  
-@@ -581,6 +582,7 @@ struct block_device *bdget(dev_t dev)
+@@ -528,6 +529,7 @@ struct block_device *bdget(dev_t dev)
                bdev->bd_invalidated = 0;
                inode->i_mode = S_IFBLK;
                inode->i_rdev = dev;
@@ -1683,7 +1661,7 @@ diff -NurpP --minimal linux-3.6.10/fs/block_dev.c linux-3.6.10-vs2.3.4.5/fs/bloc
                inode->i_bdev = bdev;
                inode->i_data.a_ops = &def_blk_aops;
                mapping_set_gfp_mask(&inode->i_data, GFP_USER);
-@@ -627,6 +629,11 @@ EXPORT_SYMBOL(bdput);
+@@ -574,6 +576,11 @@ EXPORT_SYMBOL(bdput);
  static struct block_device *bd_acquire(struct inode *inode)
  {
        struct block_device *bdev;
@@ -1695,7 +1673,7 @@ diff -NurpP --minimal linux-3.6.10/fs/block_dev.c linux-3.6.10-vs2.3.4.5/fs/bloc
  
        spin_lock(&bdev_lock);
        bdev = inode->i_bdev;
-@@ -637,7 +644,7 @@ static struct block_device *bd_acquire(s
+@@ -584,7 +591,7 @@ static struct block_device *bd_acquire(s
        }
        spin_unlock(&bdev_lock);
  
@@ -1704,10 +1682,10 @@ diff -NurpP --minimal linux-3.6.10/fs/block_dev.c linux-3.6.10-vs2.3.4.5/fs/bloc
        if (bdev) {
                spin_lock(&bdev_lock);
                if (!inode->i_bdev) {
-diff -NurpP --minimal linux-3.6.10/fs/btrfs/ctree.h linux-3.6.10-vs2.3.4.5/fs/btrfs/ctree.h
---- linux-3.6.10/fs/btrfs/ctree.h      2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/btrfs/ctree.h    2012-10-04 18:47:00.000000000 +0200
-@@ -674,11 +674,14 @@ struct btrfs_inode_item {
+diff -NurpP --minimal linux-3.7/fs/btrfs/ctree.h linux-3.7-vs2.3.5.1/fs/btrfs/ctree.h
+--- linux-3.7/fs/btrfs/ctree.h 2012-12-11 15:47:31.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/btrfs/ctree.h       2012-12-11 15:56:32.000000000 +0000
+@@ -692,11 +692,14 @@ struct btrfs_inode_item {
        /* modification sequence number for NFS */
        __le64 sequence;
  
@@ -1723,7 +1701,7 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/ctree.h linux-3.6.10-vs2.3.4.5/fs/bt
        struct btrfs_timespec atime;
        struct btrfs_timespec ctime;
        struct btrfs_timespec mtime;
-@@ -1727,6 +1730,8 @@ struct btrfs_ioctl_defrag_range_args {
+@@ -1757,6 +1760,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)
  
@@ -1732,7 +1710,7 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/ctree.h linux-3.6.10-vs2.3.4.5/fs/bt
  #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 & \
-@@ -1988,6 +1993,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st
+@@ -2025,6 +2030,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);
@@ -1740,7 +1718,7 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/ctree.h linux-3.6.10-vs2.3.4.5/fs/bt
  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);
-@@ -2041,6 +2047,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct 
+@@ -2078,6 +2084,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
  
  BTRFS_SETGET_FUNCS(extent_refs_v0, struct btrfs_extent_item_v0, refs, 32);
  
@@ -1751,7 +1729,7 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/ctree.h linux-3.6.10-vs2.3.4.5/fs/bt
  
  BTRFS_SETGET_FUNCS(tree_block_level, struct btrfs_tree_block_info, level, 8);
  
-@@ -3305,6 +3315,7 @@ extern const struct dentry_operations bt
+@@ -3363,6 +3373,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);
@@ -1759,10 +1737,10 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/ctree.h linux-3.6.10-vs2.3.4.5/fs/bt
  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.6.10/fs/btrfs/disk-io.c linux-3.6.10-vs2.3.4.5/fs/btrfs/disk-io.c
---- linux-3.6.10/fs/btrfs/disk-io.c    2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/btrfs/disk-io.c  2012-10-04 18:47:00.000000000 +0200
-@@ -2187,6 +2187,9 @@ int open_ctree(struct super_block *sb,
+diff -NurpP --minimal linux-3.7/fs/btrfs/disk-io.c linux-3.7-vs2.3.5.1/fs/btrfs/disk-io.c
+--- linux-3.7/fs/btrfs/disk-io.c       2012-12-11 15:47:31.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/btrfs/disk-io.c     2012-12-11 15:56:32.000000000 +0000
+@@ -2197,6 +2197,9 @@ int open_ctree(struct super_block *sb,
                goto fail_alloc;
        }
  
@@ -1772,9 +1750,9 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/disk-io.c linux-3.6.10-vs2.3.4.5/fs/
        features = btrfs_super_incompat_flags(disk_super) &
                ~BTRFS_FEATURE_INCOMPAT_SUPP;
        if (features) {
-diff -NurpP --minimal linux-3.6.10/fs/btrfs/inode.c linux-3.6.10-vs2.3.4.5/fs/btrfs/inode.c
---- linux-3.6.10/fs/btrfs/inode.c      2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/btrfs/inode.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/btrfs/inode.c linux-3.7-vs2.3.5.1/fs/btrfs/inode.c
+--- linux-3.7/fs/btrfs/inode.c 2012-12-11 15:47:31.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/btrfs/inode.c       2012-12-11 21:52:49.000000000 +0000
 @@ -39,6 +39,7 @@
  #include <linux/slab.h>
  #include <linux/ratelimit.h>
@@ -1783,7 +1761,7 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/inode.c linux-3.6.10-vs2.3.4.5/fs/bt
  #include "compat.h"
  #include "ctree.h"
  #include "disk-io.h"
-@@ -2545,6 +2546,8 @@ static void btrfs_read_locked_inode(stru
+@@ -2530,6 +2531,8 @@ static void btrfs_read_locked_inode(stru
        struct btrfs_key location;
        int maybe_acls;
        u32 rdev;
@@ -1792,40 +1770,42 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/inode.c linux-3.6.10-vs2.3.4.5/fs/bt
        int ret;
        bool filled = false;
  
-@@ -2572,8 +2575,13 @@ static void btrfs_read_locked_inode(stru
+@@ -2557,8 +2560,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));
--      inode->i_uid = btrfs_inode_uid(leaf, inode_item);
--      inode->i_gid = btrfs_inode_gid(leaf, inode_item);
+-      i_uid_write(inode, btrfs_inode_uid(leaf, inode_item));
+-      i_gid_write(inode, btrfs_inode_gid(leaf, inode_item));
 +
 +      uid = btrfs_inode_uid(leaf, inode_item);
 +      gid = btrfs_inode_gid(leaf, inode_item);
-+      inode->i_uid = INOTAG_UID(DX_TAG(inode), uid, gid);
-+      inode->i_gid = INOTAG_GID(DX_TAG(inode), uid, gid);
-+      inode->i_tag = INOTAG_TAG(DX_TAG(inode), uid, gid,
-+              btrfs_inode_tag(leaf, inode_item));
++      i_uid_write(inode, INOTAG_UID(DX_TAG(inode), uid, gid));
++      i_gid_write(inode, INOTAG_GID(DX_TAG(inode), uid, gid));
++      i_tag_write(inode, INOTAG_TAG(DX_TAG(inode), uid, gid,
++              btrfs_inode_tag(leaf, inode_item)));
        btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item));
  
        tspec = btrfs_inode_atime(inode_item);
-@@ -2651,8 +2659,14 @@ static void fill_inode_item(struct btrfs
+@@ -2648,8 +2656,16 @@ static void fill_inode_item(struct btrfs
                            struct btrfs_inode_item *item,
                            struct inode *inode)
  {
--      btrfs_set_inode_uid(leaf, item, inode->i_uid);
--      btrfs_set_inode_gid(leaf, item, inode->i_gid);
-+      uid_t uid = TAGINO_UID(DX_TAG(inode), inode->i_uid, inode->i_tag);
-+      gid_t gid = TAGINO_GID(DX_TAG(inode), inode->i_gid, inode->i_tag);
+-      btrfs_set_inode_uid(leaf, item, i_uid_read(inode));
+-      btrfs_set_inode_gid(leaf, item, i_gid_read(inode));
++      uid_t uid = TAGINO_UID(DX_TAG(inode),
++              i_uid_read(inode), i_tag_read(inode));
++      gid_t gid = TAGINO_GID(DX_TAG(inode),
++              i_gid_read(inode), i_tag_read(inode));
 +
 +      btrfs_set_inode_uid(leaf, item, uid);
 +      btrfs_set_inode_gid(leaf, item, gid);
 +#ifdef CONFIG_TAGGING_INTERN
-+      btrfs_set_inode_tag(leaf, item, inode->i_tag);
++      btrfs_set_inode_tag(leaf, item, i_tag_read(inode));
 +#endif
        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);
-@@ -7636,11 +7650,13 @@ static const struct inode_operations btr
+@@ -7786,11 +7802,13 @@ static const struct inode_operations btr
        .listxattr      = btrfs_listxattr,
        .removexattr    = btrfs_removexattr,
        .permission     = btrfs_permission,
@@ -1839,9 +1819,9 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/inode.c linux-3.6.10-vs2.3.4.5/fs/bt
        .get_acl        = btrfs_get_acl,
  };
  
-diff -NurpP --minimal linux-3.6.10/fs/btrfs/ioctl.c linux-3.6.10-vs2.3.4.5/fs/btrfs/ioctl.c
---- linux-3.6.10/fs/btrfs/ioctl.c      2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/btrfs/ioctl.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/btrfs/ioctl.c linux-3.7-vs2.3.5.1/fs/btrfs/ioctl.c
+--- linux-3.7/fs/btrfs/ioctl.c 2012-12-11 15:47:31.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/btrfs/ioctl.c       2012-12-11 15:56:32.000000000 +0000
 @@ -74,10 +74,13 @@ static unsigned int btrfs_flags_to_ioctl
  {
        unsigned int iflags = 0;
@@ -1980,7 +1960,7 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/ioctl.c linux-3.6.10-vs2.3.4.5/fs/bt
  static int btrfs_ioctl_getflags(struct file *file, void __user *arg)
  {
        struct btrfs_inode *ip = BTRFS_I(file->f_path.dentry->d_inode);
-@@ -206,21 +284,27 @@ static int btrfs_ioctl_setflags(struct f
+@@ -208,21 +286,27 @@ static int btrfs_ioctl_setflags(struct f
  
        flags = btrfs_mask_flags(inode->i_mode, flags);
        oldflags = btrfs_flags_to_ioctl(ip->flags);
@@ -2013,10 +1993,10 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/ioctl.c linux-3.6.10-vs2.3.4.5/fs/bt
        if (flags & FS_APPEND_FL)
                ip->flags |= BTRFS_INODE_APPEND;
        else
-diff -NurpP --minimal linux-3.6.10/fs/btrfs/super.c linux-3.6.10-vs2.3.4.5/fs/btrfs/super.c
---- linux-3.6.10/fs/btrfs/super.c      2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/btrfs/super.c    2012-10-04 18:47:00.000000000 +0200
-@@ -306,7 +306,7 @@ enum {
+diff -NurpP --minimal linux-3.7/fs/btrfs/super.c linux-3.7-vs2.3.5.1/fs/btrfs/super.c
+--- linux-3.7/fs/btrfs/super.c 2012-12-11 15:47:31.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/btrfs/super.c       2012-12-11 15:56:32.000000000 +0000
+@@ -312,7 +312,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_fatal_errors,
@@ -2025,7 +2005,7 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/super.c linux-3.6.10-vs2.3.4.5/fs/bt
  };
  
  static match_table_t tokens = {
-@@ -346,6 +346,9 @@ static match_table_t tokens = {
+@@ -352,6 +352,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"},
@@ -2035,7 +2015,7 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/super.c linux-3.6.10-vs2.3.4.5/fs/bt
        {Opt_err, NULL},
  };
  
-@@ -596,6 +599,22 @@ int btrfs_parse_options(struct btrfs_roo
+@@ -614,6 +617,22 @@ int btrfs_parse_options(struct btrfs_roo
                                goto out;
                        }
                        break;
@@ -2058,7 +2038,7 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/super.c linux-3.6.10-vs2.3.4.5/fs/bt
                case Opt_err:
                        printk(KERN_INFO "btrfs: unrecognized mount option "
                               "'%s'\n", p);
-@@ -1196,6 +1215,12 @@ static int btrfs_remount(struct super_bl
+@@ -1211,6 +1230,12 @@ static int btrfs_remount(struct super_bl
        btrfs_resize_thread_pool(fs_info,
                fs_info->thread_pool_size, old_thread_pool_size);
  
@@ -2071,9 +2051,9 @@ diff -NurpP --minimal linux-3.6.10/fs/btrfs/super.c linux-3.6.10-vs2.3.4.5/fs/bt
        if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
                return 0;
  
-diff -NurpP --minimal linux-3.6.10/fs/char_dev.c linux-3.6.10-vs2.3.4.5/fs/char_dev.c
---- linux-3.6.10/fs/char_dev.c 2012-03-19 19:47:25.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/char_dev.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/char_dev.c linux-3.7-vs2.3.5.1/fs/char_dev.c
+--- linux-3.7/fs/char_dev.c    2012-12-11 15:47:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/char_dev.c  2012-12-11 15:56:32.000000000 +0000
 @@ -21,6 +21,8 @@
  #include <linux/mutex.h>
  #include <linux/backing-dev.h>
@@ -2106,9 +2086,9 @@ diff -NurpP --minimal linux-3.6.10/fs/char_dev.c linux-3.6.10-vs2.3.4.5/fs/char_
                if (!kobj)
                        return -ENXIO;
                new = container_of(kobj, struct cdev, kobj);
-diff -NurpP --minimal linux-3.6.10/fs/dcache.c linux-3.6.10-vs2.3.4.5/fs/dcache.c
---- linux-3.6.10/fs/dcache.c   2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/dcache.c 2012-12-07 22:49:54.000000000 +0100
+diff -NurpP --minimal linux-3.7/fs/dcache.c linux-3.7-vs2.3.5.1/fs/dcache.c
+--- linux-3.7/fs/dcache.c      2012-12-11 15:47:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/dcache.c    2012-12-11 15:56:32.000000000 +0000
 @@ -37,6 +37,7 @@
  #include <linux/rculist_bl.h>
  #include <linux/prefetch.h>
@@ -2152,7 +2132,7 @@ diff -NurpP --minimal linux-3.6.10/fs/dcache.c linux-3.6.10-vs2.3.4.5/fs/dcache.
        spin_lock_init(&dentry->d_lock);
        seqcount_init(&dentry->d_seq);
        dentry->d_inode = NULL;
-@@ -2012,6 +2020,7 @@ struct dentry *__d_lookup(struct dentry 
+@@ -2012,6 +2020,7 @@ struct dentry *__d_lookup(struct dentry
                }
  
                dentry->d_count++;
@@ -2160,9 +2140,9 @@ diff -NurpP --minimal linux-3.6.10/fs/dcache.c linux-3.6.10-vs2.3.4.5/fs/dcache.
                found = dentry;
                spin_unlock(&dentry->d_lock);
                break;
-diff -NurpP --minimal linux-3.6.10/fs/devpts/inode.c linux-3.6.10-vs2.3.4.5/fs/devpts/inode.c
---- linux-3.6.10/fs/devpts/inode.c     2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/devpts/inode.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/devpts/inode.c linux-3.7-vs2.3.5.1/fs/devpts/inode.c
+--- linux-3.7/fs/devpts/inode.c        2012-10-04 13:27:39.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/devpts/inode.c      2012-12-11 19:18:53.000000000 +0000
 @@ -25,6 +25,7 @@
  #include <linux/parser.h>
  #include <linux/fsnotify.h>
@@ -2180,7 +2160,7 @@ diff -NurpP --minimal linux-3.6.10/fs/devpts/inode.c linux-3.6.10-vs2.3.4.5/fs/d
 +      int ret = -EACCES;
 +
 +      /* devpts is xid tagged */
-+      if (vx_check((xid_t)inode->i_tag, VS_WATCH_P | VS_IDENT))
++      if (vx_check((xid_t)i_tag_read(inode), VS_WATCH_P | VS_IDENT))
 +              ret = generic_permission(inode, mask);
 +      return ret;
 +}
@@ -2203,7 +2183,7 @@ diff -NurpP --minimal linux-3.6.10/fs/devpts/inode.c linux-3.6.10-vs2.3.4.5/fs/d
 +
 +      /* devpts is xid tagged */
 +      if (de && de->d_inode)
-+              xid = (xid_t)de->d_inode->i_tag;
++              xid = (xid_t)i_tag_read(de->d_inode);
 +#ifdef CONFIG_VSERVER_WARN_DEVPTS
 +      else
 +              vxwprintk_task(1, "devpts " VS_Q("%.*s") " without inode.",
@@ -2236,7 +2216,7 @@ diff -NurpP --minimal linux-3.6.10/fs/devpts/inode.c linux-3.6.10-vs2.3.4.5/fs/d
 +      inode->i_fop = &devpts_dir_operations;
        set_nlink(inode, 2);
 +      /* devpts is xid tagged */
-+      inode->i_tag = (tag_t)vx_current_xid();
++      i_tag_write(inode, (tag_t)vx_current_xid());
  
        s->s_root = d_make_root(inode);
        if (s->s_root)
@@ -2245,15 +2225,15 @@ diff -NurpP --minimal linux-3.6.10/fs/devpts/inode.c linux-3.6.10-vs2.3.4.5/fs/d
        inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
        init_special_inode(inode, S_IFCHR|opts->mode, device);
 +      /* devpts is xid tagged */
-+      inode->i_tag = (tag_t)vx_current_xid();
++      i_tag_write(inode, (tag_t)vx_current_xid());
 +      inode->i_op = &devpts_file_inode_operations;
        inode->i_private = tty;
        tty->driver_data = inode;
  
-diff -NurpP --minimal linux-3.6.10/fs/ext2/balloc.c linux-3.6.10-vs2.3.4.5/fs/ext2/balloc.c
---- linux-3.6.10/fs/ext2/balloc.c      2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext2/balloc.c    2012-10-04 18:47:00.000000000 +0200
-@@ -699,7 +699,6 @@ ext2_try_to_allocate(struct super_block 
+diff -NurpP --minimal linux-3.7/fs/ext2/balloc.c linux-3.7-vs2.3.5.1/fs/ext2/balloc.c
+--- linux-3.7/fs/ext2/balloc.c 2012-12-11 15:47:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext2/balloc.c       2012-12-11 15:56:32.000000000 +0000
+@@ -699,7 +699,6 @@ ext2_try_to_allocate(struct super_block
                        start = 0;
                end = EXT2_BLOCKS_PER_GROUP(sb);
        }
@@ -2261,9 +2241,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/balloc.c linux-3.6.10-vs2.3.4.5/fs/ex
        BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb));
  
  repeat:
-diff -NurpP --minimal linux-3.6.10/fs/ext2/ext2.h linux-3.6.10-vs2.3.4.5/fs/ext2/ext2.h
---- linux-3.6.10/fs/ext2/ext2.h        2012-07-22 23:39:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext2/ext2.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext2/ext2.h linux-3.7-vs2.3.5.1/fs/ext2/ext2.h
+--- linux-3.7/fs/ext2/ext2.h   2012-07-22 21:39:39.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext2/ext2.h 2012-12-11 15:56:32.000000000 +0000
 @@ -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) */
@@ -2303,7 +2283,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/ext2.h linux-3.6.10-vs2.3.4.5/fs/ext2
  
  
  #define clear_opt(o, opt)             o &= ~EXT2_MOUNT_##opt
-@@ -757,6 +764,7 @@ extern void ext2_set_inode_flags(struct 
+@@ -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);
@@ -2311,18 +2291,18 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/ext2.h linux-3.6.10-vs2.3.4.5/fs/ext2
  
  /* ioctl.c */
  extern long ext2_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.6.10/fs/ext2/file.c linux-3.6.10-vs2.3.4.5/fs/ext2/file.c
---- linux-3.6.10/fs/ext2/file.c        2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext2/file.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext2/file.c linux-3.7-vs2.3.5.1/fs/ext2/file.c
+--- linux-3.7/fs/ext2/file.c   2011-10-24 16:45:27.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext2/file.c 2012-12-11 15:56:32.000000000 +0000
 @@ -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.6.10/fs/ext2/ialloc.c linux-3.6.10-vs2.3.4.5/fs/ext2/ialloc.c
---- linux-3.6.10/fs/ext2/ialloc.c      2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext2/ialloc.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext2/ialloc.c linux-3.7-vs2.3.5.1/fs/ext2/ialloc.c
+--- linux-3.7/fs/ext2/ialloc.c 2012-10-04 13:27:39.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext2/ialloc.c       2012-12-11 15:56:32.000000000 +0000
 @@ -17,6 +17,7 @@
  #include <linux/backing-dev.h>
  #include <linux/buffer_head.h>
@@ -2339,9 +2319,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/ialloc.c linux-3.6.10-vs2.3.4.5/fs/ex
        } else
                inode_init_owner(inode, dir, mode);
  
-diff -NurpP --minimal linux-3.6.10/fs/ext2/inode.c linux-3.6.10-vs2.3.4.5/fs/ext2/inode.c
---- linux-3.6.10/fs/ext2/inode.c       2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext2/inode.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext2/inode.c linux-3.7-vs2.3.5.1/fs/ext2/inode.c
+--- linux-3.7/fs/ext2/inode.c  2012-10-04 13:27:39.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext2/inode.c        2012-12-11 19:22:08.000000000 +0000
 @@ -31,6 +31,7 @@
  #include <linux/mpage.h>
  #include <linux/fiemap.h>
@@ -2350,7 +2330,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/inode.c linux-3.6.10-vs2.3.4.5/fs/ext
  #include "ext2.h"
  #include "acl.h"
  #include "xip.h"
-@@ -1165,7 +1166,7 @@ static void ext2_truncate_blocks(struct 
+@@ -1165,7 +1166,7 @@ static void ext2_truncate_blocks(struct
                return;
        if (ext2_inode_is_fast_symlink(inode))
                return;
@@ -2436,45 +2416,47 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/inode.c linux-3.6.10-vs2.3.4.5/fs/ext
 -      i_gid_write(inode, i_gid);
 +      i_uid_write(inode, INOTAG_UID(DX_TAG(inode), i_uid, i_gid));
 +      i_gid_write(inode, INOTAG_GID(DX_TAG(inode), i_uid, i_gid));
-+      inode->i_tag = INOTAG_TAG(DX_TAG(inode), i_uid, i_gid,
-+              le16_to_cpu(raw_inode->i_raw_tag));
++      i_tag_write(inode, INOTAG_TAG(DX_TAG(inode), i_uid, i_gid,
++              le16_to_cpu(raw_inode->i_raw_tag)));
        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);
-@@ -1420,8 +1448,8 @@ static int __ext2_write_inode(struct ino
+@@ -1420,8 +1448,10 @@ static int __ext2_write_inode(struct ino
        struct ext2_inode_info *ei = EXT2_I(inode);
        struct super_block *sb = inode->i_sb;
        ino_t ino = inode->i_ino;
 -      uid_t uid = i_uid_read(inode);
 -      gid_t gid = i_gid_read(inode);
-+      uid_t uid = TAGINO_UID(DX_TAG(inode), i_uid_read(inode), inode->i_tag);
-+      gid_t gid = TAGINO_GID(DX_TAG(inode), i_gid_read(inode), inode->i_tag);
++      uid_t uid = TAGINO_UID(DX_TAG(inode),
++              i_uid_read(inode), i_tag_read(inode));
++      gid_t gid = TAGINO_GID(DX_TAG(inode),
++              i_gid_read(inode), i_tag_read(inode));
        struct buffer_head * bh;
        struct ext2_inode * raw_inode = ext2_get_inode(sb, ino, &bh);
        int n;
-@@ -1457,6 +1485,9 @@ static int __ext2_write_inode(struct ino
+@@ -1457,6 +1487,9 @@ static int __ext2_write_inode(struct ino
                raw_inode->i_uid_high = 0;
                raw_inode->i_gid_high = 0;
        }
 +#ifdef CONFIG_TAGGING_INTERN
-+      raw_inode->i_raw_tag = cpu_to_le16(inode->i_tag);
++      raw_inode->i_raw_tag = cpu_to_le16(i_tag_read(inode));
 +#endif
        raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
        raw_inode->i_size = cpu_to_le32(inode->i_size);
        raw_inode->i_atime = cpu_to_le32(inode->i_atime.tv_sec);
-@@ -1537,7 +1568,8 @@ int ext2_setattr(struct dentry *dentry, 
+@@ -1537,7 +1570,8 @@ int ext2_setattr(struct dentry *dentry,
        if (is_quota_modification(inode, iattr))
                dquot_initialize(inode);
        if ((iattr->ia_valid & ATTR_UID && !uid_eq(iattr->ia_uid, inode->i_uid)) ||
 -          (iattr->ia_valid & ATTR_GID && !gid_eq(iattr->ia_gid, inode->i_gid))) {
 +          (iattr->ia_valid & ATTR_GID && !gid_eq(iattr->ia_gid, inode->i_gid)) ||
-+          (iattr->ia_valid & ATTR_TAG && iattr->ia_tag != inode->i_tag)) {
++          (iattr->ia_valid & ATTR_TAG && !tag_eq(iattr->ia_tag, inode->i_tag))) {
                error = dquot_transfer(inode, iattr);
                if (error)
                        return error;
-diff -NurpP --minimal linux-3.6.10/fs/ext2/ioctl.c linux-3.6.10-vs2.3.4.5/fs/ext2/ioctl.c
---- linux-3.6.10/fs/ext2/ioctl.c       2012-03-19 19:47:25.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/ext2/ioctl.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext2/ioctl.c linux-3.7-vs2.3.5.1/fs/ext2/ioctl.c
+--- linux-3.7/fs/ext2/ioctl.c  2012-03-19 18:47:25.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext2/ioctl.c        2012-12-11 15:56:32.000000000 +0000
 @@ -17,6 +17,16 @@
  #include <asm/uaccess.h>
  
@@ -2524,9 +2506,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/ioctl.c linux-3.6.10-vs2.3.4.5/fs/ext
                flags |= oldflags & ~EXT2_FL_USER_MODIFIABLE;
                ei->i_flags = flags;
  
-diff -NurpP --minimal linux-3.6.10/fs/ext2/namei.c linux-3.6.10-vs2.3.4.5/fs/ext2/namei.c
---- linux-3.6.10/fs/ext2/namei.c       2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext2/namei.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext2/namei.c linux-3.7-vs2.3.5.1/fs/ext2/namei.c
+--- linux-3.7/fs/ext2/namei.c  2012-10-04 13:27:39.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext2/namei.c        2012-12-11 15:56:32.000000000 +0000
 @@ -32,6 +32,7 @@
  
  #include <linux/pagemap.h>
@@ -2551,10 +2533,10 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/namei.c linux-3.6.10-vs2.3.4.5/fs/ext
        .get_acl        = ext2_get_acl,
  };
  
-diff -NurpP --minimal linux-3.6.10/fs/ext2/super.c linux-3.6.10-vs2.3.4.5/fs/ext2/super.c
---- linux-3.6.10/fs/ext2/super.c       2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext2/super.c     2012-10-04 18:47:00.000000000 +0200
-@@ -390,7 +390,8 @@ enum {
+diff -NurpP --minimal linux-3.7/fs/ext2/super.c linux-3.7-vs2.3.5.1/fs/ext2/super.c
+--- linux-3.7/fs/ext2/super.c  2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext2/super.c        2012-12-11 15:56:32.000000000 +0000
+@@ -395,7 +395,8 @@ enum {
        Opt_err_ro, Opt_nouid32, Opt_nocheck, Opt_debug,
        Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr,
        Opt_acl, Opt_noacl, Opt_xip, Opt_ignore, Opt_err, Opt_quota,
@@ -2564,7 +2546,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/super.c linux-3.6.10-vs2.3.4.5/fs/ext
  };
  
  static const match_table_t tokens = {
-@@ -418,6 +419,9 @@ static const match_table_t tokens = {
+@@ -423,6 +424,9 @@ static const match_table_t tokens = {
        {Opt_acl, "acl"},
        {Opt_noacl, "noacl"},
        {Opt_xip, "xip"},
@@ -2574,7 +2556,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/super.c linux-3.6.10-vs2.3.4.5/fs/ext
        {Opt_grpquota, "grpquota"},
        {Opt_ignore, "noquota"},
        {Opt_quota, "quota"},
-@@ -501,6 +505,20 @@ static int parse_options(char *options, 
+@@ -506,6 +510,20 @@ static int parse_options(char *options,
                case Opt_nouid32:
                        set_opt (sbi->s_mount_opt, NO_UID32);
                        break;
@@ -2595,7 +2577,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/super.c linux-3.6.10-vs2.3.4.5/fs/ext
                case Opt_nocheck:
                        clear_opt (sbi->s_mount_opt, CHECK);
                        break;
-@@ -859,6 +877,8 @@ static int ext2_fill_super(struct super_
+@@ -864,6 +882,8 @@ static int ext2_fill_super(struct super_
        if (!parse_options((char *) data, sb))
                goto failed_mount;
  
@@ -2604,10 +2586,11 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/super.c linux-3.6.10-vs2.3.4.5/fs/ext
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                ((EXT2_SB(sb)->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ?
                 MS_POSIXACL : 0);
-@@ -1265,6 +1285,14 @@ static int ext2_remount (struct super_bl
+@@ -1269,6 +1289,14 @@ static int ext2_remount (struct super_bl
+               err = -EINVAL;
                goto restore_opts;
        }
++
 +      if ((sbi->s_mount_opt & EXT2_MOUNT_TAGGED) &&
 +              !(sb->s_flags & MS_TAGGED)) {
 +              printk("EXT2-fs: %s: tagging not permitted on remount.\n",
@@ -2615,13 +2598,12 @@ diff -NurpP --minimal linux-3.6.10/fs/ext2/super.c linux-3.6.10-vs2.3.4.5/fs/ext
 +              err = -EINVAL;
 +              goto restore_opts;
 +      }
-+
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                ((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
-diff -NurpP --minimal linux-3.6.10/fs/ext3/ext3.h linux-3.6.10-vs2.3.4.5/fs/ext3/ext3.h
---- linux-3.6.10/fs/ext3/ext3.h        2012-07-22 23:39:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext3/ext3.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext3/ext3.h linux-3.7-vs2.3.5.1/fs/ext3/ext3.h
+--- linux-3.7/fs/ext3/ext3.h   2012-07-22 21:39:39.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext3/ext3.h 2012-12-11 15:56:32.000000000 +0000
 @@ -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) */
@@ -2665,7 +2647,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/ext3.h linux-3.6.10-vs2.3.4.5/fs/ext3
  
  /* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */
  #ifndef _LINUX_EXT2_FS_H
-@@ -1061,6 +1068,7 @@ extern void ext3_get_inode_flags(struct 
+@@ -1061,6 +1068,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);
@@ -2673,9 +2655,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/ext3.h linux-3.6.10-vs2.3.4.5/fs/ext3
  
  /* ioctl.c */
  extern long ext3_ioctl(struct file *, unsigned int, unsigned long);
-diff -NurpP --minimal linux-3.6.10/fs/ext3/file.c linux-3.6.10-vs2.3.4.5/fs/ext3/file.c
---- linux-3.6.10/fs/ext3/file.c        2012-05-21 18:07:20.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext3/file.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext3/file.c linux-3.7-vs2.3.5.1/fs/ext3/file.c
+--- linux-3.7/fs/ext3/file.c   2012-05-21 16:07:20.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext3/file.c 2012-12-11 15:56:32.000000000 +0000
 @@ -76,5 +76,6 @@ const struct inode_operations ext3_file_
  #endif
        .get_acl        = ext3_get_acl,
@@ -2683,9 +2665,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/file.c linux-3.6.10-vs2.3.4.5/fs/ext3
 +      .sync_flags     = ext3_sync_flags,
  };
  
-diff -NurpP --minimal linux-3.6.10/fs/ext3/ialloc.c linux-3.6.10-vs2.3.4.5/fs/ext3/ialloc.c
---- linux-3.6.10/fs/ext3/ialloc.c      2012-07-22 23:39:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext3/ialloc.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext3/ialloc.c linux-3.7-vs2.3.5.1/fs/ext3/ialloc.c
+--- linux-3.7/fs/ext3/ialloc.c 2012-07-22 21:39:39.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext3/ialloc.c       2012-12-11 15:56:32.000000000 +0000
 @@ -14,6 +14,7 @@
  
  #include <linux/quotaops.h>
@@ -2702,9 +2684,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/ialloc.c linux-3.6.10-vs2.3.4.5/fs/ex
        } else
                inode_init_owner(inode, dir, mode);
  
-diff -NurpP --minimal linux-3.6.10/fs/ext3/inode.c linux-3.6.10-vs2.3.4.5/fs/ext3/inode.c
---- linux-3.6.10/fs/ext3/inode.c       2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext3/inode.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext3/inode.c linux-3.7-vs2.3.5.1/fs/ext3/inode.c
+--- linux-3.7/fs/ext3/inode.c  2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext3/inode.c        2012-12-11 19:24:12.000000000 +0000
 @@ -27,6 +27,8 @@
  #include <linux/writeback.h>
  #include <linux/mpage.h>
@@ -2790,43 +2772,45 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/inode.c linux-3.6.10-vs2.3.4.5/fs/ext
 -      i_gid_write(inode, i_gid);
 +      i_uid_write(inode, INOTAG_UID(DX_TAG(inode), i_uid, i_gid));
 +      i_gid_write(inode, INOTAG_GID(DX_TAG(inode), i_uid, i_gid));
-+      inode->i_tag = INOTAG_TAG(DX_TAG(inode), i_uid, i_gid,
-+              le16_to_cpu(raw_inode->i_raw_tag));
++      i_tag_write(inode, INOTAG_TAG(DX_TAG(inode), i_uid, i_gid,
++              le16_to_cpu(raw_inode->i_raw_tag)));
        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);
-@@ -3088,8 +3116,8 @@ again:
+@@ -3088,8 +3116,10 @@ again:
  
        ext3_get_inode_flags(ei);
        raw_inode->i_mode = cpu_to_le16(inode->i_mode);
 -      i_uid = i_uid_read(inode);
 -      i_gid = i_gid_read(inode);
-+      i_uid = TAGINO_UID(DX_TAG(inode), i_uid_read(inode), inode->i_tag);
-+      i_gid = TAGINO_GID(DX_TAG(inode), i_gid_read(inode), inode->i_tag);
++      i_uid = TAGINO_UID(DX_TAG(inode),
++              i_uid_read(inode), i_tag_read(inode));
++      i_gid = TAGINO_GID(DX_TAG(inode),
++              i_gid_read(inode), i_tag_read(inode));
        if(!(test_opt(inode->i_sb, NO_UID32))) {
                raw_inode->i_uid_low = cpu_to_le16(low_16_bits(i_uid));
                raw_inode->i_gid_low = cpu_to_le16(low_16_bits(i_gid));
-@@ -3114,6 +3142,9 @@ again:
+@@ -3114,6 +3144,9 @@ again:
                raw_inode->i_uid_high = 0;
                raw_inode->i_gid_high = 0;
        }
 +#ifdef CONFIG_TAGGING_INTERN
-+      raw_inode->i_raw_tag = cpu_to_le16(inode->i_tag);
++      raw_inode->i_raw_tag = cpu_to_le16(i_tag_read(inode));
 +#endif
        raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
        disksize = cpu_to_le32(ei->i_disksize);
        if (disksize != raw_inode->i_size) {
-@@ -3282,7 +3313,8 @@ int ext3_setattr(struct dentry *dentry, 
+@@ -3282,7 +3315,8 @@ int ext3_setattr(struct dentry *dentry,
        if (is_quota_modification(inode, attr))
                dquot_initialize(inode);
        if ((ia_valid & ATTR_UID && !uid_eq(attr->ia_uid, inode->i_uid)) ||
 -          (ia_valid & ATTR_GID && !gid_eq(attr->ia_gid, inode->i_gid))) {
 +          (ia_valid & ATTR_GID && !gid_eq(attr->ia_gid, inode->i_gid)) ||
-+          (ia_valid & ATTR_TAG && attr->ia_tag != inode->i_tag)) {
++          (ia_valid & ATTR_TAG && !tag_eq(attr->ia_tag, inode->i_tag))) {
                handle_t *handle;
  
                /* (user+group)*(old+new) structure, inode write (sb,
-@@ -3304,6 +3336,8 @@ int ext3_setattr(struct dentry *dentry, 
+@@ -3304,6 +3338,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;
@@ -2835,9 +2819,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/inode.c linux-3.6.10-vs2.3.4.5/fs/ext
                error = ext3_mark_inode_dirty(handle, inode);
                ext3_journal_stop(handle);
        }
-diff -NurpP --minimal linux-3.6.10/fs/ext3/ioctl.c linux-3.6.10-vs2.3.4.5/fs/ext3/ioctl.c
---- linux-3.6.10/fs/ext3/ioctl.c       2012-05-21 18:07:20.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext3/ioctl.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext3/ioctl.c linux-3.7-vs2.3.5.1/fs/ext3/ioctl.c
+--- linux-3.7/fs/ext3/ioctl.c  2012-05-21 16:07:20.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext3/ioctl.c        2012-12-11 15:56:32.000000000 +0000
 @@ -12,6 +12,34 @@
  #include <asm/uaccess.h>
  #include "ext3.h"
@@ -2905,9 +2889,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/ioctl.c linux-3.6.10-vs2.3.4.5/fs/ext
                flags |= oldflags & ~EXT3_FL_USER_MODIFIABLE;
                ei->i_flags = flags;
  
-diff -NurpP --minimal linux-3.6.10/fs/ext3/namei.c linux-3.6.10-vs2.3.4.5/fs/ext3/namei.c
---- linux-3.6.10/fs/ext3/namei.c       2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext3/namei.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext3/namei.c linux-3.7-vs2.3.5.1/fs/ext3/namei.c
+--- linux-3.7/fs/ext3/namei.c  2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext3/namei.c        2012-12-11 15:56:32.000000000 +0000
 @@ -25,6 +25,8 @@
   */
  
@@ -2917,7 +2901,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/namei.c linux-3.6.10-vs2.3.4.5/fs/ext
  #include "ext3.h"
  #include "namei.h"
  #include "xattr.h"
-@@ -915,6 +917,7 @@ restart:
+@@ -919,6 +921,7 @@ restart:
                                        submit_bh(READ | REQ_META | REQ_PRIO,
                                                  bh);
                                }
@@ -2925,7 +2909,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/namei.c linux-3.6.10-vs2.3.4.5/fs/ext
                        }
                }
                if ((bh = bh_use[ra_ptr++]) == NULL)
-@@ -2526,6 +2529,7 @@ const struct inode_operations ext3_dir_i
+@@ -2528,6 +2531,7 @@ const struct inode_operations ext3_dir_i
        .listxattr      = ext3_listxattr,
        .removexattr    = generic_removexattr,
  #endif
@@ -2933,10 +2917,10 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/namei.c linux-3.6.10-vs2.3.4.5/fs/ext
        .get_acl        = ext3_get_acl,
  };
  
-diff -NurpP --minimal linux-3.6.10/fs/ext3/super.c linux-3.6.10-vs2.3.4.5/fs/ext3/super.c
---- linux-3.6.10/fs/ext3/super.c       2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext3/super.c     2012-10-04 18:47:00.000000000 +0200
-@@ -811,7 +811,8 @@ enum {
+diff -NurpP --minimal linux-3.7/fs/ext3/super.c linux-3.7-vs2.3.5.1/fs/ext3/super.c
+--- linux-3.7/fs/ext3/super.c  2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext3/super.c        2012-12-11 15:56:32.000000000 +0000
+@@ -816,7 +816,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,
@@ -2946,7 +2930,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/super.c linux-3.6.10-vs2.3.4.5/fs/ext
  };
  
  static const match_table_t tokens = {
-@@ -868,6 +869,9 @@ static const match_table_t tokens = {
+@@ -873,6 +874,9 @@ static const match_table_t tokens = {
        {Opt_barrier, "barrier"},
        {Opt_nobarrier, "nobarrier"},
        {Opt_resize, "resize"},
@@ -2956,7 +2940,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/super.c linux-3.6.10-vs2.3.4.5/fs/ext
        {Opt_err, NULL},
  };
  
-@@ -1033,6 +1037,20 @@ static int parse_options (char *options,
+@@ -1038,6 +1042,20 @@ static int parse_options (char *options,
                case Opt_nouid32:
                        set_opt (sbi->s_mount_opt, NO_UID32);
                        break;
@@ -2977,7 +2961,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/super.c linux-3.6.10-vs2.3.4.5/fs/ext
                case Opt_nocheck:
                        clear_opt (sbi->s_mount_opt, CHECK);
                        break;
-@@ -1731,6 +1749,9 @@ static int ext3_fill_super (struct super
+@@ -1738,6 +1756,9 @@ static int ext3_fill_super (struct super
                            NULL, 0))
                goto failed_mount;
  
@@ -2987,7 +2971,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/super.c linux-3.6.10-vs2.3.4.5/fs/ext
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-@@ -2618,6 +2639,14 @@ static int ext3_remount (struct super_bl
+@@ -2622,6 +2643,14 @@ static int ext3_remount (struct super_bl
        if (test_opt(sb, ABORT))
                ext3_abort(sb, __func__, "Abort forced by user");
  
@@ -3002,10 +2986,10 @@ diff -NurpP --minimal linux-3.6.10/fs/ext3/super.c linux-3.6.10-vs2.3.4.5/fs/ext
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-3.6.10/fs/ext4/ext4.h linux-3.6.10-vs2.3.4.5/fs/ext4/ext4.h
---- linux-3.6.10/fs/ext4/ext4.h        2012-12-11 12:36:57.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/ext4/ext4.h      2012-12-08 01:36:33.000000000 +0100
-@@ -393,8 +393,12 @@ struct flex_groups {
+diff -NurpP --minimal linux-3.7/fs/ext4/ext4.h linux-3.7-vs2.3.5.1/fs/ext4/ext4.h
+--- linux-3.7/fs/ext4/ext4.h   2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext4/ext4.h 2012-12-11 15:56:32.000000000 +0000
+@@ -392,8 +392,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 */
@@ -3018,7 +3002,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/ext4.h linux-3.6.10-vs2.3.4.5/fs/ext4
  #define EXT4_FL_USER_VISIBLE          0x004BDFFF /* User visible flags */
  #define EXT4_FL_USER_MODIFIABLE               0x004B80FF /* User modifiable flags */
  
-@@ -666,7 +670,7 @@ struct ext4_inode {
+@@ -665,7 +669,7 @@ struct ext4_inode {
                        __le16  l_i_uid_high;   /* these 2 fields */
                        __le16  l_i_gid_high;   /* were reserved2[0] */
                        __le16  l_i_checksum_lo;/* crc32c(uuid+inum+inode) LE */
@@ -3027,7 +3011,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/ext4.h linux-3.6.10-vs2.3.4.5/fs/ext4
                } linux2;
                struct {
                        __le16  h_i_reserved1;  /* Obsoleted fragment number/size which are removed in ext4 */
-@@ -784,6 +788,7 @@ do {                                                                              \
+@@ -783,6 +787,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
@@ -3035,7 +3019,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/ext4.h linux-3.6.10-vs2.3.4.5/fs/ext4
  #define i_checksum_lo osd2.linux2.l_i_checksum_lo
  
  #elif defined(__GNU__)
-@@ -964,6 +969,7 @@ struct ext4_inode_info {
+@@ -961,6 +966,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 */
@@ -3043,7 +3027,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/ext4.h linux-3.6.10-vs2.3.4.5/fs/ext4
  #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 */
-@@ -2392,6 +2398,7 @@ extern int ext4_map_blocks(handle_t *han
+@@ -2412,6 +2418,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);
@@ -3051,9 +3035,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/ext4.h linux-3.6.10-vs2.3.4.5/fs/ext4
  /* 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.6.10/fs/ext4/file.c linux-3.6.10-vs2.3.4.5/fs/ext4/file.c
---- linux-3.6.10/fs/ext4/file.c        2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext4/file.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext4/file.c linux-3.7-vs2.3.5.1/fs/ext4/file.c
+--- linux-3.7/fs/ext4/file.c   2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext4/file.c 2012-12-11 15:56:32.000000000 +0000
 @@ -334,5 +334,6 @@ const struct inode_operations ext4_file_
  #endif
        .get_acl        = ext4_get_acl,
@@ -3061,9 +3045,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/file.c linux-3.6.10-vs2.3.4.5/fs/ext4
 +      .sync_flags     = ext4_sync_flags,
  };
  
-diff -NurpP --minimal linux-3.6.10/fs/ext4/ialloc.c linux-3.6.10-vs2.3.4.5/fs/ext4/ialloc.c
---- linux-3.6.10/fs/ext4/ialloc.c      2012-12-11 12:36:57.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/ext4/ialloc.c    2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/fs/ext4/ialloc.c linux-3.7-vs2.3.5.1/fs/ext4/ialloc.c
+--- linux-3.7/fs/ext4/ialloc.c 2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext4/ialloc.c       2012-12-11 15:56:32.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <linux/random.h>
  #include <linux/bitops.h>
@@ -3072,7 +3056,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/ialloc.c linux-3.6.10-vs2.3.4.5/fs/ex
  #include <asm/byteorder.h>
  
  #include "ext4.h"
-@@ -839,6 +840,7 @@ got:
+@@ -848,6 +849,7 @@ got:
                inode->i_mode = mode;
                inode->i_uid = current_fsuid();
                inode->i_gid = dir->i_gid;
@@ -3080,9 +3064,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/ialloc.c linux-3.6.10-vs2.3.4.5/fs/ex
        } else
                inode_init_owner(inode, dir, mode);
  
-diff -NurpP --minimal linux-3.6.10/fs/ext4/inode.c linux-3.6.10-vs2.3.4.5/fs/ext4/inode.c
---- linux-3.6.10/fs/ext4/inode.c       2012-12-11 12:36:57.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/ext4/inode.c     2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/fs/ext4/inode.c linux-3.7-vs2.3.5.1/fs/ext4/inode.c
+--- linux-3.7/fs/ext4/inode.c  2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext4/inode.c        2012-12-11 19:25:58.000000000 +0000
 @@ -37,6 +37,7 @@
  #include <linux/printk.h>
  #include <linux/slab.h>
@@ -3091,7 +3075,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/inode.c linux-3.6.10-vs2.3.4.5/fs/ext
  
  #include "ext4_jbd2.h"
  #include "xattr.h"
-@@ -3715,41 +3716,64 @@ void ext4_set_inode_flags(struct inode *
+@@ -3695,41 +3696,64 @@ void ext4_set_inode_flags(struct inode *
  {
        unsigned int flags = EXT4_I(inode)->i_flags;
  
@@ -3163,7 +3147,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/inode.c linux-3.6.10-vs2.3.4.5/fs/ext
        } while (cmpxchg(&ei->i_flags, old_fl, new_fl) != old_fl);
  }
  
-@@ -3841,8 +3865,10 @@ struct inode *ext4_iget(struct super_blo
+@@ -3821,8 +3845,10 @@ struct inode *ext4_iget(struct super_blo
                i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
                i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
        }
@@ -3171,43 +3155,45 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/inode.c linux-3.6.10-vs2.3.4.5/fs/ext
 -      i_gid_write(inode, i_gid);
 +      i_uid_write(inode, INOTAG_UID(DX_TAG(inode), i_uid, i_gid));
 +      i_gid_write(inode, INOTAG_GID(DX_TAG(inode), i_uid, i_gid));
-+      inode->i_tag = INOTAG_TAG(DX_TAG(inode), i_uid, i_gid,
-+              le16_to_cpu(raw_inode->i_raw_tag));
++      i_tag_write(inode, INOTAG_TAG(DX_TAG(inode), i_uid, i_gid,
++              le16_to_cpu(raw_inode->i_raw_tag)));
        set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
  
        ext4_clear_state_flags(ei);     /* Only relevant on 32-bit archs */
-@@ -4066,8 +4092,8 @@ static int ext4_do_update_inode(handle_t
+@@ -4046,8 +4072,10 @@ static int ext4_do_update_inode(handle_t
  
        ext4_get_inode_flags(ei);
        raw_inode->i_mode = cpu_to_le16(inode->i_mode);
 -      i_uid = i_uid_read(inode);
 -      i_gid = i_gid_read(inode);
-+      i_uid = TAGINO_UID(DX_TAG(inode), i_uid_read(inode), inode->i_tag);
-+      i_gid = TAGINO_GID(DX_TAG(inode), i_gid_read(inode), inode->i_tag);
++      i_uid = TAGINO_UID(DX_TAG(inode),
++              i_uid_read(inode), i_tag_read(inode));
++      i_gid = TAGINO_GID(DX_TAG(inode),
++              i_gid_read(inode), i_tag_read(inode));
        if (!(test_opt(inode->i_sb, NO_UID32))) {
                raw_inode->i_uid_low = cpu_to_le16(low_16_bits(i_uid));
                raw_inode->i_gid_low = cpu_to_le16(low_16_bits(i_gid));
-@@ -4090,6 +4116,9 @@ static int ext4_do_update_inode(handle_t
+@@ -4070,6 +4098,9 @@ static int ext4_do_update_inode(handle_t
                raw_inode->i_uid_high = 0;
                raw_inode->i_gid_high = 0;
        }
 +#ifdef CONFIG_TAGGING_INTERN
-+      raw_inode->i_raw_tag = cpu_to_le16(inode->i_tag);
++      raw_inode->i_raw_tag = cpu_to_le16(i_tag_read(inode));
 +#endif
        raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
  
        EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode);
-@@ -4278,7 +4307,8 @@ int ext4_setattr(struct dentry *dentry, 
+@@ -4258,7 +4289,8 @@ int ext4_setattr(struct dentry *dentry,
        if (is_quota_modification(inode, attr))
                dquot_initialize(inode);
        if ((ia_valid & ATTR_UID && !uid_eq(attr->ia_uid, inode->i_uid)) ||
 -          (ia_valid & ATTR_GID && !gid_eq(attr->ia_gid, inode->i_gid))) {
 +          (ia_valid & ATTR_GID && !gid_eq(attr->ia_gid, inode->i_gid)) ||
-+          (ia_valid & ATTR_TAG && attr->ia_tag != inode->i_tag)) {
++          (ia_valid & ATTR_TAG && !tag_eq(attr->ia_tag, inode->i_tag))) {
                handle_t *handle;
  
                /* (user+group)*(old+new) structure, inode write (sb,
-@@ -4300,6 +4330,8 @@ int ext4_setattr(struct dentry *dentry, 
+@@ -4280,6 +4312,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;
@@ -3216,9 +3202,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/inode.c linux-3.6.10-vs2.3.4.5/fs/ext
                error = ext4_mark_inode_dirty(handle, inode);
                ext4_journal_stop(handle);
        }
-diff -NurpP --minimal linux-3.6.10/fs/ext4/ioctl.c linux-3.6.10-vs2.3.4.5/fs/ext4/ioctl.c
---- linux-3.6.10/fs/ext4/ioctl.c       2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ext4/ioctl.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ext4/ioctl.c linux-3.7-vs2.3.5.1/fs/ext4/ioctl.c
+--- linux-3.7/fs/ext4/ioctl.c  2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext4/ioctl.c        2012-12-11 15:56:32.000000000 +0000
 @@ -14,12 +14,40 @@
  #include <linux/compat.h>
  #include <linux/mount.h>
@@ -3283,9 +3269,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/ioctl.c linux-3.6.10-vs2.3.4.5/fs/ext
                        if (!capable(CAP_LINUX_IMMUTABLE))
                                goto flags_out;
                }
-diff -NurpP --minimal linux-3.6.10/fs/ext4/namei.c linux-3.6.10-vs2.3.4.5/fs/ext4/namei.c
---- linux-3.6.10/fs/ext4/namei.c       2012-12-11 12:36:57.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/ext4/namei.c     2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/fs/ext4/namei.c linux-3.7-vs2.3.5.1/fs/ext4/namei.c
+--- linux-3.7/fs/ext4/namei.c  2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext4/namei.c        2012-12-11 15:56:32.000000000 +0000
 @@ -34,6 +34,7 @@
  #include <linux/quotaops.h>
  #include <linux/buffer_head.h>
@@ -3294,7 +3280,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/namei.c linux-3.6.10-vs2.3.4.5/fs/ext
  #include "ext4.h"
  #include "ext4_jbd2.h"
  
-@@ -1199,6 +1200,7 @@ restart:
+@@ -1232,6 +1233,7 @@ restart:
                                        ll_rw_block(READ | REQ_META | REQ_PRIO,
                                                    1, &bh);
                        }
@@ -3302,7 +3288,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/namei.c linux-3.6.10-vs2.3.4.5/fs/ext
                }
                if ((bh = bh_use[ra_ptr++]) == NULL)
                        goto next;
-@@ -2982,6 +2984,7 @@ const struct inode_operations ext4_dir_i
+@@ -3051,6 +3053,7 @@ const struct inode_operations ext4_dir_i
  #endif
        .get_acl        = ext4_get_acl,
        .fiemap         = ext4_fiemap,
@@ -3310,18 +3296,19 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/namei.c linux-3.6.10-vs2.3.4.5/fs/ext
  };
  
  const struct inode_operations ext4_special_inode_operations = {
-diff -NurpP --minimal linux-3.6.10/fs/ext4/super.c linux-3.6.10-vs2.3.4.5/fs/ext4/super.c
---- linux-3.6.10/fs/ext4/super.c       2012-12-11 12:36:57.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/ext4/super.c     2012-12-08 01:36:33.000000000 +0100
-@@ -1220,6 +1220,7 @@ enum {
+diff -NurpP --minimal linux-3.7/fs/ext4/super.c linux-3.7-vs2.3.5.1/fs/ext4/super.c
+--- linux-3.7/fs/ext4/super.c  2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ext4/super.c        2012-12-11 19:16:16.000000000 +0000
+@@ -1222,7 +1222,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,
-+      Opt_tag, Opt_notag, Opt_tagid
+-      Opt_max_dir_size_kb,
++      Opt_max_dir_size_kb, Opt_tag, Opt_notag, Opt_tagid
  };
  
  static const match_table_t tokens = {
-@@ -1298,6 +1299,9 @@ static const match_table_t tokens = {
+@@ -1302,6 +1302,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 */
@@ -3331,7 +3318,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/super.c linux-3.6.10-vs2.3.4.5/fs/ext
        {Opt_err, NULL},
  };
  
-@@ -1544,6 +1548,20 @@ static int handle_mount_opt(struct super
+@@ -1549,6 +1552,20 @@ static int handle_mount_opt(struct super
                        return -1;
                *journal_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, arg);
                return 1;
@@ -3352,7 +3339,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/super.c linux-3.6.10-vs2.3.4.5/fs/ext
        }
  
        for (m = ext4_mount_opts; m->token != Opt_err; m++) {
-@@ -3418,6 +3436,9 @@ static int ext4_fill_super(struct super_
+@@ -3455,6 +3472,9 @@ static int ext4_fill_super(struct super_
                }
        }
  
@@ -3362,7 +3349,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/super.c linux-3.6.10-vs2.3.4.5/fs/ext
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-@@ -4583,6 +4604,14 @@ static int ext4_remount(struct super_blo
+@@ -4618,6 +4638,14 @@ static int ext4_remount(struct super_blo
        if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)
                ext4_abort(sb, "Abort forced by user");
  
@@ -3377,9 +3364,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ext4/super.c linux-3.6.10-vs2.3.4.5/fs/ext
        sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
                (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
  
-diff -NurpP --minimal linux-3.6.10/fs/fcntl.c linux-3.6.10-vs2.3.4.5/fs/fcntl.c
---- linux-3.6.10/fs/fcntl.c    2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/fcntl.c  2012-10-04 19:05:02.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/fcntl.c linux-3.7-vs2.3.5.1/fs/fcntl.c
+--- linux-3.7/fs/fcntl.c       2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/fcntl.c     2012-12-11 15:56:32.000000000 +0000
 @@ -21,6 +21,7 @@
  #include <linux/rcupdate.h>
  #include <linux/pid_namespace.h>
@@ -3388,28 +3375,19 @@ diff -NurpP --minimal linux-3.6.10/fs/fcntl.c linux-3.6.10-vs2.3.4.5/fs/fcntl.c
  
  #include <asm/poll.h>
  #include <asm/siginfo.h>
-@@ -104,6 +105,8 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldf
+@@ -378,6 +379,8 @@ SYSCALL_DEFINE3(fcntl64, unsigned int, f
  
-       if (tofree)
-               filp_close(tofree, files);
-+      else
-+              vx_openfd_inc(newfd);   /* fd was unused */
-       return newfd;
-@@ -477,6 +480,8 @@ SYSCALL_DEFINE3(fcntl, unsigned int, fd,
-       filp = fget_raw_light(fd, &fput_needed);
-       if (!filp)
+       if (!f.file)
                goto out;
 +      if (!vx_files_avail(1))
 +              goto out;
  
-       if (unlikely(filp->f_mode & FMODE_PATH)) {
+       if (unlikely(f.file->f_mode & FMODE_PATH)) {
                if (!check_fcntl_cmd(cmd))
-diff -NurpP --minimal linux-3.6.10/fs/file.c linux-3.6.10-vs2.3.4.5/fs/file.c
---- linux-3.6.10/fs/file.c     2012-05-21 18:07:20.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/file.c   2012-10-04 18:47:00.000000000 +0200
-@@ -21,6 +21,7 @@
+diff -NurpP --minimal linux-3.7/fs/file.c linux-3.7-vs2.3.5.1/fs/file.c
+--- linux-3.7/fs/file.c        2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/file.c      2012-12-11 21:51:51.000000000 +0000
+@@ -22,6 +22,7 @@
  #include <linux/spinlock.h>
  #include <linux/rcupdate.h>
  #include <linux/workqueue.h>
@@ -3417,7 +3395,7 @@ diff -NurpP --minimal linux-3.6.10/fs/file.c linux-3.6.10-vs2.3.4.5/fs/file.c
  
  struct fdtable_defer {
        spinlock_t lock;
-@@ -358,6 +359,8 @@ struct files_struct *dup_fd(struct files
+@@ -364,6 +365,8 @@ struct files_struct *dup_fd(struct files
                struct file *f = *old_fds++;
                if (f) {
                        get_file(f);
@@ -3426,7 +3404,19 @@ diff -NurpP --minimal linux-3.6.10/fs/file.c linux-3.6.10-vs2.3.4.5/fs/file.c
                } else {
                        /*
                         * The fd may be claimed in the fd bitmap but not yet
-@@ -464,6 +467,7 @@ repeat:
+@@ -429,9 +432,11 @@ static void close_files(struct files_str
+                                       filp_close(file, files);
+                                       cond_resched();
+                               }
++                              vx_openfd_dec(i);
+                       }
+                       i++;
+                       set >>= 1;
++                      cond_resched();
+               }
+       }
+ }
+@@ -573,6 +578,7 @@ repeat:
        else
                __clear_close_on_exec(fd, fdt);
        error = fd;
@@ -3434,9 +3424,26 @@ diff -NurpP --minimal linux-3.6.10/fs/file.c linux-3.6.10-vs2.3.4.5/fs/file.c
  #if 1
        /* Sanity check */
        if (rcu_dereference_raw(fdt->fd[fd]) != NULL) {
-diff -NurpP --minimal linux-3.6.10/fs/file_table.c linux-3.6.10-vs2.3.4.5/fs/file_table.c
---- linux-3.6.10/fs/file_table.c       2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/file_table.c     2012-11-17 14:36:19.000000000 +0100
+@@ -603,6 +609,7 @@ static void __put_unused_fd(struct files
+       __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)
+@@ -882,6 +889,8 @@ static int do_dup2(struct files_struct *
+       if (tofree)
+               filp_close(tofree, files);
++      else
++              vx_openfd_inc(fd);      /* fd was unused */
+       return fd;
+diff -NurpP --minimal linux-3.7/fs/file_table.c linux-3.7-vs2.3.5.1/fs/file_table.c
+--- linux-3.7/fs/file_table.c  2012-12-11 15:47:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/file_table.c        2012-12-11 15:56:32.000000000 +0000
 @@ -26,6 +26,8 @@
  #include <linux/hardirq.h>
  #include <linux/task_work.h>
@@ -3464,7 +3471,7 @@ diff -NurpP --minimal linux-3.6.10/fs/file_table.c linux-3.6.10-vs2.3.4.5/fs/fil
        file->f_path.dentry = NULL;
        file->f_path.mnt = NULL;
        file_free(file);
-@@ -449,6 +455,8 @@ void put_filp(struct file *file)
+@@ -343,6 +349,8 @@ void put_filp(struct file *file)
  {
        if (atomic_long_dec_and_test(&file->f_count)) {
                security_file_free(file);
@@ -3473,9 +3480,9 @@ diff -NurpP --minimal linux-3.6.10/fs/file_table.c linux-3.6.10-vs2.3.4.5/fs/fil
                file_sb_list_del(file);
                file_free(file);
        }
-diff -NurpP --minimal linux-3.6.10/fs/fs_struct.c linux-3.6.10-vs2.3.4.5/fs/fs_struct.c
---- linux-3.6.10/fs/fs_struct.c        2012-10-04 15:27:39.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/fs_struct.c      2012-10-04 19:08:56.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/fs_struct.c linux-3.7-vs2.3.5.1/fs/fs_struct.c
+--- linux-3.7/fs/fs_struct.c   2012-10-04 13:27:39.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/fs_struct.c 2012-12-11 15:56:32.000000000 +0000
 @@ -4,6 +4,7 @@
  #include <linux/path.h>
  #include <linux/slab.h>
@@ -3492,7 +3499,7 @@ diff -NurpP --minimal linux-3.6.10/fs/fs_struct.c linux-3.6.10-vs2.3.4.5/fs/fs_s
        kmem_cache_free(fs_cachep, fs);
  }
  
-@@ -124,6 +126,7 @@ struct fs_struct *copy_fs_struct(struct 
+@@ -124,6 +126,7 @@ struct fs_struct *copy_fs_struct(struct
                fs->pwd = old->pwd;
                path_get(&fs->pwd);
                spin_unlock(&old->lock);
@@ -3500,9 +3507,9 @@ diff -NurpP --minimal linux-3.6.10/fs/fs_struct.c linux-3.6.10-vs2.3.4.5/fs/fs_s
        }
        return fs;
  }
-diff -NurpP --minimal linux-3.6.10/fs/gfs2/file.c linux-3.6.10-vs2.3.4.5/fs/gfs2/file.c
---- linux-3.6.10/fs/gfs2/file.c        2012-12-11 12:36:57.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/gfs2/file.c      2012-12-08 01:36:33.000000000 +0100
+diff -NurpP --minimal linux-3.7/fs/gfs2/file.c linux-3.7-vs2.3.5.1/fs/gfs2/file.c
+--- linux-3.7/fs/gfs2/file.c   2012-12-11 15:47:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/gfs2/file.c 2012-12-11 15:56:32.000000000 +0000
 @@ -143,6 +143,9 @@ static const u32 fsflags_to_gfs2[32] = {
        [12] = GFS2_DIF_EXHASH,
        [14] = GFS2_DIF_INHERIT_JDATA,
@@ -3625,9 +3632,9 @@ diff -NurpP --minimal linux-3.6.10/fs/gfs2/file.c linux-3.6.10-vs2.3.4.5/fs/gfs2
  static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
        switch(cmd) {
-diff -NurpP --minimal linux-3.6.10/fs/gfs2/inode.h linux-3.6.10-vs2.3.4.5/fs/gfs2/inode.h
---- linux-3.6.10/fs/gfs2/inode.h       2012-07-22 23:39:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/gfs2/inode.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/gfs2/inode.h linux-3.7-vs2.3.5.1/fs/gfs2/inode.h
+--- linux-3.7/fs/gfs2/inode.h  2012-07-22 21:39:40.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/gfs2/inode.h        2012-12-11 15:56:32.000000000 +0000
 @@ -117,6 +117,7 @@ extern const struct file_operations gfs2
  extern const struct file_operations gfs2_dir_fops_nolock;
  
@@ -3636,9 +3643,20 @@ diff -NurpP --minimal linux-3.6.10/fs/gfs2/inode.h linux-3.6.10-vs2.3.4.5/fs/gfs
   
  #ifdef CONFIG_GFS2_FS_LOCKING_DLM
  extern const struct file_operations gfs2_file_fops;
-diff -NurpP --minimal linux-3.6.10/fs/inode.c linux-3.6.10-vs2.3.4.5/fs/inode.c
---- linux-3.6.10/fs/inode.c    2012-12-11 12:36:58.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/inode.c  2012-12-08 01:36:33.000000000 +0100
+diff -NurpP --minimal linux-3.7/fs/hostfs/hostfs.h linux-3.7-vs2.3.5.1/fs/hostfs/hostfs.h
+--- linux-3.7/fs/hostfs/hostfs.h       2012-12-11 15:47:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/hostfs/hostfs.h     2012-12-11 16:35:58.000000000 +0000
+@@ -42,6 +42,7 @@ struct hostfs_iattr {
+       unsigned short  ia_mode;
+       uid_t           ia_uid;
+       gid_t           ia_gid;
++      tag_t           ia_tag;
+       loff_t          ia_size;
+       struct timespec ia_atime;
+       struct timespec ia_mtime;
+diff -NurpP --minimal linux-3.7/fs/inode.c linux-3.7-vs2.3.5.1/fs/inode.c
+--- linux-3.7/fs/inode.c       2012-12-11 15:47:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/inode.c     2012-12-11 19:26:31.000000000 +0000
 @@ -17,6 +17,7 @@
  #include <linux/prefetch.h>
  #include <linux/buffer_head.h> /* for inode_has_buffers */
@@ -3647,16 +3665,23 @@ diff -NurpP --minimal linux-3.6.10/fs/inode.c linux-3.6.10-vs2.3.4.5/fs/inode.c
  #include "internal.h"
  
  /*
-@@ -128,6 +129,9 @@ int inode_init_always(struct super_block
+@@ -128,6 +129,8 @@ int inode_init_always(struct super_block
        struct address_space *const mapping = &inode->i_data;
  
        inode->i_sb = sb;
 +
 +      /* essential because of inode slab reuse */
-+      inode->i_tag = 0;
        inode->i_blkbits = sb->s_blocksize_bits;
        inode->i_flags = 0;
        atomic_set(&inode->i_count, 1);
+@@ -137,6 +140,7 @@ int inode_init_always(struct super_block
+       inode->i_opflags = 0;
+       i_uid_write(inode, 0);
+       i_gid_write(inode, 0);
++      i_tag_write(inode, 0);
+       atomic_set(&inode->i_writecount, 0);
+       inode->i_size = 0;
+       inode->i_blocks = 0;
 @@ -149,6 +153,7 @@ int inode_init_always(struct super_block
        inode->i_bdev = NULL;
        inode->i_cdev = NULL;
@@ -3694,9 +3719,9 @@ diff -NurpP --minimal linux-3.6.10/fs/inode.c linux-3.6.10-vs2.3.4.5/fs/inode.c
  }
  EXPORT_SYMBOL(inode_init_owner);
  
-diff -NurpP --minimal linux-3.6.10/fs/ioctl.c linux-3.6.10-vs2.3.4.5/fs/ioctl.c
---- linux-3.6.10/fs/ioctl.c    2012-05-21 18:07:24.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ioctl.c  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ioctl.c linux-3.7-vs2.3.5.1/fs/ioctl.c
+--- linux-3.7/fs/ioctl.c       2012-12-11 15:47:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ioctl.c     2012-12-11 15:56:32.000000000 +0000
 @@ -15,6 +15,9 @@
  #include <linux/writeback.h>
  #include <linux/buffer_head.h>
@@ -3707,9 +3732,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ioctl.c linux-3.6.10-vs2.3.4.5/fs/ioctl.c
  
  #include <asm/ioctls.h>
  
-diff -NurpP --minimal linux-3.6.10/fs/ioprio.c linux-3.6.10-vs2.3.4.5/fs/ioprio.c
---- linux-3.6.10/fs/ioprio.c   2012-07-22 23:39:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ioprio.c 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ioprio.c linux-3.7-vs2.3.5.1/fs/ioprio.c
+--- linux-3.7/fs/ioprio.c      2012-07-22 21:39:40.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ioprio.c    2012-12-11 15:56:32.000000000 +0000
 @@ -28,6 +28,7 @@
  #include <linux/syscalls.h>
  #include <linux/security.h>
@@ -3718,7 +3743,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ioprio.c linux-3.6.10-vs2.3.4.5/fs/ioprio.
  
  int set_task_ioprio(struct task_struct *task, int ioprio)
  {
-@@ -105,6 +106,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which, 
+@@ -105,6 +106,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which,
                        else
                                pgrp = find_vpid(who);
                        do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -3727,7 +3752,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ioprio.c linux-3.6.10-vs2.3.4.5/fs/ioprio.
                                ret = set_task_ioprio(p, ioprio);
                                if (ret)
                                        break;
-@@ -198,6 +201,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which, 
+@@ -198,6 +201,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which,
                        else
                                pgrp = find_vpid(who);
                        do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -3736,16 +3761,16 @@ diff -NurpP --minimal linux-3.6.10/fs/ioprio.c linux-3.6.10-vs2.3.4.5/fs/ioprio.
                                tmpio = get_task_ioprio(p);
                                if (tmpio < 0)
                                        continue;
-diff -NurpP --minimal linux-3.6.10/fs/jfs/file.c linux-3.6.10-vs2.3.4.5/fs/jfs/file.c
---- linux-3.6.10/fs/jfs/file.c 2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/jfs/file.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/jfs/file.c linux-3.7-vs2.3.5.1/fs/jfs/file.c
+--- linux-3.7/fs/jfs/file.c    2012-12-11 15:47:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/jfs/file.c  2012-12-11 17:20:13.000000000 +0000
 @@ -109,7 +109,8 @@ int jfs_setattr(struct dentry *dentry, s
        if (is_quota_modification(inode, iattr))
                dquot_initialize(inode);
-       if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
--          (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) {
-+          (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid) ||
-+          (iattr->ia_valid & ATTR_TAG && iattr->ia_tag != inode->i_tag)) {
+       if ((iattr->ia_valid & ATTR_UID && !uid_eq(iattr->ia_uid, inode->i_uid)) ||
+-          (iattr->ia_valid & ATTR_GID && !gid_eq(iattr->ia_gid, inode->i_gid))) {
++          (iattr->ia_valid & ATTR_GID && !gid_eq(iattr->ia_gid, inode->i_gid)) ||
++          (iattr->ia_valid & ATTR_TAG && !tag_eq(iattr->ia_tag, inode->i_tag))) {
                rc = dquot_transfer(inode, iattr);
                if (rc)
                        return rc;
@@ -3757,18 +3782,18 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/file.c linux-3.6.10-vs2.3.4.5/fs/jfs/f
  };
  
  const struct file_operations jfs_file_operations = {
-diff -NurpP --minimal linux-3.6.10/fs/jfs/ioctl.c linux-3.6.10-vs2.3.4.5/fs/jfs/ioctl.c
---- linux-3.6.10/fs/jfs/ioctl.c        2012-03-19 19:47:25.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/jfs/ioctl.c      2012-10-04 18:47:00.000000000 +0200
-@@ -11,6 +11,7 @@
- #include <linux/mount.h>
+diff -NurpP --minimal linux-3.7/fs/jfs/ioctl.c linux-3.7-vs2.3.5.1/fs/jfs/ioctl.c
+--- linux-3.7/fs/jfs/ioctl.c   2012-12-11 15:47:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/jfs/ioctl.c 2012-12-11 17:34:44.000000000 +0000
+@@ -12,6 +12,7 @@
  #include <linux/time.h>
  #include <linux/sched.h>
+ #include <linux/blkdev.h>
 +#include <linux/mount.h>
  #include <asm/current.h>
  #include <asm/uaccess.h>
  
-@@ -52,6 +53,16 @@ static long jfs_map_ext2(unsigned long f
+@@ -56,6 +57,16 @@ static long jfs_map_ext2(unsigned long f
  }
  
  
@@ -3785,7 +3810,7 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/ioctl.c linux-3.6.10-vs2.3.4.5/fs/jfs/
  long jfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
  {
        struct inode *inode = filp->f_dentry->d_inode;
-@@ -85,6 +96,11 @@ long jfs_ioctl(struct file *filp, unsign
+@@ -89,6 +100,11 @@ long jfs_ioctl(struct file *filp, unsign
                if (!S_ISDIR(inode->i_mode))
                        flags &= ~JFS_DIRSYNC_FL;
  
@@ -3797,7 +3822,7 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/ioctl.c linux-3.6.10-vs2.3.4.5/fs/jfs/
                /* Is it quota file? Do not allow user to mess with it */
                if (IS_NOQUOTA(inode)) {
                        err = -EPERM;
-@@ -102,8 +118,8 @@ long jfs_ioctl(struct file *filp, unsign
+@@ -106,8 +122,8 @@ long jfs_ioctl(struct file *filp, unsign
                 * the relevant capability.
                 */
                if ((oldflags & JFS_IMMUTABLE_FL) ||
@@ -3808,7 +3833,7 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/ioctl.c linux-3.6.10-vs2.3.4.5/fs/jfs/
                        if (!capable(CAP_LINUX_IMMUTABLE)) {
                                mutex_unlock(&inode->i_mutex);
                                err = -EPERM;
-@@ -111,7 +127,7 @@ long jfs_ioctl(struct file *filp, unsign
+@@ -115,7 +131,7 @@ long jfs_ioctl(struct file *filp, unsign
                        }
                }
  
@@ -3817,9 +3842,9 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/ioctl.c linux-3.6.10-vs2.3.4.5/fs/jfs/
                flags |= oldflags & ~JFS_FL_USER_MODIFIABLE;
                jfs_inode->mode2 = flags;
  
-diff -NurpP --minimal linux-3.6.10/fs/jfs/jfs_dinode.h linux-3.6.10-vs2.3.4.5/fs/jfs/jfs_dinode.h
---- linux-3.6.10/fs/jfs/jfs_dinode.h   2008-12-25 00:26:37.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/jfs/jfs_dinode.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/jfs/jfs_dinode.h linux-3.7-vs2.3.5.1/fs/jfs/jfs_dinode.h
+--- linux-3.7/fs/jfs/jfs_dinode.h      2008-12-24 23:26:37.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/jfs/jfs_dinode.h    2012-12-11 15:56:32.000000000 +0000
 @@ -161,9 +161,13 @@ struct dinode {
  
  #define JFS_APPEND_FL         0x01000000 /* writes to file may only append */
@@ -3836,10 +3861,10 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/jfs_dinode.h linux-3.6.10-vs2.3.4.5/fs
  #define JFS_FL_INHERIT                0x03C80000
  
  /* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */
-diff -NurpP --minimal linux-3.6.10/fs/jfs/jfs_filsys.h linux-3.6.10-vs2.3.4.5/fs/jfs/jfs_filsys.h
---- linux-3.6.10/fs/jfs/jfs_filsys.h   2008-12-25 00:26:37.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/jfs/jfs_filsys.h 2012-10-04 18:47:00.000000000 +0200
-@@ -263,6 +263,7 @@
+diff -NurpP --minimal linux-3.7/fs/jfs/jfs_filsys.h linux-3.7-vs2.3.5.1/fs/jfs/jfs_filsys.h
+--- linux-3.7/fs/jfs/jfs_filsys.h      2012-12-11 15:47:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/jfs/jfs_filsys.h    2012-12-11 15:56:32.000000000 +0000
+@@ -266,6 +266,7 @@
  #define JFS_NAME_MAX  255
  #define JFS_PATH_MAX  BPSIZE
  
@@ -3847,9 +3872,9 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/jfs_filsys.h linux-3.6.10-vs2.3.4.5/fs
  
  /*
   *    file system state (superblock state)
-diff -NurpP --minimal linux-3.6.10/fs/jfs/jfs_imap.c linux-3.6.10-vs2.3.4.5/fs/jfs/jfs_imap.c
---- linux-3.6.10/fs/jfs/jfs_imap.c     2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/jfs/jfs_imap.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/jfs/jfs_imap.c linux-3.7-vs2.3.5.1/fs/jfs/jfs_imap.c
+--- linux-3.7/fs/jfs/jfs_imap.c        2012-12-11 15:47:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/jfs/jfs_imap.c      2012-12-11 22:02:05.000000000 +0000
 @@ -46,6 +46,7 @@
  #include <linux/pagemap.h>
  #include <linux/quotaops.h>
@@ -3862,56 +3887,61 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/jfs_imap.c linux-3.6.10-vs2.3.4.5/fs/j
  {
        struct jfs_inode_info *jfs_ip = JFS_IP(ip);
        struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
-+      uid_t uid;
-+      gid_t gid;
++      kuid_t uid;
++      kgid_t gid;
  
        jfs_ip->fileset = le32_to_cpu(dip->di_fileset);
        jfs_ip->mode2 = le32_to_cpu(dip->di_mode);
-@@ -3078,14 +3081,18 @@ static int copy_from_dinode(struct dinod
+@@ -3078,14 +3081,19 @@ static int copy_from_dinode(struct dinod
        }
        set_nlink(ip, le32_to_cpu(dip->di_nlink));
  
--      jfs_ip->saved_uid = le32_to_cpu(dip->di_uid);
-+      uid = le32_to_cpu(dip->di_uid);
-+      gid = le32_to_cpu(dip->di_gid);
-+      ip->i_tag = INOTAG_TAG(DX_TAG(ip), uid, gid, 0);
+-      jfs_ip->saved_uid = make_kuid(&init_user_ns, le32_to_cpu(dip->di_uid));
++      uid = make_kuid(&init_user_ns, le32_to_cpu(dip->di_uid));
++      gid = make_kgid(&init_user_ns, le32_to_cpu(dip->di_gid));
++      ip->i_tag = make_ktag(&init_user_ns,
++              INOTAG_TAG(DX_TAG(ip), uid, gid, 0));
 +
 +      jfs_ip->saved_uid = INOTAG_UID(DX_TAG(ip), uid, gid);
-       if (sbi->uid == -1)
+       if (!uid_valid(sbi->uid))
                ip->i_uid = jfs_ip->saved_uid;
        else {
                ip->i_uid = sbi->uid;
        }
  
--      jfs_ip->saved_gid = le32_to_cpu(dip->di_gid);
+-      jfs_ip->saved_gid = make_kgid(&init_user_ns, le32_to_cpu(dip->di_gid));
 +      jfs_ip->saved_gid = INOTAG_GID(DX_TAG(ip), uid, gid);
-       if (sbi->gid == -1)
+       if (!gid_valid(sbi->gid))
                ip->i_gid = jfs_ip->saved_gid;
        else {
-@@ -3150,14 +3157,12 @@ static void copy_to_dinode(struct dinode
+@@ -3150,16 +3158,14 @@ static void copy_to_dinode(struct dinode
        dip->di_size = cpu_to_le64(ip->i_size);
        dip->di_nblocks = cpu_to_le64(PBLK2LBLK(ip->i_sb, ip->i_blocks));
        dip->di_nlink = cpu_to_le32(ip->i_nlink);
--      if (sbi->uid == -1)
--              dip->di_uid = cpu_to_le32(ip->i_uid);
+-      if (!uid_valid(sbi->uid))
+-              dip->di_uid = cpu_to_le32(i_uid_read(ip));
 -      else
--              dip->di_uid = cpu_to_le32(jfs_ip->saved_uid);
--      if (sbi->gid == -1)
--              dip->di_gid = cpu_to_le32(ip->i_gid);
+-              dip->di_uid =cpu_to_le32(from_kuid(&init_user_ns,
+-                                                 jfs_ip->saved_uid));
+-      if (!gid_valid(sbi->gid))
+-              dip->di_gid = cpu_to_le32(i_gid_read(ip));
 -      else
--              dip->di_gid = cpu_to_le32(jfs_ip->saved_gid);
-+
-+      dip->di_uid = cpu_to_le32(TAGINO_UID(DX_TAG(ip),
-+              (sbi->uid == -1) ? ip->i_uid : jfs_ip->saved_uid, ip->i_tag));
-+      dip->di_gid = cpu_to_le32(TAGINO_GID(DX_TAG(ip),
-+              (sbi->gid == -1) ? ip->i_gid : jfs_ip->saved_gid, ip->i_tag));
-+
+-              dip->di_gid = cpu_to_le32(from_kgid(&init_user_ns,
+-                                                  jfs_ip->saved_gid));
++      dip->di_uid = cpu_to_le32(from_kuid(&init_user_ns,
++              TAGINO_UID(DX_TAG(ip),
++              !uid_valid(sbi->uid) ? ip->i_uid : jfs_ip->saved_uid,
++              ip->i_tag)));
++      dip->di_gid = cpu_to_le32(from_kuid(&init_user_ns,
++              TAGINO_GID(DX_TAG(ip),
++              !gid_valid(sbi->gid) ? ip->i_gid : jfs_ip->saved_gid,
++              ip->i_tag)));
        jfs_get_inode_flags(jfs_ip);
        /*
         * mode2 is only needed for storing the higher order bits.
-diff -NurpP --minimal linux-3.6.10/fs/jfs/jfs_inode.c linux-3.6.10-vs2.3.4.5/fs/jfs/jfs_inode.c
---- linux-3.6.10/fs/jfs/jfs_inode.c    2012-01-09 16:14:54.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/jfs/jfs_inode.c  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/jfs/jfs_inode.c linux-3.7-vs2.3.5.1/fs/jfs/jfs_inode.c
+--- linux-3.7/fs/jfs/jfs_inode.c       2012-01-09 15:14:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/jfs/jfs_inode.c     2012-12-11 15:56:32.000000000 +0000
 @@ -18,6 +18,7 @@
  
  #include <linux/fs.h>
@@ -3985,9 +4015,9 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/jfs_inode.c linux-3.6.10-vs2.3.4.5/fs/
  }
  
  /*
-diff -NurpP --minimal linux-3.6.10/fs/jfs/jfs_inode.h linux-3.6.10-vs2.3.4.5/fs/jfs/jfs_inode.h
---- linux-3.6.10/fs/jfs/jfs_inode.h    2011-10-24 18:45:27.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/jfs/jfs_inode.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/jfs/jfs_inode.h linux-3.7-vs2.3.5.1/fs/jfs/jfs_inode.h
+--- linux-3.7/fs/jfs/jfs_inode.h       2011-10-24 16:45:27.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/jfs/jfs_inode.h     2012-12-11 15:56:32.000000000 +0000
 @@ -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);
@@ -3996,9 +4026,9 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/jfs_inode.h linux-3.6.10-vs2.3.4.5/fs/
  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.6.10/fs/jfs/namei.c linux-3.6.10-vs2.3.4.5/fs/jfs/namei.c
---- linux-3.6.10/fs/jfs/namei.c        2012-10-04 15:27:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/jfs/namei.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/jfs/namei.c linux-3.7-vs2.3.5.1/fs/jfs/namei.c
+--- linux-3.7/fs/jfs/namei.c   2012-10-04 13:27:40.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/jfs/namei.c 2012-12-11 15:56:32.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <linux/ctype.h>
  #include <linux/quotaops.h>
@@ -4007,7 +4037,7 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/namei.c linux-3.6.10-vs2.3.4.5/fs/jfs/
  #include "jfs_incore.h"
  #include "jfs_superblock.h"
  #include "jfs_inode.h"
-@@ -1461,6 +1462,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);
        }
  
@@ -4023,20 +4053,20 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/namei.c linux-3.6.10-vs2.3.4.5/fs/jfs/
  };
  
  const struct file_operations jfs_dir_operations = {
-diff -NurpP --minimal linux-3.6.10/fs/jfs/super.c linux-3.6.10-vs2.3.4.5/fs/jfs/super.c
---- linux-3.6.10/fs/jfs/super.c        2012-10-04 15:27:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/jfs/super.c      2012-10-04 18:47:00.000000000 +0200
-@@ -197,7 +197,8 @@ static void jfs_put_super(struct super_b
- enum {
+diff -NurpP --minimal linux-3.7/fs/jfs/super.c linux-3.7-vs2.3.5.1/fs/jfs/super.c
+--- linux-3.7/fs/jfs/super.c   2012-12-11 15:47:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/jfs/super.c 2012-12-11 17:36:00.000000000 +0000
+@@ -199,7 +199,8 @@ enum {
        Opt_integrity, Opt_nointegrity, Opt_iocharset, Opt_resize,
        Opt_resize_nosize, Opt_errors, Opt_ignore, Opt_err, Opt_quota,
--      Opt_usrquota, Opt_grpquota, Opt_uid, Opt_gid, Opt_umask
-+      Opt_usrquota, Opt_grpquota, Opt_uid, Opt_gid, Opt_umask,
+       Opt_usrquota, Opt_grpquota, Opt_uid, Opt_gid, Opt_umask,
+-      Opt_discard, Opt_nodiscard, Opt_discard_minblk
++      Opt_discard, Opt_nodiscard, Opt_discard_minblk,
 +      Opt_tag, Opt_notag, Opt_tagid
  };
  
  static const match_table_t tokens = {
-@@ -207,6 +208,10 @@ static const match_table_t tokens = {
+@@ -209,6 +210,10 @@ static const match_table_t tokens = {
        {Opt_resize, "resize=%u"},
        {Opt_resize_nosize, "resize"},
        {Opt_errors, "errors=%s"},
@@ -4047,10 +4077,11 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/super.c linux-3.6.10-vs2.3.4.5/fs/jfs/
        {Opt_ignore, "noquota"},
        {Opt_ignore, "quota"},
        {Opt_usrquota, "usrquota"},
-@@ -341,6 +346,20 @@ static int parse_options(char *options, 
+@@ -385,7 +390,20 @@ static int parse_options(char *options,
                        }
                        break;
                }
+-
 +#ifndef CONFIG_TAGGING_NONE
 +              case Opt_tag:
 +                      *flag |= JFS_TAGGED;
@@ -4068,7 +4099,7 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/super.c linux-3.6.10-vs2.3.4.5/fs/jfs/
                default:
                        printk("jfs: Unrecognized mount option \"%s\" "
                                        " or missing value\n", p);
-@@ -372,6 +391,12 @@ static int jfs_remount(struct super_bloc
+@@ -417,6 +435,12 @@ static int jfs_remount(struct super_bloc
                return -EINVAL;
        }
  
@@ -4080,8 +4111,8 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/super.c linux-3.6.10-vs2.3.4.5/fs/jfs/
 +
        if (newLVSize) {
                if (sb->s_flags & MS_RDONLY) {
-                       printk(KERN_ERR
-@@ -455,6 +480,9 @@ static int jfs_fill_super(struct super_b
+                       pr_err("JFS: resize requires volume" \
+@@ -502,6 +526,9 @@ static int jfs_fill_super(struct super_b
  #ifdef CONFIG_JFS_POSIX_ACL
        sb->s_flags |= MS_POSIXACL;
  #endif
@@ -4090,10 +4121,10 @@ diff -NurpP --minimal linux-3.6.10/fs/jfs/super.c linux-3.6.10-vs2.3.4.5/fs/jfs/
 +              sb->s_flags |= MS_TAGGED;
  
        if (newLVSize) {
-               printk(KERN_ERR "resize option for remount only\n");
-diff -NurpP --minimal linux-3.6.10/fs/libfs.c linux-3.6.10-vs2.3.4.5/fs/libfs.c
---- linux-3.6.10/fs/libfs.c    2012-10-04 15:27:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/libfs.c  2012-10-04 18:47:00.000000000 +0200
+               pr_err("resize option for remount only\n");
+diff -NurpP --minimal linux-3.7/fs/libfs.c linux-3.7-vs2.3.5.1/fs/libfs.c
+--- linux-3.7/fs/libfs.c       2012-12-11 15:47:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/libfs.c     2012-12-11 15:56:32.000000000 +0000
 @@ -135,7 +135,8 @@ static inline unsigned char dt_type(stru
   * both impossible due to the lock on directory.
   */
@@ -4139,9 +4170,9 @@ diff -NurpP --minimal linux-3.6.10/fs/libfs.c linux-3.6.10-vs2.3.4.5/fs/libfs.c
  EXPORT_SYMBOL(generic_read_dir);
  EXPORT_SYMBOL(mount_pseudo);
  EXPORT_SYMBOL(simple_write_begin);
-diff -NurpP --minimal linux-3.6.10/fs/locks.c linux-3.6.10-vs2.3.4.5/fs/locks.c
---- linux-3.6.10/fs/locks.c    2012-10-04 15:27:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/locks.c  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/locks.c linux-3.7-vs2.3.5.1/fs/locks.c
+--- linux-3.7/fs/locks.c       2012-12-11 15:47:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/locks.c     2012-12-11 15:56:32.000000000 +0000
 @@ -126,6 +126,8 @@
  #include <linux/time.h>
  #include <linux/rcupdate.h>
@@ -4302,7 +4333,7 @@ diff -NurpP --minimal linux-3.6.10/fs/locks.c linux-3.6.10-vs2.3.4.5/fs/locks.c
        return 0;
  
  out:
-@@ -1838,6 +1871,11 @@ int fcntl_setlk(unsigned int fd, struct 
+@@ -1836,6 +1869,11 @@ int fcntl_setlk(unsigned int fd, struct
        if (file_lock == NULL)
                return -ENOLCK;
  
@@ -4314,7 +4345,7 @@ diff -NurpP --minimal linux-3.6.10/fs/locks.c linux-3.6.10-vs2.3.4.5/fs/locks.c
        /*
         * This might block, so we do it before checking the inode.
         */
-@@ -1956,6 +1994,11 @@ int fcntl_setlk64(unsigned int fd, struc
+@@ -1954,6 +1992,11 @@ int fcntl_setlk64(unsigned int fd, struc
        if (file_lock == NULL)
                return -ENOLCK;
  
@@ -4326,7 +4357,7 @@ diff -NurpP --minimal linux-3.6.10/fs/locks.c linux-3.6.10-vs2.3.4.5/fs/locks.c
        /*
         * This might block, so we do it before checking the inode.
         */
-@@ -2221,8 +2264,11 @@ static int locks_show(struct seq_file *f
+@@ -2219,8 +2262,11 @@ static int locks_show(struct seq_file *f
  
        lock_get_status(f, fl, *((loff_t *)f->private), "");
  
@@ -4339,9 +4370,9 @@ diff -NurpP --minimal linux-3.6.10/fs/locks.c linux-3.6.10-vs2.3.4.5/fs/locks.c
  
        return 0;
  }
-diff -NurpP --minimal linux-3.6.10/fs/mount.h linux-3.6.10-vs2.3.4.5/fs/mount.h
---- linux-3.6.10/fs/mount.h    2012-10-04 15:27:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/mount.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/mount.h linux-3.7-vs2.3.5.1/fs/mount.h
+--- linux-3.7/fs/mount.h       2012-10-04 13:27:40.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/mount.h     2012-12-11 15:56:32.000000000 +0000
 @@ -46,6 +46,7 @@ struct mount {
        int mnt_expiry_mark;            /* true if marked for expiry */
        int mnt_pinned;
@@ -4350,9 +4381,9 @@ diff -NurpP --minimal linux-3.6.10/fs/mount.h linux-3.6.10-vs2.3.4.5/fs/mount.h
  };
  
  #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
-diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
---- linux-3.6.10/fs/namei.c    2012-12-11 12:36:58.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/namei.c  2012-12-08 01:08:53.000000000 +0100
+diff -NurpP --minimal linux-3.7/fs/namei.c linux-3.7-vs2.3.5.1/fs/namei.c
+--- linux-3.7/fs/namei.c       2012-12-11 15:47:35.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/namei.c     2012-12-11 21:44:51.000000000 +0000
 @@ -34,6 +34,14 @@
  #include <linux/device_cgroup.h>
  #include <linux/fs_struct.h>
@@ -4368,7 +4399,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
  #include <asm/uaccess.h>
  
  #include "internal.h"
-@@ -212,6 +220,89 @@ static int check_acl(struct inode *inode
+@@ -266,6 +274,89 @@ static int check_acl(struct inode *inode
        return -EAGAIN;
  }
  
@@ -4389,7 +4420,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
 +      if (inode->i_sb->s_magic == DEVPTS_SUPER_MAGIC) {
 +              /* devpts is xid tagged */
 +              if (S_ISDIR(inode->i_mode) ||
-+                  vx_check((xid_t)inode->i_tag, VS_IDENT | VS_WATCH_P))
++                  vx_check((xid_t)i_tag_read(inode), VS_IDENT | VS_WATCH_P))
 +                      return 0;
 +
 +              /* just pretend we didn't find anything */
@@ -4431,8 +4462,8 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
 +      }
 +      else {
 +              if (dx_notagcheck(inode->i_sb) ||
-+                  dx_check(inode->i_tag, DX_HOSTID | DX_ADMIN | DX_WATCH |
-+                           DX_IDENT))
++                  dx_check((xid_t)i_tag_read(inode),
++                      DX_HOSTID | DX_ADMIN | DX_WATCH | DX_IDENT))
 +                      return 0;
 +      }
 +
@@ -4458,7 +4489,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
  /*
   * This does the basic permission checking
   */
-@@ -334,10 +425,14 @@ int __inode_permission(struct inode *ino
+@@ -388,10 +479,14 @@ int __inode_permission(struct inode *ino
                /*
                 * Nobody gets write access to an immutable file.
                 */
@@ -4474,7 +4505,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
        retval = do_inode_permission(inode, mask);
        if (retval)
                return retval;
-@@ -1189,7 +1284,8 @@ static void follow_dotdot(struct nameida
+@@ -1244,7 +1339,8 @@ static void follow_dotdot(struct nameida
  
                if (nd->path.dentry == nd->root.dentry &&
                    nd->path.mnt == nd->root.mnt) {
@@ -4484,7 +4515,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
                }
                if (nd->path.dentry != nd->path.mnt->mnt_root) {
                        /* rare case of legitimate dget_parent()... */
-@@ -1338,6 +1434,9 @@ static int lookup_fast(struct nameidata 
+@@ -1393,6 +1489,9 @@ static int lookup_fast(struct nameidata
                                goto unlazy;
                        }
                }
@@ -4494,7 +4525,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
                path->mnt = mnt;
                path->dentry = dentry;
                if (unlikely(!__follow_mount_rcu(nd, path, inode)))
-@@ -1373,6 +1472,8 @@ unlazy:
+@@ -1428,6 +1527,8 @@ unlazy:
                }
        }
  
@@ -4503,7 +4534,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
        path->mnt = mnt;
        path->dentry = dentry;
        err = follow_managed(path, nd->flags);
-@@ -2192,7 +2293,7 @@ static int may_delete(struct inode *dir,
+@@ -2258,7 +2359,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)||
@@ -4512,15 +4543,14 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
                return -EPERM;
        if (isdir) {
                if (!S_ISDIR(victim->d_inode->i_mode))
-@@ -2271,19 +2372,25 @@ int vfs_create(struct inode *dir, struct
+@@ -2337,19 +2438,25 @@ int vfs_create(struct inode *dir, struct
                bool want_excl)
  {
        int error = may_create(dir, dentry);
 -      if (error)
--              return error;
 +      if (error) {
 +              vxdprintk(VXD_CBIT(misc, 3), "may_create failed with %d", error);
-+              return error;
+               return error;
 +      }
  
        if (!dir->i_op->create)
@@ -4529,10 +4559,9 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
        mode |= S_IFREG;
        error = security_inode_create(dir, dentry, mode);
 -      if (error)
--              return error;
 +      if (error) {
 +              vxdprintk(VXD_CBIT(misc, 3), "security_inode_create failed with %d", error);
-+              return error;
+               return error;
 +      }
        error = dir->i_op->create(dir, dentry, mode, want_excl);
        if (!error)
@@ -4542,7 +4571,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
        return error;
  }
  
-@@ -2318,6 +2425,15 @@ static int may_open(struct path *path, i
+@@ -2384,6 +2491,15 @@ static int may_open(struct path *path, i
                break;
        }
  
@@ -4558,14 +4587,14 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
        error = inode_permission(inode, acc_mode);
        if (error)
                return error;
-@@ -2820,6 +2936,16 @@ finish_open:
+@@ -2886,6 +3002,16 @@ finish_open:
        }
  finish_open_created:
        error = may_open(&nd->path, acc_mode, open_flag);
 +#ifdef        CONFIG_VSERVER_COWBL
 +      if (error == -EMLINK) {
 +              struct dentry *dentry;
-+              dentry = cow_break_link(pathname);
++              dentry = cow_break_link(name->name);
 +              if (IS_ERR(dentry))
 +                      error = PTR_ERR(dentry);
 +              else
@@ -4575,7 +4604,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
        if (error)
                goto out;
        file->f_path.mnt = nd->path.mnt;
-@@ -2884,6 +3010,7 @@ static struct file *path_openat(int dfd,
+@@ -2950,6 +3076,7 @@ static struct file *path_openat(int dfd,
        int opened = 0;
        int error;
  
@@ -4583,7 +4612,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
        file = get_empty_filp();
        if (!file)
                return ERR_PTR(-ENFILE);
-@@ -2920,6 +3047,16 @@ static struct file *path_openat(int dfd,
+@@ -2986,6 +3113,16 @@ static struct file *path_openat(int dfd,
                error = do_last(nd, &path, file, op, &opened, pathname);
                put_link(nd, &link, cookie);
        }
@@ -4600,7 +4629,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
  out:
        if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT))
                path_put(&nd->root);
-@@ -3023,6 +3160,11 @@ struct dentry *kern_path_create(int dfd,
+@@ -3090,6 +3227,11 @@ struct dentry *kern_path_create(int dfd,
                goto fail;
        }
        *path = nd.path;
@@ -4612,7 +4641,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
        return dentry;
  fail:
        dput(dentry);
-@@ -3489,7 +3631,7 @@ int vfs_link(struct dentry *old_dentry, 
+@@ -3556,7 +3698,7 @@ int vfs_link(struct dentry *old_dentry,
        /*
         * A link to an append-only or immutable file cannot be created.
         */
@@ -4621,7 +4650,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
                return -EPERM;
        if (!dir->i_op->link)
                return -EPERM;
-@@ -3874,6 +4016,275 @@ int vfs_follow_link(struct nameidata *nd
+@@ -3945,6 +4087,275 @@ int vfs_follow_link(struct nameidata *nd
        return __vfs_follow_link(nd, link);
  }
  
@@ -4897,14 +4926,14 @@ diff -NurpP --minimal linux-3.6.10/fs/namei.c linux-3.6.10-vs2.3.4.5/fs/namei.c
  /* get the link contents into pagecache */
  static char *page_getlink(struct dentry * dentry, struct page **ppage)
  {
-@@ -3998,3 +4409,4 @@ EXPORT_SYMBOL(vfs_symlink);
+@@ -4068,3 +4479,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.6.10/fs/namespace.c linux-3.6.10-vs2.3.4.5/fs/namespace.c
---- linux-3.6.10/fs/namespace.c        2012-10-04 15:27:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/namespace.c      2012-12-08 01:10:23.000000000 +0100
+diff -NurpP --minimal linux-3.7/fs/namespace.c linux-3.7-vs2.3.5.1/fs/namespace.c
+--- linux-3.7/fs/namespace.c   2012-12-11 15:47:35.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/namespace.c 2012-12-11 17:17:30.000000000 +0000
 @@ -20,6 +20,11 @@
  #include <linux/fs_struct.h>  /* get_fs_root et.al. */
  #include <linux/fsnotify.h>   /* fsnotify_vfsmount_delete */
@@ -4974,7 +5003,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namespace.c linux-3.6.10-vs2.3.4.5/fs/name
 @@ -1641,12 +1652,14 @@ static int do_change_type(struct path *p
   * do loopback mount.
   */
- static int do_loopback(struct path *path, char *old_name,
+ static int do_loopback(struct path *path, const char *old_name,
 -                              int recurse)
 +      tag_t tag, unsigned long flags, int mnt_flags)
  {
@@ -5021,7 +5050,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namespace.c linux-3.6.10-vs2.3.4.5/fs/name
                return -EPERM;
  
        mnt = do_kern_mount(type, flags, name, data);
-@@ -2197,6 +2210,7 @@ long do_mount(char *dev_name, char *dir_
+@@ -2197,6 +2210,7 @@ long do_mount(const char *dev_name, cons
        struct path path;
        int retval = 0;
        int mnt_flags = 0;
@@ -5029,7 +5058,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namespace.c linux-3.6.10-vs2.3.4.5/fs/name
  
        /* Discard magic */
        if ((flags & MS_MGC_MSK) == MS_MGC_VAL)
-@@ -2224,6 +2238,12 @@ long do_mount(char *dev_name, char *dir_
+@@ -2224,6 +2238,12 @@ long do_mount(const char *dev_name, cons
        if (!(flags & MS_NOATIME))
                mnt_flags |= MNT_RELATIME;
  
@@ -5042,7 +5071,7 @@ diff -NurpP --minimal linux-3.6.10/fs/namespace.c linux-3.6.10-vs2.3.4.5/fs/name
        /* Separate the per-mountpoint flags */
        if (flags & MS_NOSUID)
                mnt_flags |= MNT_NOSUID;
-@@ -2240,15 +2260,17 @@ long do_mount(char *dev_name, char *dir_
+@@ -2240,15 +2260,17 @@ long do_mount(const char *dev_name, cons
        if (flags & MS_RDONLY)
                mnt_flags |= MNT_READONLY;
  
@@ -5091,10 +5120,10 @@ diff -NurpP --minimal linux-3.6.10/fs/namespace.c linux-3.6.10-vs2.3.4.5/fs/name
        kfree(ns);
  }
  
-diff -NurpP --minimal linux-3.6.10/fs/nfs/client.c linux-3.6.10-vs2.3.4.5/fs/nfs/client.c
---- linux-3.6.10/fs/nfs/client.c       2012-12-11 12:36:58.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/nfs/client.c     2012-11-06 18:43:41.000000000 +0100
-@@ -692,6 +692,9 @@ int nfs_init_server_rpcclient(struct nfs
+diff -NurpP --minimal linux-3.7/fs/nfs/client.c linux-3.7-vs2.3.5.1/fs/nfs/client.c
+--- linux-3.7/fs/nfs/client.c  2012-12-11 15:47:35.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/nfs/client.c        2012-12-11 15:56:32.000000000 +0000
+@@ -684,6 +684,9 @@ int nfs_init_server_rpcclient(struct nfs
        if (server->flags & NFS_MOUNT_SOFT)
                server->client->cl_softrtry = 1;
  
@@ -5104,7 +5133,7 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/client.c linux-3.6.10-vs2.3.4.5/fs/nfs
        return 0;
  }
  EXPORT_SYMBOL_GPL(nfs_init_server_rpcclient);
-@@ -869,6 +872,10 @@ static void nfs_server_set_fsinfo(struct
+@@ -863,6 +866,10 @@ static void nfs_server_set_fsinfo(struct
                server->acdirmin = server->acdirmax = 0;
        }
  
@@ -5115,9 +5144,9 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/client.c linux-3.6.10-vs2.3.4.5/fs/nfs
        server->maxfilesize = fsinfo->maxfilesize;
  
        server->time_delta = fsinfo->time_delta;
-diff -NurpP --minimal linux-3.6.10/fs/nfs/dir.c linux-3.6.10-vs2.3.4.5/fs/nfs/dir.c
---- linux-3.6.10/fs/nfs/dir.c  2012-10-04 15:27:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/nfs/dir.c        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/nfs/dir.c linux-3.7-vs2.3.5.1/fs/nfs/dir.c
+--- linux-3.7/fs/nfs/dir.c     2012-12-11 15:47:35.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/nfs/dir.c   2012-12-11 15:56:32.000000000 +0000
 @@ -36,6 +36,7 @@
  #include <linux/sched.h>
  #include <linux/kmemleak.h>
@@ -5126,7 +5155,7 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/dir.c linux-3.6.10-vs2.3.4.5/fs/nfs/di
  
  #include "delegation.h"
  #include "iostat.h"
-@@ -1251,6 +1252,7 @@ struct dentry *nfs_lookup(struct inode *
+@@ -1252,6 +1253,7 @@ struct dentry *nfs_lookup(struct inode *
        /* Success: notify readdir to use READDIRPLUS */
        nfs_advise_use_readdirplus(dir);
  
@@ -5134,9 +5163,9 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/dir.c linux-3.6.10-vs2.3.4.5/fs/nfs/di
  no_entry:
        res = d_materialise_unique(dentry, inode);
        if (res != NULL) {
-diff -NurpP --minimal linux-3.6.10/fs/nfs/inode.c linux-3.6.10-vs2.3.4.5/fs/nfs/inode.c
---- linux-3.6.10/fs/nfs/inode.c        2012-10-04 15:27:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/nfs/inode.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/nfs/inode.c linux-3.7-vs2.3.5.1/fs/nfs/inode.c
+--- linux-3.7/fs/nfs/inode.c   2012-12-11 15:47:35.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/nfs/inode.c 2012-12-11 15:56:32.000000000 +0000
 @@ -39,6 +39,7 @@
  #include <linux/compat.h>
  #include <linux/freezer.h>
@@ -5200,7 +5229,7 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/inode.c linux-3.6.10-vs2.3.4.5/fs/nfs/
                NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
                spin_unlock(&inode->i_lock);
        }
-@@ -965,6 +975,9 @@ static int nfs_check_inode_attributes(st
+@@ -968,6 +978,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;
@@ -5210,7 +5239,7 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/inode.c linux-3.6.10-vs2.3.4.5/fs/nfs/
  
  
        if (nfs_have_delegated_attributes(inode))
-@@ -990,13 +1003,18 @@ static int nfs_check_inode_attributes(st
+@@ -993,13 +1006,18 @@ static int nfs_check_inode_attributes(st
                        invalid |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE;
        }
  
@@ -5231,7 +5260,7 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/inode.c linux-3.6.10-vs2.3.4.5/fs/nfs/
  
        /* Has the link count changed? */
        if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink)
-@@ -1300,6 +1318,9 @@ static int nfs_update_inode(struct inode
+@@ -1303,6 +1321,9 @@ static int nfs_update_inode(struct inode
        unsigned long invalid = 0;
        unsigned long now = jiffies;
        unsigned long save_cache_validity;
@@ -5241,7 +5270,7 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/inode.c linux-3.6.10-vs2.3.4.5/fs/nfs/
  
        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,
-@@ -1401,6 +1422,9 @@ static int nfs_update_inode(struct inode
+@@ -1404,6 +1425,9 @@ static int nfs_update_inode(struct inode
                                | NFS_INO_REVAL_PAGECACHE
                                | NFS_INO_REVAL_FORCED);
  
@@ -5251,7 +5280,7 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/inode.c linux-3.6.10-vs2.3.4.5/fs/nfs/
  
        if (fattr->valid & NFS_ATTR_FATTR_ATIME)
                memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime));
-@@ -1422,9 +1446,9 @@ static int nfs_update_inode(struct inode
+@@ -1425,9 +1449,9 @@ static int nfs_update_inode(struct inode
                                | NFS_INO_REVAL_FORCED);
  
        if (fattr->valid & NFS_ATTR_FATTR_OWNER) {
@@ -5263,7 +5292,7 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/inode.c linux-3.6.10-vs2.3.4.5/fs/nfs/
                }
        } else if (server->caps & NFS_CAP_OWNER)
                invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
-@@ -1433,9 +1457,9 @@ static int nfs_update_inode(struct inode
+@@ -1436,9 +1460,9 @@ static int nfs_update_inode(struct inode
                                | NFS_INO_REVAL_FORCED);
  
        if (fattr->valid & NFS_ATTR_FATTR_GROUP) {
@@ -5275,7 +5304,7 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/inode.c linux-3.6.10-vs2.3.4.5/fs/nfs/
                }
        } else if (server->caps & NFS_CAP_OWNER_GROUP)
                invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
-@@ -1443,6 +1467,10 @@ static int nfs_update_inode(struct inode
+@@ -1446,6 +1470,10 @@ static int nfs_update_inode(struct inode
                                | NFS_INO_INVALID_ACL
                                | NFS_INO_REVAL_FORCED);
  
@@ -5286,9 +5315,9 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/inode.c linux-3.6.10-vs2.3.4.5/fs/nfs/
        if (fattr->valid & NFS_ATTR_FATTR_NLINK) {
                if (inode->i_nlink != fattr->nlink) {
                        invalid |= NFS_INO_INVALID_ATTR;
-diff -NurpP --minimal linux-3.6.10/fs/nfs/nfs3xdr.c linux-3.6.10-vs2.3.4.5/fs/nfs/nfs3xdr.c
---- linux-3.6.10/fs/nfs/nfs3xdr.c      2012-10-04 15:27:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/nfs/nfs3xdr.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/nfs/nfs3xdr.c linux-3.7-vs2.3.5.1/fs/nfs/nfs3xdr.c
+--- linux-3.7/fs/nfs/nfs3xdr.c 2012-10-04 13:27:40.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/nfs/nfs3xdr.c       2012-12-11 15:56:32.000000000 +0000
 @@ -20,6 +20,7 @@
  #include <linux/nfs3.h>
  #include <linux/nfs_fs.h>
@@ -5434,26 +5463,18 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/nfs3xdr.c linux-3.6.10-vs2.3.4.5/fs/nf
  }
  
  /*
-diff -NurpP --minimal linux-3.6.10/fs/nfs/super.c linux-3.6.10-vs2.3.4.5/fs/nfs/super.c
---- linux-3.6.10/fs/nfs/super.c        2012-12-11 12:36:58.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/nfs/super.c      2012-12-08 01:36:33.000000000 +0100
-@@ -54,6 +54,7 @@
- #include <linux/parser.h>
+diff -NurpP --minimal linux-3.7/fs/nfs/super.c linux-3.7-vs2.3.5.1/fs/nfs/super.c
+--- linux-3.7/fs/nfs/super.c   2012-12-11 15:47:35.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/nfs/super.c 2012-12-11 17:09:13.000000000 +0000
+@@ -55,6 +55,7 @@
  #include <linux/nsproxy.h>
  #include <linux/rcupdate.h>
+ #include <linux/kthread.h>
 +#include <linux/vs_tag.h>
  
  #include <asm/uaccess.h>
  
-@@ -88,6 +89,7 @@ enum {
-       Opt_sharecache, Opt_nosharecache,
-       Opt_resvport, Opt_noresvport,
-       Opt_fscache, Opt_nofscache,
-+      Opt_tag, Opt_notag,
-       /* Mount options that take integer arguments */
-       Opt_port,
-@@ -100,6 +102,7 @@ enum {
+@@ -102,6 +103,7 @@ enum {
        Opt_mountport,
        Opt_mountvers,
        Opt_minorversion,
@@ -5461,18 +5482,28 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/super.c linux-3.6.10-vs2.3.4.5/fs/nfs/
  
        /* Mount options that take string arguments */
        Opt_nfsvers,
-@@ -182,6 +185,10 @@ static const match_table_t nfs_mount_opt
-       /* The following needs to be listed after all other options */
-       { Opt_nfsvers, "v%s" },
+@@ -114,6 +116,9 @@ enum {
+       /* Special mount options */
+       Opt_userspace, Opt_deprecated, Opt_sloppy,
++      /* Linux-VServer tagging options */
++      Opt_tag, Opt_notag,
++
+       Opt_err
+ };
+@@ -183,6 +188,10 @@ static const match_table_t nfs_mount_opt
+       { Opt_fscache_uniq, "fsc=%s" },
+       { Opt_local_lock, "local_lock=%s" },
  
 +      { Opt_tag, "tag" },
 +      { Opt_notag, "notag" },
 +      { Opt_tagid, "tagid=%u" },
 +
-       { Opt_err, NULL }
- };
+       /* The following needs to be listed after all other options */
+       { Opt_nfsvers, "v%s" },
  
-@@ -626,6 +633,7 @@ static void nfs_show_mount_options(struc
+@@ -678,6 +687,7 @@ static void nfs_show_mount_options(struc
                { NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" },
                { NFS_MOUNT_UNSHARED, ",nosharecache", "" },
                { NFS_MOUNT_NORESVPORT, ",noresvport", "" },
@@ -5480,9 +5511,9 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/super.c linux-3.6.10-vs2.3.4.5/fs/nfs/
                { 0, NULL, NULL }
        };
        const struct proc_nfs_info *nfs_infop;
-@@ -1243,6 +1251,14 @@ static int nfs_parse_mount_options(char 
-                       kfree(mnt->fscache_uniq);
-                       mnt->fscache_uniq = NULL;
+@@ -1304,6 +1314,14 @@ static int nfs_parse_mount_options(char
+               case Opt_nomigration:
+                       mnt->options &= NFS_OPTION_MIGRATION;
                        break;
 +#ifndef CONFIG_TAGGING_NONE
 +              case Opt_tag:
@@ -5495,7 +5526,7 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/super.c linux-3.6.10-vs2.3.4.5/fs/nfs/
  
                /*
                 * options that take numeric values
-@@ -1329,6 +1345,12 @@ static int nfs_parse_mount_options(char 
+@@ -1390,6 +1408,12 @@ static int nfs_parse_mount_options(char
                                goto out_invalid_value;
                        mnt->minorversion = option;
                        break;
@@ -5508,9 +5539,9 @@ diff -NurpP --minimal linux-3.6.10/fs/nfs/super.c linux-3.6.10-vs2.3.4.5/fs/nfs/
  
                /*
                 * options that take text values
-diff -NurpP --minimal linux-3.6.10/fs/nfsd/auth.c linux-3.6.10-vs2.3.4.5/fs/nfsd/auth.c
---- linux-3.6.10/fs/nfsd/auth.c        2012-07-22 23:39:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/nfsd/auth.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/nfsd/auth.c linux-3.7-vs2.3.5.1/fs/nfsd/auth.c
+--- linux-3.7/fs/nfsd/auth.c   2012-07-22 21:39:41.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/nfsd/auth.c 2012-12-11 15:56:32.000000000 +0000
 @@ -2,6 +2,7 @@
  
  #include <linux/sched.h>
@@ -5529,9 +5560,9 @@ diff -NurpP --minimal linux-3.6.10/fs/nfsd/auth.c linux-3.6.10-vs2.3.4.5/fs/nfsd
  
        rqgi = rqstp->rq_cred.cr_group_info;
  
-diff -NurpP --minimal linux-3.6.10/fs/nfsd/nfs3xdr.c linux-3.6.10-vs2.3.4.5/fs/nfsd/nfs3xdr.c
---- linux-3.6.10/fs/nfsd/nfs3xdr.c     2012-05-21 18:07:26.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/nfsd/nfs3xdr.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/nfsd/nfs3xdr.c linux-3.7-vs2.3.5.1/fs/nfsd/nfs3xdr.c
+--- linux-3.7/fs/nfsd/nfs3xdr.c        2012-05-21 16:07:26.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/nfsd/nfs3xdr.c      2012-12-11 15:56:32.000000000 +0000
 @@ -7,6 +7,7 @@
   */
  
@@ -5582,9 +5613,9 @@ diff -NurpP --minimal linux-3.6.10/fs/nfsd/nfs3xdr.c linux-3.6.10-vs2.3.4.5/fs/n
        if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) {
                p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN);
        } else {
-diff -NurpP --minimal linux-3.6.10/fs/nfsd/nfs4xdr.c linux-3.6.10-vs2.3.4.5/fs/nfsd/nfs4xdr.c
---- linux-3.6.10/fs/nfsd/nfs4xdr.c     2012-10-04 15:27:40.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/nfsd/nfs4xdr.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/nfsd/nfs4xdr.c linux-3.7-vs2.3.5.1/fs/nfsd/nfs4xdr.c
+--- linux-3.7/fs/nfsd/nfs4xdr.c        2012-12-11 15:47:35.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/nfsd/nfs4xdr.c      2012-12-11 15:56:32.000000000 +0000
 @@ -46,6 +46,7 @@
  #include <linux/utsname.h>
  #include <linux/pagemap.h>
@@ -5614,9 +5645,9 @@ diff -NurpP --minimal linux-3.6.10/fs/nfsd/nfs4xdr.c linux-3.6.10-vs2.3.4.5/fs/n
                if (status == nfserr_resource)
                        goto out_resource;
                if (status)
-diff -NurpP --minimal linux-3.6.10/fs/nfsd/nfsxdr.c linux-3.6.10-vs2.3.4.5/fs/nfsd/nfsxdr.c
---- linux-3.6.10/fs/nfsd/nfsxdr.c      2011-05-22 16:17:53.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/nfsd/nfsxdr.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/nfsd/nfsxdr.c linux-3.7-vs2.3.5.1/fs/nfsd/nfsxdr.c
+--- linux-3.7/fs/nfsd/nfsxdr.c 2011-05-22 14:17:53.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/nfsd/nfsxdr.c       2012-12-11 15:56:32.000000000 +0000
 @@ -6,6 +6,7 @@
  
  #include "xdr.h"
@@ -5665,9 +5696,9 @@ diff -NurpP --minimal linux-3.6.10/fs/nfsd/nfsxdr.c linux-3.6.10-vs2.3.4.5/fs/nf
  
        if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) {
                *p++ = htonl(NFS_MAXPATHLEN);
-diff -NurpP --minimal linux-3.6.10/fs/ocfs2/dlmglue.c linux-3.6.10-vs2.3.4.5/fs/ocfs2/dlmglue.c
---- linux-3.6.10/fs/ocfs2/dlmglue.c    2012-07-22 23:39:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ocfs2/dlmglue.c  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ocfs2/dlmglue.c linux-3.7-vs2.3.5.1/fs/ocfs2/dlmglue.c
+--- linux-3.7/fs/ocfs2/dlmglue.c       2012-07-22 21:39:41.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ocfs2/dlmglue.c     2012-12-11 15:56:32.000000000 +0000
 @@ -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);
@@ -5684,9 +5715,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/dlmglue.c linux-3.6.10-vs2.3.4.5/fs/
        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.6.10/fs/ocfs2/dlmglue.h linux-3.6.10-vs2.3.4.5/fs/ocfs2/dlmglue.h
---- linux-3.6.10/fs/ocfs2/dlmglue.h    2010-10-21 13:07:50.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ocfs2/dlmglue.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ocfs2/dlmglue.h linux-3.7-vs2.3.5.1/fs/ocfs2/dlmglue.h
+--- linux-3.7/fs/ocfs2/dlmglue.h       2010-10-21 11:07:50.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ocfs2/dlmglue.h     2012-12-11 15:56:32.000000000 +0000
 @@ -46,7 +46,8 @@ struct ocfs2_meta_lvb {
        __be16       lvb_inlink;
        __be32       lvb_iattr;
@@ -5697,9 +5728,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/dlmglue.h linux-3.6.10-vs2.3.4.5/fs/
  };
  
  #define OCFS2_QINFO_LVB_VERSION 1
-diff -NurpP --minimal linux-3.6.10/fs/ocfs2/file.c linux-3.6.10-vs2.3.4.5/fs/ocfs2/file.c
---- linux-3.6.10/fs/ocfs2/file.c       2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ocfs2/file.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ocfs2/file.c linux-3.7-vs2.3.5.1/fs/ocfs2/file.c
+--- linux-3.7/fs/ocfs2/file.c  2012-12-11 15:47:35.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ocfs2/file.c        2012-12-11 15:56:32.000000000 +0000
 @@ -1123,7 +1123,7 @@ int ocfs2_setattr(struct dentry *dentry,
                attr->ia_valid &= ~ATTR_SIZE;
  
@@ -5709,9 +5740,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/file.c linux-3.6.10-vs2.3.4.5/fs/ocf
        if (!(attr->ia_valid & OCFS2_VALID_ATTRS))
                return 0;
  
-diff -NurpP --minimal linux-3.6.10/fs/ocfs2/inode.c linux-3.6.10-vs2.3.4.5/fs/ocfs2/inode.c
---- linux-3.6.10/fs/ocfs2/inode.c      2012-07-22 23:39:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ocfs2/inode.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ocfs2/inode.c linux-3.7-vs2.3.5.1/fs/ocfs2/inode.c
+--- linux-3.7/fs/ocfs2/inode.c 2012-07-22 21:39:41.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ocfs2/inode.c       2012-12-11 15:56:32.000000000 +0000
 @@ -28,6 +28,7 @@
  #include <linux/highmem.h>
  #include <linux/pagemap.h>
@@ -5720,7 +5751,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/inode.c linux-3.6.10-vs2.3.4.5/fs/oc
  
  #include <asm/byteorder.h>
  
-@@ -78,11 +79,13 @@ void ocfs2_set_inode_flags(struct inode 
+@@ -78,11 +79,13 @@ void ocfs2_set_inode_flags(struct inode
  {
        unsigned int flags = OCFS2_I(inode)->ip_attr;
  
@@ -5735,7 +5766,7 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/inode.c linux-3.6.10-vs2.3.4.5/fs/oc
  
        if (flags & OCFS2_SYNC_FL)
                inode->i_flags |= S_SYNC;
-@@ -92,25 +95,44 @@ void ocfs2_set_inode_flags(struct inode 
+@@ -92,25 +95,44 @@ void ocfs2_set_inode_flags(struct inode
                inode->i_flags |= S_NOATIME;
        if (flags & OCFS2_DIRSYNC_FL)
                inode->i_flags |= S_DIRSYNC;
@@ -5808,9 +5839,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/inode.c linux-3.6.10-vs2.3.4.5/fs/oc
  
        /* Fast symlinks will have i_size but no allocated clusters. */
        if (S_ISLNK(inode->i_mode) && !fe->i_clusters) {
-diff -NurpP --minimal linux-3.6.10/fs/ocfs2/inode.h linux-3.6.10-vs2.3.4.5/fs/ocfs2/inode.h
---- linux-3.6.10/fs/ocfs2/inode.h      2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/ocfs2/inode.h    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ocfs2/inode.h linux-3.7-vs2.3.5.1/fs/ocfs2/inode.h
+--- linux-3.7/fs/ocfs2/inode.h 2012-01-09 15:14:55.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ocfs2/inode.h       2012-12-11 15:56:32.000000000 +0000
 @@ -154,6 +154,7 @@ struct buffer_head *ocfs2_bread(struct i
  
  void ocfs2_set_inode_flags(struct inode *inode);
@@ -5819,9 +5850,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/inode.h linux-3.6.10-vs2.3.4.5/fs/oc
  
  static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode)
  {
-diff -NurpP --minimal linux-3.6.10/fs/ocfs2/ioctl.c linux-3.6.10-vs2.3.4.5/fs/ocfs2/ioctl.c
---- linux-3.6.10/fs/ocfs2/ioctl.c      2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ocfs2/ioctl.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ocfs2/ioctl.c linux-3.7-vs2.3.5.1/fs/ocfs2/ioctl.c
+--- linux-3.7/fs/ocfs2/ioctl.c 2012-10-04 13:27:41.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ocfs2/ioctl.c       2012-12-11 15:56:32.000000000 +0000
 @@ -76,7 +76,41 @@ static int ocfs2_get_inode_attr(struct i
        return status;
  }
@@ -5885,9 +5916,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/ioctl.c linux-3.6.10-vs2.3.4.5/fs/oc
  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.6.10/fs/ocfs2/namei.c linux-3.6.10-vs2.3.4.5/fs/ocfs2/namei.c
---- linux-3.6.10/fs/ocfs2/namei.c      2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ocfs2/namei.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ocfs2/namei.c linux-3.7-vs2.3.5.1/fs/ocfs2/namei.c
+--- linux-3.7/fs/ocfs2/namei.c 2012-10-04 13:27:41.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ocfs2/namei.c       2012-12-11 15:56:32.000000000 +0000
 @@ -41,6 +41,7 @@
  #include <linux/slab.h>
  #include <linux/highmem.h>
@@ -5918,9 +5949,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/namei.c linux-3.6.10-vs2.3.4.5/fs/oc
        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.6.10/fs/ocfs2/ocfs2.h linux-3.6.10-vs2.3.4.5/fs/ocfs2/ocfs2.h
---- linux-3.6.10/fs/ocfs2/ocfs2.h      2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/ocfs2/ocfs2.h    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ocfs2/ocfs2.h linux-3.7-vs2.3.5.1/fs/ocfs2/ocfs2.h
+--- linux-3.7/fs/ocfs2/ocfs2.h 2012-01-09 15:14:55.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ocfs2/ocfs2.h       2012-12-11 15:56:32.000000000 +0000
 @@ -272,6 +272,7 @@ enum ocfs2_mount_options
                                                     writes */
        OCFS2_MOUNT_HB_NONE = 1 << 13, /* No heartbeat */
@@ -5929,9 +5960,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/ocfs2.h linux-3.6.10-vs2.3.4.5/fs/oc
  };
  
  #define OCFS2_OSB_SOFT_RO                     0x0001
-diff -NurpP --minimal linux-3.6.10/fs/ocfs2/ocfs2_fs.h linux-3.6.10-vs2.3.4.5/fs/ocfs2/ocfs2_fs.h
---- linux-3.6.10/fs/ocfs2/ocfs2_fs.h   2011-05-22 16:17:53.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ocfs2/ocfs2_fs.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ocfs2/ocfs2_fs.h linux-3.7-vs2.3.5.1/fs/ocfs2/ocfs2_fs.h
+--- linux-3.7/fs/ocfs2/ocfs2_fs.h      2011-05-22 14:17:53.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ocfs2/ocfs2_fs.h    2012-12-11 15:56:32.000000000 +0000
 @@ -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 */
@@ -5944,9 +5975,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/ocfs2_fs.h linux-3.6.10-vs2.3.4.5/fs
  #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.6.10/fs/ocfs2/super.c linux-3.6.10-vs2.3.4.5/fs/ocfs2/super.c
---- linux-3.6.10/fs/ocfs2/super.c      2012-05-21 18:07:26.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/ocfs2/super.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/ocfs2/super.c linux-3.7-vs2.3.5.1/fs/ocfs2/super.c
+--- linux-3.7/fs/ocfs2/super.c 2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/ocfs2/super.c       2012-12-11 15:56:32.000000000 +0000
 @@ -185,6 +185,7 @@ enum {
        Opt_coherency_full,
        Opt_resv_level,
@@ -6010,9 +6041,9 @@ diff -NurpP --minimal linux-3.6.10/fs/ocfs2/super.c linux-3.6.10-vs2.3.4.5/fs/oc
                default:
                        mlog(ML_ERROR,
                             "Unrecognized mount option \"%s\" "
-diff -NurpP --minimal linux-3.6.10/fs/open.c linux-3.6.10-vs2.3.4.5/fs/open.c
---- linux-3.6.10/fs/open.c     2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/open.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/open.c linux-3.7-vs2.3.5.1/fs/open.c
+--- linux-3.7/fs/open.c        2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/open.c      2012-12-11 15:56:32.000000000 +0000
 @@ -30,6 +30,11 @@
  #include <linux/fs_struct.h>
  #include <linux/ima.h>
@@ -6038,7 +6069,7 @@ diff -NurpP --minimal linux-3.6.10/fs/open.c linux-3.6.10-vs2.3.4.5/fs/open.c
        inode = path.dentry->d_inode;
  
        /* For directories it's -EISDIR, for other non-regulars - -EINVAL */
-@@ -495,6 +506,10 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
+@@ -492,6 +503,10 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
  
        error = user_path_at(dfd, filename, LOOKUP_FOLLOW, &path);
        if (!error) {
@@ -6049,7 +6080,7 @@ diff -NurpP --minimal linux-3.6.10/fs/open.c linux-3.6.10-vs2.3.4.5/fs/open.c
                error = chmod_common(&path, mode);
                path_put(&path);
        }
-@@ -522,13 +537,13 @@ static int chown_common(struct path *pat
+@@ -519,13 +534,13 @@ static int chown_common(struct path *pat
                if (!uid_valid(uid))
                        return -EINVAL;
                newattrs.ia_valid |= ATTR_UID;
@@ -6065,7 +6096,7 @@ diff -NurpP --minimal linux-3.6.10/fs/open.c linux-3.6.10-vs2.3.4.5/fs/open.c
        }
        if (!S_ISDIR(inode->i_mode))
                newattrs.ia_valid |=
-@@ -561,6 +576,18 @@ SYSCALL_DEFINE5(fchownat, int, dfd, cons
+@@ -558,6 +573,18 @@ SYSCALL_DEFINE5(fchownat, int, dfd, cons
        error = mnt_want_write(path.mnt);
        if (error)
                goto out_release;
@@ -6084,17 +6115,9 @@ diff -NurpP --minimal linux-3.6.10/fs/open.c linux-3.6.10-vs2.3.4.5/fs/open.c
        error = chown_common(&path, user, group);
        mnt_drop_write(path.mnt);
  out_release:
-@@ -809,6 +836,7 @@ static void __put_unused_fd(struct files
-       __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.6.10/fs/proc/array.c linux-3.6.10-vs2.3.4.5/fs/proc/array.c
---- linux-3.6.10/fs/proc/array.c       2012-07-22 23:39:42.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/proc/array.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/proc/array.c linux-3.7-vs2.3.5.1/fs/proc/array.c
+--- linux-3.7/fs/proc/array.c  2012-07-22 21:39:42.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/proc/array.c        2012-12-11 15:56:32.000000000 +0000
 @@ -82,6 +82,8 @@
  #include <linux/ptrace.h>
  #include <linux/tracehook.h>
@@ -6182,7 +6205,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/array.c linux-3.6.10-vs2.3.4.5/fs/pro
  int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
                        struct pid *pid, struct task_struct *task)
  {
-@@ -362,6 +404,7 @@ int proc_pid_status(struct seq_file *m, 
+@@ -362,6 +404,7 @@ int proc_pid_status(struct seq_file *m,
        task_cap(m, task);
        task_cpus_allowed(m, task);
        cpuset_task_status_allowed(m, task);
@@ -6190,7 +6213,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/array.c linux-3.6.10-vs2.3.4.5/fs/pro
        task_context_switch_counts(m, task);
        return 0;
  }
-@@ -471,6 +514,17 @@ static int do_task_stat(struct seq_file 
+@@ -471,6 +514,17 @@ static int do_task_stat(struct seq_file
        /* convert nsec -> ticks */
        start_time = nsec_to_clock_t(start_time);
  
@@ -6208,9 +6231,9 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/array.c linux-3.6.10-vs2.3.4.5/fs/pro
        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.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc/base.c
---- linux-3.6.10/fs/proc/base.c        2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/proc/base.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/proc/base.c linux-3.7-vs2.3.5.1/fs/proc/base.c
+--- linux-3.7/fs/proc/base.c   2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/proc/base.c 2012-12-11 19:34:49.000000000 +0000
 @@ -85,6 +85,8 @@
  #include <linux/fs_struct.h>
  #include <linux/slab.h>
@@ -6220,34 +6243,33 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
  #ifdef CONFIG_HARDWALL
  #include <asm/hardwall.h>
  #endif
-@@ -941,11 +943,16 @@ static ssize_t oom_adjust_write(struct f
-               goto err_task_lock;
-       }
+@@ -950,11 +952,15 @@ static ssize_t oom_adj_write(struct file
+               oom_adj = (oom_adj * OOM_SCORE_ADJ_MAX) / -OOM_DISABLE;
  
--      if (oom_adjust < task->signal->oom_adj && !capable(CAP_SYS_RESOURCE)) {
-+      if (oom_adjust < task->signal->oom_adj &&
-+              !vx_capable(CAP_SYS_RESOURCE, VXC_OOM_ADJUST)) {
+       if (oom_adj < task->signal->oom_score_adj &&
+-          !capable(CAP_SYS_RESOURCE)) {
++          !vx_capable(CAP_SYS_RESOURCE, VXC_OOM_ADJUST)) {
                err = -EACCES;
                goto err_sighand;
        }
  
 +      /* prevent guest processes from circumventing the oom killer */
-+      if (vx_current_xid() && (oom_adjust == OOM_DISABLE))
-+              oom_adjust = OOM_ADJUST_MIN;
++      if (vx_current_xid() && (oom_adj == OOM_DISABLE))
++              oom_adj = OOM_ADJUST_MIN;
 +
        /*
-        * Warn that /proc/pid/oom_adj is deprecated, see
-        * Documentation/feature-removal-schedule.txt.
-@@ -1548,6 +1555,8 @@ struct inode *proc_pid_make_inode(struct
+        * /proc/pid/oom_adj is provided for legacy purposes, ask users to use
+        * /proc/pid/oom_score_adj instead.
+@@ -1534,6 +1540,8 @@ struct inode *proc_pid_make_inode(struct
                inode->i_gid = cred->egid;
                rcu_read_unlock();
        }
 +      /* procfs is xid tagged */
-+      inode->i_tag = (tag_t)vx_task_xid(task);
++      i_tag_write(inode, (tag_t)vx_task_xid(task));
        security_task_to_inode(task, inode);
  
  out:
-@@ -1593,6 +1602,8 @@ int pid_getattr(struct vfsmount *mnt, st
+@@ -1579,6 +1587,8 @@ int pid_getattr(struct vfsmount *mnt, st
  
  /* dentry stuff */
  
@@ -6256,7 +6278,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
  /*
   *    Exceptional case: normally we are not allowed to unhash a busy
   * directory. In this case, however, we can do it - no aliasing problems
-@@ -1621,6 +1632,12 @@ int pid_revalidate(struct dentry *dentry
+@@ -1607,6 +1617,12 @@ int pid_revalidate(struct dentry *dentry
        task = get_proc_task(inode);
  
        if (task) {
@@ -6269,7 +6291,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
                if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
                    task_dumpable(task)) {
                        rcu_read_lock();
-@@ -1637,6 +1654,7 @@ int pid_revalidate(struct dentry *dentry
+@@ -1623,6 +1639,7 @@ int pid_revalidate(struct dentry *dentry
                put_task_struct(task);
                return 1;
        }
@@ -6277,7 +6299,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
        d_drop(dentry);
        return 0;
  }
-@@ -2457,6 +2475,13 @@ static struct dentry *proc_pident_lookup
+@@ -2065,6 +2082,13 @@ static struct dentry *proc_pident_lookup
        if (!task)
                goto out_no_task;
  
@@ -6291,7 +6313,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
        /*
         * Yes, it does not scale. And it should not. Don't add
         * new entries into /proc/<tgid>/ without very good reasons.
-@@ -2842,7 +2867,7 @@ out_iput:
+@@ -2451,7 +2475,7 @@ out_iput:
  static struct dentry *proc_base_lookup(struct inode *dir, struct dentry *dentry)
  {
        struct dentry *error;
@@ -6300,7 +6322,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
        const struct pid_entry *p, *last;
  
        error = ERR_PTR(-ENOENT);
-@@ -3017,6 +3042,9 @@ static int proc_pid_personality(struct s
+@@ -2639,6 +2663,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;
  
@@ -6310,24 +6332,24 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
  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),
-@@ -3083,6 +3111,8 @@ static const struct pid_entry tgid_base_
+@@ -2705,6 +2732,8 @@ static const struct pid_entry tgid_base_
  #ifdef CONFIG_CGROUPS
        REG("cgroup",  S_IRUGO, proc_cgroup_operations),
  #endif
 +      INF("vinfo",      S_IRUGO, proc_pid_vx_info),
 +      INF("ninfo",      S_IRUGO, proc_pid_nx_info),
        INF("oom_score",  S_IRUGO, proc_oom_score),
-       REG("oom_adj",    S_IRUGO|S_IWUSR, proc_oom_adjust_operations),
+       REG("oom_adj",    S_IRUGO|S_IWUSR, proc_oom_adj_operations),
        REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations),
-@@ -3106,6 +3136,7 @@ static const struct pid_entry tgid_base_
-       REG("uid_map",    S_IRUGO|S_IWUSR, proc_uid_map_operations),
+@@ -2729,6 +2758,7 @@ static const struct pid_entry tgid_base_
        REG("gid_map",    S_IRUGO|S_IWUSR, proc_gid_map_operations),
+       REG("projid_map", S_IRUGO|S_IWUSR, proc_projid_map_operations),
  #endif
 +      ONE("nsproxy",  S_IRUGO, proc_pid_nsproxy),
  };
  
  static int proc_tgid_base_readdir(struct file * filp,
-@@ -3300,7 +3331,7 @@ retry:
+@@ -2923,7 +2953,7 @@ retry:
        iter.task = NULL;
        pid = find_ge_pid(iter.tgid, ns);
        if (pid) {
@@ -6336,7 +6358,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
                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
-@@ -3330,7 +3361,7 @@ static int proc_pid_fill_cache(struct fi
+@@ -2953,7 +2983,7 @@ static int proc_pid_fill_cache(struct fi
        struct tgid_iter iter)
  {
        char name[PROC_NUMBUF];
@@ -6345,7 +6367,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
        return proc_fill_cache(filp, dirent, filldir, name, len,
                                proc_pid_instantiate, iter.task, NULL);
  }
-@@ -3354,7 +3385,7 @@ int proc_pid_readdir(struct file * filp,
+@@ -2977,7 +3007,7 @@ int proc_pid_readdir(struct file * filp,
                goto out_no_task;
        nr = filp->f_pos - FIRST_PROCESS_ENTRY;
  
@@ -6354,7 +6376,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
        if (!reaper)
                goto out_no_task;
  
-@@ -3376,6 +3407,8 @@ int proc_pid_readdir(struct file * filp,
+@@ -2999,6 +3029,8 @@ int proc_pid_readdir(struct file * filp,
                        __filldir = fake_filldir;
  
                filp->f_pos = iter.tgid + TGID_OFFSET;
@@ -6363,7 +6385,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
                if (proc_pid_fill_cache(filp, dirent, __filldir, iter) < 0) {
                        put_task_struct(iter.task);
                        goto out;
-@@ -3537,6 +3570,8 @@ static struct dentry *proc_task_lookup(s
+@@ -3161,6 +3193,8 @@ static struct dentry *proc_task_lookup(s
        tid = name_to_int(dentry);
        if (tid == ~0U)
                goto out;
@@ -6372,9 +6394,9 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/base.c linux-3.6.10-vs2.3.4.5/fs/proc
  
        ns = dentry->d_sb->s_fs_info;
        rcu_read_lock();
-diff -NurpP --minimal linux-3.6.10/fs/proc/generic.c linux-3.6.10-vs2.3.4.5/fs/proc/generic.c
---- linux-3.6.10/fs/proc/generic.c     2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/proc/generic.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/proc/generic.c linux-3.7-vs2.3.5.1/fs/proc/generic.c
+--- linux-3.7/fs/proc/generic.c        2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/proc/generic.c      2012-12-11 19:15:21.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <linux/bitops.h>
  #include <linux/spinlock.h>
@@ -6392,10 +6414,10 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/generic.c linux-3.6.10-vs2.3.4.5/fs/p
                if (!memcmp(dentry->d_name.name, de->name, de->namelen)) {
                        pde_get(de);
                        spin_unlock(&proc_subdir_lock);
-                       error = -EINVAL;
+                       error = -ENOMEM;
                        inode = proc_get_inode(dir->i_sb, de);
 +                      /* generic proc entries belong to the host */
-+                      inode->i_tag = 0;
++                      i_tag_write(inode, 0);
                        goto out_unlock;
                }
        }
@@ -6416,15 +6438,15 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/generic.c linux-3.6.10-vs2.3.4.5/fs/p
                                filp->f_pos++;
                                next = de->next;
                                pde_put(de);
-@@ -626,6 +634,7 @@ static struct proc_dir_entry *__proc_cre
+@@ -625,6 +633,7 @@ static struct proc_dir_entry *__proc_cre
+       ent->namelen = len;
+       ent->mode = mode;
        ent->nlink = nlink;
-       atomic_set(&ent->count, 1);
-       ent->pde_users = 0;
 +      ent->vx_flags = IATTR_PROC_DEFAULT;
+       atomic_set(&ent->count, 1);
        spin_lock_init(&ent->pde_unload_lock);
-       ent->pde_unload_completion = NULL;
        INIT_LIST_HEAD(&ent->pde_openers);
-@@ -649,7 +658,8 @@ struct proc_dir_entry *proc_symlink(cons
+@@ -648,7 +657,8 @@ struct proc_dir_entry *proc_symlink(cons
                                kfree(ent->data);
                                kfree(ent);
                                ent = NULL;
@@ -6434,10 +6456,10 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/generic.c linux-3.6.10-vs2.3.4.5/fs/p
                } else {
                        kfree(ent);
                        ent = NULL;
-diff -NurpP --minimal linux-3.6.10/fs/proc/inode.c linux-3.6.10-vs2.3.4.5/fs/proc/inode.c
---- linux-3.6.10/fs/proc/inode.c       2012-07-22 23:39:42.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/proc/inode.c     2012-10-04 18:47:00.000000000 +0200
-@@ -458,6 +458,8 @@ struct inode *proc_get_inode(struct supe
+diff -NurpP --minimal linux-3.7/fs/proc/inode.c linux-3.7-vs2.3.5.1/fs/proc/inode.c
+--- linux-3.7/fs/proc/inode.c  2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/proc/inode.c        2012-12-11 15:56:32.000000000 +0000
+@@ -457,6 +457,8 @@ struct inode *proc_get_inode(struct supe
                        inode->i_uid = de->uid;
                        inode->i_gid = de->gid;
                }
@@ -6446,19 +6468,19 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/inode.c linux-3.6.10-vs2.3.4.5/fs/pro
                if (de->size)
                        inode->i_size = de->size;
                if (de->nlink)
-diff -NurpP --minimal linux-3.6.10/fs/proc/internal.h linux-3.6.10-vs2.3.4.5/fs/proc/internal.h
---- linux-3.6.10/fs/proc/internal.h    2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/proc/internal.h  2012-10-04 18:47:00.000000000 +0200
-@@ -10,6 +10,8 @@
-  */
+diff -NurpP --minimal linux-3.7/fs/proc/internal.h linux-3.7-vs2.3.5.1/fs/proc/internal.h
+--- linux-3.7/fs/proc/internal.h       2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/proc/internal.h     2012-12-11 15:56:32.000000000 +0000
+@@ -11,6 +11,8 @@
  
+ #include <linux/sched.h>
  #include <linux/proc_fs.h>
 +#include <linux/vs_pid.h>
 +
  struct  ctl_table_header;
+ struct  mempolicy;
  
- extern struct proc_dir_entry proc_root;
-@@ -52,6 +54,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);
@@ -6468,7 +6490,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/internal.h linux-3.6.10-vs2.3.4.5/fs/
  extern loff_t mem_lseek(struct file *file, loff_t offset, int orig);
  
  extern const struct file_operations proc_tid_children_operations;
-@@ -81,11 +86,16 @@ static inline struct pid *proc_pid(struc
+@@ -87,11 +92,16 @@ static inline struct pid *proc_pid(struc
        return PROC_I(inode)->pid;
  }
  
@@ -6486,9 +6508,9 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/internal.h linux-3.6.10-vs2.3.4.5/fs/
  static inline int proc_fd(struct inode *inode)
  {
        return PROC_I(inode)->fd;
-diff -NurpP --minimal linux-3.6.10/fs/proc/loadavg.c linux-3.6.10-vs2.3.4.5/fs/proc/loadavg.c
---- linux-3.6.10/fs/proc/loadavg.c     2009-09-10 15:26:23.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/proc/loadavg.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/proc/loadavg.c linux-3.7-vs2.3.5.1/fs/proc/loadavg.c
+--- linux-3.7/fs/proc/loadavg.c        2009-09-10 13:26:23.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/proc/loadavg.c      2012-12-11 15:56:32.000000000 +0000
 @@ -12,15 +12,27 @@
  
  static int loadavg_proc_show(struct seq_file *m, void *v)
@@ -6518,9 +6540,9 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/loadavg.c linux-3.6.10-vs2.3.4.5/fs/p
                task_active_pid_ns(current)->last_pid);
        return 0;
  }
-diff -NurpP --minimal linux-3.6.10/fs/proc/meminfo.c linux-3.6.10-vs2.3.4.5/fs/proc/meminfo.c
---- linux-3.6.10/fs/proc/meminfo.c     2012-01-09 16:14:55.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/proc/meminfo.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/proc/meminfo.c linux-3.7-vs2.3.5.1/fs/proc/meminfo.c
+--- linux-3.7/fs/proc/meminfo.c        2012-01-09 15:14:55.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/proc/meminfo.c      2012-12-11 15:56:32.000000000 +0000
 @@ -39,7 +39,8 @@ static int meminfo_proc_show(struct seq_
        allowed = ((totalram_pages - hugetlb_total_pages())
                * sysctl_overcommit_ratio / 100) + total_swap_pages;
@@ -6531,9 +6553,9 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/meminfo.c linux-3.6.10-vs2.3.4.5/fs/p
                        total_swapcache_pages - i.bufferram;
        if (cached < 0)
                cached = 0;
-diff -NurpP --minimal linux-3.6.10/fs/proc/root.c linux-3.6.10-vs2.3.4.5/fs/proc/root.c
---- linux-3.6.10/fs/proc/root.c        2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/proc/root.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/proc/root.c linux-3.7-vs2.3.5.1/fs/proc/root.c
+--- linux-3.7/fs/proc/root.c   2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/proc/root.c 2012-12-11 15:56:32.000000000 +0000
 @@ -19,9 +19,14 @@
  #include <linux/mount.h>
  #include <linux/pid_namespace.h>
@@ -6565,31 +6587,60 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/root.c linux-3.6.10-vs2.3.4.5/fs/proc
        .name           = "/proc",
  };
  
-diff -NurpP --minimal linux-3.6.10/fs/proc/stat.c linux-3.6.10-vs2.3.4.5/fs/proc/stat.c
---- linux-3.6.10/fs/proc/stat.c        2012-12-11 12:36:58.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/proc/stat.c      2012-11-06 18:43:41.000000000 +0100
-@@ -9,6 +9,7 @@
+diff -NurpP --minimal linux-3.7/fs/proc/stat.c linux-3.7-vs2.3.5.1/fs/proc/stat.c
+--- linux-3.7/fs/proc/stat.c   2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/proc/stat.c 2012-12-12 13:54:26.000000000 +0000
+@@ -9,8 +9,10 @@
  #include <linux/slab.h>
  #include <linux/time.h>
  #include <linux/irqnr.h>
 +#include <linux/vserver/cvirt.h>
  #include <asm/cputime.h>
  #include <linux/tick.h>
-@@ -92,6 +93,10 @@ static int show_stat(struct seq_file *p,
++#include <linux/cpuset.h>
+ #ifndef arch_irq_stat_cpu
+ #define arch_irq_stat_cpu(cpu) 0
+@@ -87,14 +89,26 @@ static int show_stat(struct seq_file *p,
+       u64 sum_softirq = 0;
+       unsigned int per_softirq_sums[NR_SOFTIRQS] = {0};
+       struct timespec boottime;
++      cpumask_var_t cpus_allowed;
++      bool virt_cpu = vx_flags(VXF_VIRT_CPU, 0);
+       user = nice = system = idle = iowait =
                irq = softirq = steal = 0;
        guest = guest_nice = 0;
        getboottime(&boottime);
 +
 +      if (vx_flags(VXF_VIRT_UPTIME, 0))
 +              vx_vsi_boottime(&boottime);
++
++      if (virt_cpu)
++              cpuset_cpus_allowed(current, cpus_allowed);
 +
        jif = boottime.tv_sec;
  
        for_each_possible_cpu(i) {
-diff -NurpP --minimal linux-3.6.10/fs/proc/uptime.c linux-3.6.10-vs2.3.4.5/fs/proc/uptime.c
---- linux-3.6.10/fs/proc/uptime.c      2012-03-19 19:47:26.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/proc/uptime.c    2012-10-04 18:47:00.000000000 +0200
++              if (virt_cpu && !cpumask_test_cpu(i, cpus_allowed))
++                      continue;
++
+               user += kcpustat_cpu(i).cpustat[CPUTIME_USER];
+               nice += kcpustat_cpu(i).cpustat[CPUTIME_NICE];
+               system += kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
+@@ -131,6 +145,9 @@ static int show_stat(struct seq_file *p,
+       seq_putc(p, '\n');
+       for_each_online_cpu(i) {
++              if (virt_cpu && !cpumask_test_cpu(i, cpus_allowed))
++                      continue;
++
+               /* Copy values here to work around gcc-2.95.3, gcc-2.96 */
+               user = kcpustat_cpu(i).cpustat[CPUTIME_USER];
+               nice = kcpustat_cpu(i).cpustat[CPUTIME_NICE];
+diff -NurpP --minimal linux-3.7/fs/proc/uptime.c linux-3.7-vs2.3.5.1/fs/proc/uptime.c
+--- linux-3.7/fs/proc/uptime.c 2012-03-19 18:47:26.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/proc/uptime.c       2012-12-11 15:56:32.000000000 +0000
 @@ -5,6 +5,7 @@
  #include <linux/seq_file.h>
  #include <linux/time.h>
@@ -6609,10 +6660,10 @@ diff -NurpP --minimal linux-3.6.10/fs/proc/uptime.c linux-3.6.10-vs2.3.4.5/fs/pr
        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.6.10/fs/proc_namespace.c linux-3.6.10-vs2.3.4.5/fs/proc_namespace.c
---- linux-3.6.10/fs/proc_namespace.c   2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/proc_namespace.c 2012-12-10 18:17:40.000000000 +0100
-@@ -44,6 +44,8 @@ static int show_sb_opts(struct seq_file 
+diff -NurpP --minimal linux-3.7/fs/proc_namespace.c linux-3.7-vs2.3.5.1/fs/proc_namespace.c
+--- linux-3.7/fs/proc_namespace.c      2012-10-04 13:27:41.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/proc_namespace.c    2012-12-11 15:56:32.000000000 +0000
+@@ -44,6 +44,8 @@ static int show_sb_opts(struct seq_file
                { MS_SYNCHRONOUS, ",sync" },
                { MS_DIRSYNC, ",dirsync" },
                { MS_MANDLOCK, ",mand" },
@@ -6700,7 +6751,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc_namespace.c linux-3.6.10-vs2.3.4.5/fs
        seq_printf(m, "%i %i %u:%u ", r->mnt_id, r->mnt_parent->mnt_id,
                   MAJOR(sb->s_dev), MINOR(sb->s_dev));
        if (sb->s_op->show_path)
-@@ -187,6 +240,17 @@ static int show_vfsstat(struct seq_file 
+@@ -187,6 +240,17 @@ static int show_vfsstat(struct seq_file
        struct super_block *sb = mnt_path.dentry->d_sb;
        int err = 0;
  
@@ -6718,7 +6769,7 @@ diff -NurpP --minimal linux-3.6.10/fs/proc_namespace.c linux-3.6.10-vs2.3.4.5/fs
        /* device */
        if (sb->s_op->show_devname) {
                seq_puts(m, "device ");
-@@ -203,7 +267,7 @@ static int show_vfsstat(struct seq_file 
+@@ -203,7 +267,7 @@ static int show_vfsstat(struct seq_file
        seq_puts(m, " mounted on ");
        seq_path(m, &mnt_path, " \t\n\\");
        seq_putc(m, ' ');
@@ -6727,10 +6778,10 @@ diff -NurpP --minimal linux-3.6.10/fs/proc_namespace.c linux-3.6.10-vs2.3.4.5/fs
        /* file system type */
        seq_puts(m, "with fstype ");
        show_type(m, sb);
-diff -NurpP --minimal linux-3.6.10/fs/quota/dquot.c linux-3.6.10-vs2.3.4.5/fs/quota/dquot.c
---- linux-3.6.10/fs/quota/dquot.c      2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/quota/dquot.c    2012-10-04 18:47:00.000000000 +0200
-@@ -1580,6 +1580,9 @@ int __dquot_alloc_space(struct inode *in
+diff -NurpP --minimal linux-3.7/fs/quota/dquot.c linux-3.7-vs2.3.5.1/fs/quota/dquot.c
+--- linux-3.7/fs/quota/dquot.c 2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/quota/dquot.c       2012-12-11 15:56:32.000000000 +0000
+@@ -1582,6 +1582,9 @@ int __dquot_alloc_space(struct inode *in
        struct dquot **dquots = inode->i_dquot;
        int reserve = flags & DQUOT_SPACE_RESERVE;
  
@@ -6740,7 +6791,7 @@ diff -NurpP --minimal linux-3.6.10/fs/quota/dquot.c linux-3.6.10-vs2.3.4.5/fs/qu
        /*
         * First test before acquiring mutex - solves deadlocks when we
         * re-enter the quota code and are already holding the mutex
-@@ -1635,6 +1638,9 @@ int dquot_alloc_inode(const struct inode
+@@ -1637,6 +1640,9 @@ int dquot_alloc_inode(const struct inode
        struct dquot_warn warn[MAXQUOTAS];
        struct dquot * const *dquots = inode->i_dquot;
  
@@ -6750,7 +6801,7 @@ diff -NurpP --minimal linux-3.6.10/fs/quota/dquot.c linux-3.6.10-vs2.3.4.5/fs/qu
        /* First test before acquiring mutex - solves deadlocks when we
           * re-enter the quota code and are already holding the mutex */
        if (!dquot_active(inode))
-@@ -1706,6 +1712,8 @@ void __dquot_free_space(struct inode *in
+@@ -1708,6 +1714,8 @@ void __dquot_free_space(struct inode *in
        struct dquot **dquots = inode->i_dquot;
        int reserve = flags & DQUOT_SPACE_RESERVE;
  
@@ -6759,7 +6810,7 @@ diff -NurpP --minimal linux-3.6.10/fs/quota/dquot.c linux-3.6.10-vs2.3.4.5/fs/qu
        /* First test before acquiring mutex - solves deadlocks when we
           * re-enter the quota code and are already holding the mutex */
        if (!dquot_active(inode)) {
-@@ -1750,6 +1758,8 @@ void dquot_free_inode(const struct inode
+@@ -1752,6 +1760,8 @@ void dquot_free_inode(const struct inode
        struct dquot_warn warn[MAXQUOTAS];
        struct dquot * const *dquots = inode->i_dquot;
  
@@ -6768,9 +6819,9 @@ diff -NurpP --minimal linux-3.6.10/fs/quota/dquot.c linux-3.6.10-vs2.3.4.5/fs/qu
        /* 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.6.10/fs/quota/quota.c linux-3.6.10-vs2.3.4.5/fs/quota/quota.c
---- linux-3.6.10/fs/quota/quota.c      2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/quota/quota.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/quota/quota.c linux-3.7-vs2.3.5.1/fs/quota/quota.c
+--- linux-3.7/fs/quota/quota.c 2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/quota/quota.c       2012-12-11 22:07:44.000000000 +0000
 @@ -8,6 +8,7 @@
  #include <linux/fs.h>
  #include <linux/namei.h>
@@ -6788,7 +6839,7 @@ diff -NurpP --minimal linux-3.6.10/fs/quota/quota.c linux-3.6.10-vs2.3.4.5/fs/qu
                        return -EPERM;
        }
  
-@@ -291,6 +292,46 @@ static int do_quotactl(struct super_bloc
+@@ -307,6 +308,46 @@ static int do_quotactl(struct super_bloc
        }
  }
  
@@ -6835,13 +6886,13 @@ diff -NurpP --minimal linux-3.6.10/fs/quota/quota.c linux-3.6.10-vs2.3.4.5/fs/qu
  /* Return 1 if 'cmd' will block on frozen filesystem */
  static int quotactl_cmd_write(int cmd)
  {
-@@ -323,6 +364,22 @@ static struct super_block *quotactl_bloc
+@@ -339,6 +380,22 @@ static struct super_block *quotactl_bloc
        putname(tmp);
        if (IS_ERR(bdev))
                return ERR_CAST(bdev);
 +#if defined(CONFIG_BLK_DEV_VROOT) || defined(CONFIG_BLK_DEV_VROOT_MODULE)
 +      if (bdev && bdev->bd_inode &&
-+                      imajor(bdev->bd_inode) == VROOT_MAJOR) {
++              imajor(bdev->bd_inode) == VROOT_MAJOR) {
 +              struct block_device *bdnew = (void *)-EINVAL;
 +
 +              if (vroot_get_real_bdev)
@@ -6858,366 +6909,9 @@ diff -NurpP --minimal linux-3.6.10/fs/quota/quota.c linux-3.6.10-vs2.3.4.5/fs/qu
        if (quotactl_cmd_write(cmd))
                sb = get_super_thawed(bdev);
        else
-diff -NurpP --minimal linux-3.6.10/fs/reiserfs/file.c linux-3.6.10-vs2.3.4.5/fs/reiserfs/file.c
---- linux-3.6.10/fs/reiserfs/file.c    2012-05-21 18:07:26.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/reiserfs/file.c  2012-10-04 18:47:00.000000000 +0200
-@@ -319,5 +319,6 @@ const struct inode_operations reiserfs_f
-       .listxattr = reiserfs_listxattr,
-       .removexattr = reiserfs_removexattr,
-       .permission = reiserfs_permission,
-+      .sync_flags = reiserfs_sync_flags,
-       .get_acl = reiserfs_get_acl,
- };
-diff -NurpP --minimal linux-3.6.10/fs/reiserfs/inode.c linux-3.6.10-vs2.3.4.5/fs/reiserfs/inode.c
---- linux-3.6.10/fs/reiserfs/inode.c   2012-12-11 12:36:58.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/reiserfs/inode.c 2012-12-08 01:36:33.000000000 +0100
-@@ -18,6 +18,7 @@
- #include <linux/writeback.h>
- #include <linux/quotaops.h>
- #include <linux/swap.h>
-+#include <linux/vs_tag.h>
- int reiserfs_commit_write(struct file *f, struct page *page,
-                         unsigned from, unsigned to);
-@@ -1131,6 +1132,8 @@ static void init_inode(struct inode *ino
-       struct buffer_head *bh;
-       struct item_head *ih;
-       __u32 rdev;
-+      uid_t uid;
-+      gid_t gid;
-       //int version = ITEM_VERSION_1;
-       bh = PATH_PLAST_BUFFER(path);
-@@ -1151,12 +1154,13 @@ static void init_inode(struct inode *ino
-                   (struct stat_data_v1 *)B_I_PITEM(bh, ih);
-               unsigned long blocks;
-+              uid = sd_v1_uid(sd);
-+              gid = sd_v1_gid(sd);
-+
-               set_inode_item_key_version(inode, KEY_FORMAT_3_5);
-               set_inode_sd_version(inode, STAT_DATA_V1);
-               inode->i_mode = sd_v1_mode(sd);
-               set_nlink(inode, sd_v1_nlink(sd));
--              inode->i_uid = sd_v1_uid(sd);
--              inode->i_gid = sd_v1_gid(sd);
-               inode->i_size = sd_v1_size(sd);
-               inode->i_atime.tv_sec = sd_v1_atime(sd);
-               inode->i_mtime.tv_sec = sd_v1_mtime(sd);
-@@ -1198,11 +1202,12 @@ static void init_inode(struct inode *ino
-               // (directories and symlinks)
-               struct stat_data *sd = (struct stat_data *)B_I_PITEM(bh, ih);
-+              uid    = sd_v2_uid(sd);
-+              gid    = sd_v2_gid(sd);
-+
-               inode->i_mode = sd_v2_mode(sd);
-               set_nlink(inode, sd_v2_nlink(sd));
--              inode->i_uid = sd_v2_uid(sd);
-               inode->i_size = sd_v2_size(sd);
--              inode->i_gid = sd_v2_gid(sd);
-               inode->i_mtime.tv_sec = sd_v2_mtime(sd);
-               inode->i_atime.tv_sec = sd_v2_atime(sd);
-               inode->i_ctime.tv_sec = sd_v2_ctime(sd);
-@@ -1232,6 +1237,10 @@ static void init_inode(struct inode *ino
-               sd_attrs_to_i_attrs(sd_v2_attrs(sd), inode);
-       }
-+      inode->i_uid = INOTAG_UID(DX_TAG(inode), uid, gid);
-+      inode->i_gid = INOTAG_GID(DX_TAG(inode), uid, gid);
-+      inode->i_tag = INOTAG_TAG(DX_TAG(inode), uid, gid, 0);
-+
-       pathrelse(path);
-       if (S_ISREG(inode->i_mode)) {
-               inode->i_op = &reiserfs_file_inode_operations;
-@@ -1254,13 +1263,15 @@ static void init_inode(struct inode *ino
- static void inode2sd(void *sd, struct inode *inode, loff_t size)
- {
-       struct stat_data *sd_v2 = (struct stat_data *)sd;
-+      uid_t uid = TAGINO_UID(DX_TAG(inode), inode->i_uid, inode->i_tag);
-+      gid_t gid = TAGINO_GID(DX_TAG(inode), inode->i_gid, inode->i_tag);
-       __u16 flags;
-+      set_sd_v2_uid(sd_v2, uid);
-+      set_sd_v2_gid(sd_v2, gid);
-       set_sd_v2_mode(sd_v2, inode->i_mode);
-       set_sd_v2_nlink(sd_v2, inode->i_nlink);
--      set_sd_v2_uid(sd_v2, inode->i_uid);
-       set_sd_v2_size(sd_v2, size);
--      set_sd_v2_gid(sd_v2, inode->i_gid);
-       set_sd_v2_mtime(sd_v2, inode->i_mtime.tv_sec);
-       set_sd_v2_atime(sd_v2, inode->i_atime.tv_sec);
-       set_sd_v2_ctime(sd_v2, inode->i_ctime.tv_sec);
-@@ -2869,14 +2880,19 @@ int reiserfs_commit_write(struct file *f
- void sd_attrs_to_i_attrs(__u16 sd_attrs, struct inode *inode)
- {
-       if (reiserfs_attrs(inode->i_sb)) {
--              if (sd_attrs & REISERFS_SYNC_FL)
--                      inode->i_flags |= S_SYNC;
--              else
--                      inode->i_flags &= ~S_SYNC;
-               if (sd_attrs & REISERFS_IMMUTABLE_FL)
-                       inode->i_flags |= S_IMMUTABLE;
-               else
-                       inode->i_flags &= ~S_IMMUTABLE;
-+              if (sd_attrs & REISERFS_IXUNLINK_FL)
-+                      inode->i_flags |= S_IXUNLINK;
-+              else
-+                      inode->i_flags &= ~S_IXUNLINK;
-+
-+              if (sd_attrs & REISERFS_SYNC_FL)
-+                      inode->i_flags |= S_SYNC;
-+              else
-+                      inode->i_flags &= ~S_SYNC;
-               if (sd_attrs & REISERFS_APPEND_FL)
-                       inode->i_flags |= S_APPEND;
-               else
-@@ -2889,6 +2905,15 @@ void sd_attrs_to_i_attrs(__u16 sd_attrs,
-                       REISERFS_I(inode)->i_flags |= i_nopack_mask;
-               else
-                       REISERFS_I(inode)->i_flags &= ~i_nopack_mask;
-+
-+              if (sd_attrs & REISERFS_BARRIER_FL)
-+                      inode->i_vflags |= V_BARRIER;
-+              else
-+                      inode->i_vflags &= ~V_BARRIER;
-+              if (sd_attrs & REISERFS_COW_FL)
-+                      inode->i_vflags |= V_COW;
-+              else
-+                      inode->i_vflags &= ~V_COW;
-       }
- }
-@@ -2899,6 +2924,11 @@ void i_attrs_to_sd_attrs(struct inode *i
-                       *sd_attrs |= REISERFS_IMMUTABLE_FL;
-               else
-                       *sd_attrs &= ~REISERFS_IMMUTABLE_FL;
-+              if (inode->i_flags & S_IXUNLINK)
-+                      *sd_attrs |= REISERFS_IXUNLINK_FL;
-+              else
-+                      *sd_attrs &= ~REISERFS_IXUNLINK_FL;
-+
-               if (inode->i_flags & S_SYNC)
-                       *sd_attrs |= REISERFS_SYNC_FL;
-               else
-@@ -2911,6 +2941,15 @@ void i_attrs_to_sd_attrs(struct inode *i
-                       *sd_attrs |= REISERFS_NOTAIL_FL;
-               else
-                       *sd_attrs &= ~REISERFS_NOTAIL_FL;
-+
-+              if (inode->i_vflags & V_BARRIER)
-+                      *sd_attrs |= REISERFS_BARRIER_FL;
-+              else
-+                      *sd_attrs &= ~REISERFS_BARRIER_FL;
-+              if (inode->i_vflags & V_COW)
-+                      *sd_attrs |= REISERFS_COW_FL;
-+              else
-+                      *sd_attrs &= ~REISERFS_COW_FL;
-       }
- }
-@@ -3155,7 +3194,8 @@ int reiserfs_setattr(struct dentry *dent
-       }
-       if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
--          (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) {
-+          (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid) ||
-+          (ia_valid & ATTR_TAG && attr->ia_tag != inode->i_tag)) {
-               struct reiserfs_transaction_handle th;
-               int jbegin_count =
-                   2 *
-@@ -3186,6 +3226,9 @@ int reiserfs_setattr(struct dentry *dent
-                       inode->i_uid = attr->ia_uid;
-               if (attr->ia_valid & ATTR_GID)
-                       inode->i_gid = attr->ia_gid;
-+                              if ((attr->ia_valid & ATTR_TAG) &&
-+                                      IS_TAGGED(inode))
-+                                      inode->i_tag = attr->ia_tag;
-               mark_inode_dirty(inode);
-               error = journal_end(&th, inode->i_sb, jbegin_count);
-               if (error)
-diff -NurpP --minimal linux-3.6.10/fs/reiserfs/ioctl.c linux-3.6.10-vs2.3.4.5/fs/reiserfs/ioctl.c
---- linux-3.6.10/fs/reiserfs/ioctl.c   2012-05-21 18:07:27.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/reiserfs/ioctl.c 2012-10-04 18:47:00.000000000 +0200
-@@ -11,6 +11,21 @@
- #include <linux/pagemap.h>
- #include <linux/compat.h>
-+
-+int reiserfs_sync_flags(struct inode *inode, int flags, int vflags)
-+{
-+      __u16 sd_attrs = 0;
-+
-+      inode->i_flags = flags;
-+      inode->i_vflags = vflags;
-+
-+      i_attrs_to_sd_attrs(inode, &sd_attrs);
-+      REISERFS_I(inode)->i_attrs = sd_attrs;
-+      inode->i_ctime = CURRENT_TIME_SEC;
-+      mark_inode_dirty(inode);
-+      return 0;
-+}
-+
- /*
-  * reiserfs_ioctl - handler for ioctl for inode
-  * supported commands:
-@@ -22,7 +37,7 @@
- long reiserfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
- {
-       struct inode *inode = filp->f_path.dentry->d_inode;
--      unsigned int flags;
-+      unsigned int flags, oldflags;
-       int err = 0;
-       reiserfs_write_lock(inode->i_sb);
-@@ -47,6 +62,7 @@ long reiserfs_ioctl(struct file *filp, u
-               flags = REISERFS_I(inode)->i_attrs;
-               i_attrs_to_sd_attrs(inode, (__u16 *) & flags);
-+              flags &= REISERFS_FL_USER_VISIBLE;
-               err = put_user(flags, (int __user *)arg);
-               break;
-       case REISERFS_IOC_SETFLAGS:{
-@@ -67,6 +83,10 @@ long reiserfs_ioctl(struct file *filp, u
-                               err = -EFAULT;
-                               goto setflags_out;
-                       }
-+                      if (IS_BARRIER(inode)) {
-+                              vxwprintk_task(1, "messing with the barrier.");
-+                              return -EACCES;
-+                      }
-                       /*
-                        * Is it quota file? Do not allow user to mess with it
-                        */
-@@ -91,6 +111,10 @@ long reiserfs_ioctl(struct file *filp, u
-                                       goto setflags_out;
-                               }
-                       }
-+
-+                      oldflags = REISERFS_I(inode)->i_attrs;
-+                      flags &= REISERFS_FL_USER_MODIFIABLE;
-+                      flags |= oldflags & ~REISERFS_FL_USER_MODIFIABLE;
-                       sd_attrs_to_i_attrs(flags, inode);
-                       REISERFS_I(inode)->i_attrs = flags;
-                       inode->i_ctime = CURRENT_TIME_SEC;
-diff -NurpP --minimal linux-3.6.10/fs/reiserfs/namei.c linux-3.6.10-vs2.3.4.5/fs/reiserfs/namei.c
---- linux-3.6.10/fs/reiserfs/namei.c   2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/reiserfs/namei.c 2012-10-04 18:47:00.000000000 +0200
-@@ -18,6 +18,7 @@
- #include "acl.h"
- #include "xattr.h"
- #include <linux/quotaops.h>
-+#include <linux/vs_tag.h>
- #define INC_DIR_INODE_NLINK(i) if (i->i_nlink != 1) { inc_nlink(i); if (i->i_nlink >= REISERFS_LINK_MAX) set_nlink(i, 1); }
- #define DEC_DIR_INODE_NLINK(i) if (i->i_nlink != 1) drop_nlink(i);
-@@ -362,6 +363,7 @@ static struct dentry *reiserfs_lookup(st
-       if (retval == IO_ERROR) {
-               return ERR_PTR(-EIO);
-       }
-+              dx_propagate_tag(nd, inode);
-       return d_splice_alias(inode, dentry);
- }
-diff -NurpP --minimal linux-3.6.10/fs/reiserfs/reiserfs.h linux-3.6.10-vs2.3.4.5/fs/reiserfs/reiserfs.h
---- linux-3.6.10/fs/reiserfs/reiserfs.h        2012-07-22 23:39:42.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/reiserfs/reiserfs.h      2012-10-04 18:47:00.000000000 +0200
-@@ -549,6 +549,7 @@ enum reiserfs_mount_options {
-       REISERFS_EXPOSE_PRIVROOT,
-       REISERFS_BARRIER_NONE,
-       REISERFS_BARRIER_FLUSH,
-+      REISERFS_TAGGED,
-       /* Actions on error */
-       REISERFS_ERROR_PANIC,
-@@ -1548,6 +1549,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 |      \
-@@ -1557,6 +1563,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 {
-@@ -2647,6 +2656,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.6.10/fs/reiserfs/super.c linux-3.6.10-vs2.3.4.5/fs/reiserfs/super.c
---- linux-3.6.10/fs/reiserfs/super.c   2012-12-11 12:36:58.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/reiserfs/super.c 2012-12-08 01:36:33.000000000 +0100
-@@ -1020,6 +1020,14 @@ static int reiserfs_parse_options(struct
-               {"user_xattr",.setmask = 1 << REISERFS_UNSUPPORTED_OPT},
-               {"nouser_xattr",.clrmask = 1 << REISERFS_UNSUPPORTED_OPT},
- #endif
-+#ifndef CONFIG_TAGGING_NONE
-+              {"tagxid",.setmask = 1 << REISERFS_TAGGED},
-+              {"tag",.setmask = 1 << REISERFS_TAGGED},
-+              {"notag",.clrmask = 1 << REISERFS_TAGGED},
-+#endif
-+#ifdef CONFIG_PROPAGATE
-+              {"tag",.arg_required = 'T',.values = NULL},
-+#endif
- #ifdef CONFIG_REISERFS_FS_POSIX_ACL
-               {"acl",.setmask = 1 << REISERFS_POSIXACL},
-               {"noacl",.clrmask = 1 << REISERFS_POSIXACL},
-@@ -1338,6 +1346,14 @@ static int reiserfs_remount(struct super
-       handle_quota_files(s, qf_names, &qfmt);
- #endif
-+      if ((mount_options & (1 << REISERFS_TAGGED)) &&
-+              !(s->s_flags & MS_TAGGED)) {
-+              reiserfs_warning(s, "super-vs01",
-+                      "reiserfs: tagging not permitted on remount.");
-+              err = -EINVAL;
-+              goto out_err;
-+      }
-+
-       handle_attrs(s);
-       /* Add options that are safe here */
-@@ -1831,6 +1847,10 @@ static int reiserfs_fill_super(struct su
-               goto error_unlocked;
-       }
-+      /* map mount option tagxid */
-+      if (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_TAGGED))
-+              s->s_flags |= MS_TAGGED;
-+
-       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.6.10/fs/reiserfs/xattr.c linux-3.6.10-vs2.3.4.5/fs/reiserfs/xattr.c
---- linux-3.6.10/fs/reiserfs/xattr.c   2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/reiserfs/xattr.c 2012-10-04 18:47:00.000000000 +0200
-@@ -40,6 +40,7 @@
- #include <linux/errno.h>
- #include <linux/gfp.h>
- #include <linux/fs.h>
-+#include <linux/mount.h>
- #include <linux/file.h>
- #include <linux/pagemap.h>
- #include <linux/xattr.h>
-diff -NurpP --minimal linux-3.6.10/fs/stat.c linux-3.6.10-vs2.3.4.5/fs/stat.c
---- linux-3.6.10/fs/stat.c     2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/stat.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/stat.c linux-3.7-vs2.3.5.1/fs/stat.c
+--- linux-3.7/fs/stat.c        2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/stat.c      2012-12-11 15:56:32.000000000 +0000
 @@ -26,6 +26,7 @@ void generic_fillattr(struct inode *inod
        stat->nlink = inode->i_nlink;
        stat->uid = inode->i_uid;
@@ -7226,9 +6920,9 @@ diff -NurpP --minimal linux-3.6.10/fs/stat.c linux-3.6.10-vs2.3.4.5/fs/stat.c
        stat->rdev = inode->i_rdev;
        stat->size = i_size_read(inode);
        stat->atime = inode->i_atime;
-diff -NurpP --minimal linux-3.6.10/fs/statfs.c linux-3.6.10-vs2.3.4.5/fs/statfs.c
---- linux-3.6.10/fs/statfs.c   2012-07-22 23:39:42.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/statfs.c 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/statfs.c linux-3.7-vs2.3.5.1/fs/statfs.c
+--- linux-3.7/fs/statfs.c      2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/statfs.c    2012-12-11 15:56:32.000000000 +0000
 @@ -7,6 +7,8 @@
  #include <linux/statfs.h>
  #include <linux/security.h>
@@ -7247,9 +6941,9 @@ diff -NurpP --minimal linux-3.6.10/fs/statfs.c linux-3.6.10-vs2.3.4.5/fs/statfs.
        return retval;
  }
  
-diff -NurpP --minimal linux-3.6.10/fs/super.c linux-3.6.10-vs2.3.4.5/fs/super.c
---- linux-3.6.10/fs/super.c    2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/super.c  2012-10-04 19:06:05.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/super.c linux-3.7-vs2.3.5.1/fs/super.c
+--- linux-3.7/fs/super.c       2012-12-11 15:47:36.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/super.c     2012-12-11 15:56:32.000000000 +0000
 @@ -34,6 +34,8 @@
  #include <linux/cleancache.h>
  #include <linux/fsnotify.h>
@@ -7259,7 +6953,7 @@ diff -NurpP --minimal linux-3.6.10/fs/super.c linux-3.6.10-vs2.3.4.5/fs/super.c
  #include "internal.h"
  
  
-@@ -1148,6 +1150,13 @@ mount_fs(struct file_system_type *type, 
+@@ -1119,6 +1121,13 @@ mount_fs(struct file_system_type *type,
        WARN_ON(sb->s_bdi == &default_backing_dev_info);
        sb->s_flags |= MS_BORN;
  
@@ -7273,9 +6967,9 @@ diff -NurpP --minimal linux-3.6.10/fs/super.c linux-3.6.10-vs2.3.4.5/fs/super.c
        error = security_sb_kern_mount(sb, flags, secdata);
        if (error)
                goto out_sb;
-diff -NurpP --minimal linux-3.6.10/fs/sysfs/mount.c linux-3.6.10-vs2.3.4.5/fs/sysfs/mount.c
---- linux-3.6.10/fs/sysfs/mount.c      2012-10-04 15:27:41.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/sysfs/mount.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/sysfs/mount.c linux-3.7-vs2.3.5.1/fs/sysfs/mount.c
+--- linux-3.7/fs/sysfs/mount.c 2012-10-04 13:27:41.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/sysfs/mount.c       2012-12-11 15:56:32.000000000 +0000
 @@ -47,7 +47,7 @@ static int sysfs_fill_super(struct super
  
        sb->s_blocksize = PAGE_CACHE_SIZE;
@@ -7285,9 +6979,9 @@ diff -NurpP --minimal linux-3.6.10/fs/sysfs/mount.c linux-3.6.10-vs2.3.4.5/fs/sy
        sb->s_op = &sysfs_ops;
        sb->s_time_gran = 1;
  
-diff -NurpP --minimal linux-3.6.10/fs/utimes.c linux-3.6.10-vs2.3.4.5/fs/utimes.c
---- linux-3.6.10/fs/utimes.c   2012-07-22 23:39:42.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/utimes.c 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/utimes.c linux-3.7-vs2.3.5.1/fs/utimes.c
+--- linux-3.7/fs/utimes.c      2012-12-11 15:47:37.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/utimes.c    2012-12-11 15:56:32.000000000 +0000
 @@ -8,6 +8,8 @@
  #include <linux/stat.h>
  #include <linux/utime.h>
@@ -7317,18 +7011,18 @@ diff -NurpP --minimal linux-3.6.10/fs/utimes.c linux-3.6.10-vs2.3.4.5/fs/utimes.
        if (times && times[0].tv_nsec == UTIME_NOW &&
                     times[1].tv_nsec == UTIME_NOW)
                times = NULL;
-diff -NurpP --minimal linux-3.6.10/fs/xattr.c linux-3.6.10-vs2.3.4.5/fs/xattr.c
---- linux-3.6.10/fs/xattr.c    2012-10-04 15:27:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xattr.c  2012-10-04 18:47:00.000000000 +0200
-@@ -20,6 +20,7 @@
- #include <linux/fsnotify.h>
+diff -NurpP --minimal linux-3.7/fs/xattr.c linux-3.7-vs2.3.5.1/fs/xattr.c
+--- linux-3.7/fs/xattr.c       2012-12-11 15:47:37.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xattr.c     2012-12-11 17:16:31.000000000 +0000
+@@ -21,6 +21,7 @@
  #include <linux/audit.h>
  #include <linux/vmalloc.h>
+ #include <linux/posix_acl_xattr.h>
 +#include <linux/mount.h>
  
  #include <asm/uaccess.h>
  
-@@ -51,7 +52,7 @@ xattr_permission(struct inode *inode, co
+@@ -52,7 +53,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)) {
@@ -7337,9 +7031,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xattr.c linux-3.6.10-vs2.3.4.5/fs/xattr.c
                        return (mask & MAY_WRITE) ? -EPERM : -ENODATA;
                return 0;
        }
-diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_dinode.h linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_dinode.h
---- linux-3.6.10/fs/xfs/xfs_dinode.h   2012-10-04 15:27:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_dinode.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_dinode.h linux-3.7-vs2.3.5.1/fs/xfs/xfs_dinode.h
+--- linux-3.7/fs/xfs/xfs_dinode.h      2012-10-04 13:27:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_dinode.h    2012-12-11 15:56:32.000000000 +0000
 @@ -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 */
@@ -7380,9 +7074,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_dinode.h linux-3.6.10-vs2.3.4.5/fs
 +#define XFS_DIVFLAG_COW               0x02
  
  #endif        /* __XFS_DINODE_H__ */
-diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_fs.h linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_fs.h
---- linux-3.6.10/fs/xfs/xfs_fs.h       2011-10-24 18:45:31.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_fs.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_fs.h linux-3.7-vs2.3.5.1/fs/xfs/xfs_fs.h
+--- linux-3.7/fs/xfs/xfs_fs.h  2011-10-24 16:45:31.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_fs.h        2012-12-11 15:56:32.000000000 +0000
 @@ -67,6 +67,9 @@ struct fsxattr {
  #define XFS_XFLAG_EXTSZINHERIT        0x00001000      /* inherit inode extent size */
  #define XFS_XFLAG_NODEFRAG    0x00002000      /* do not defragment */
@@ -7403,9 +7097,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_fs.h linux-3.6.10-vs2.3.4.5/fs/xfs
        __u32           bs_dmevmask;    /* DMIG event mask              */
        __u16           bs_dmstate;     /* DMIG state info              */
        __u16           bs_aextents;    /* attribute number of extents  */
-diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_ialloc.c linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_ialloc.c
---- linux-3.6.10/fs/xfs/xfs_ialloc.c   2012-10-04 15:27:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_ialloc.c 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_ialloc.c linux-3.7-vs2.3.5.1/fs/xfs/xfs_ialloc.c
+--- linux-3.7/fs/xfs/xfs_ialloc.c      2012-12-11 15:47:37.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_ialloc.c    2012-12-11 15:56:32.000000000 +0000
 @@ -37,7 +37,6 @@
  #include "xfs_error.h"
  #include "xfs_bmap.h"
@@ -7414,9 +7108,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_ialloc.c linux-3.6.10-vs2.3.4.5/fs
  /*
   * Allocation group level functions.
   */
-diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_inode.c linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_inode.c
---- linux-3.6.10/fs/xfs/xfs_inode.c    2012-10-04 15:27:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_inode.c  2012-11-16 22:43:16.000000000 +0100
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_inode.c linux-3.7-vs2.3.5.1/fs/xfs/xfs_inode.c
+--- linux-3.7/fs/xfs/xfs_inode.c       2012-12-11 15:47:37.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_inode.c     2012-12-11 22:20:23.000000000 +0000
 @@ -16,6 +16,7 @@
   * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
   */
@@ -7565,7 +7259,7 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_inode.c linux-3.6.10-vs2.3.4.5/fs/
        flags = XFS_ILOG_CORE;
        switch (mode & S_IFMT) {
        case S_IFIFO:
-@@ -1667,6 +1695,7 @@ xfs_ifree(
+@@ -1668,6 +1696,7 @@ xfs_ifree(
        }
        ip->i_d.di_mode = 0;            /* mark incore inode as free */
        ip->i_d.di_flags = 0;
@@ -7573,15 +7267,15 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_inode.c linux-3.6.10-vs2.3.4.5/fs/
        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;
-@@ -1833,6 +1862,7 @@ xfs_iroot_realloc(
+@@ -1834,7 +1863,6 @@ xfs_iroot_realloc(
        return;
  }
  
-+#include <linux/vs_tag.h>
+-
  /*
   * This is called when the amount of space needed for if_data
-@@ -2521,7 +2551,8 @@ xfs_iflush_int(
+  * is increased or decreased.  The change in size is indicated by
+@@ -2522,7 +2550,8 @@ xfs_iflush_int(
         * because if the inode is dirty at all the core must
         * be.
         */
@@ -7591,9 +7285,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_inode.c linux-3.6.10-vs2.3.4.5/fs/
  
        /* 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.6.10/fs/xfs/xfs_inode.h linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_inode.h
---- linux-3.6.10/fs/xfs/xfs_inode.h    2012-10-04 15:27:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_inode.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_inode.h linux-3.7-vs2.3.5.1/fs/xfs/xfs_inode.h
+--- linux-3.7/fs/xfs/xfs_inode.h       2012-10-04 13:27:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_inode.h     2012-12-11 15:56:32.000000000 +0000
 @@ -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 */
@@ -7605,7 +7299,7 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_inode.h linux-3.6.10-vs2.3.4.5/fs/
        __uint16_t      di_flushiter;   /* incremented on flush */
        xfs_ictimestamp_t di_atime;     /* time last accessed */
        xfs_ictimestamp_t di_mtime;     /* time last modified */
-@@ -561,7 +563,7 @@ int                xfs_imap_to_bp(struct xfs_mount *, 
+@@ -561,7 +563,7 @@ int                xfs_imap_to_bp(struct xfs_mount *,
  int           xfs_iread(struct xfs_mount *, struct xfs_trans *,
                          struct xfs_inode *, uint);
  void          xfs_dinode_to_disk(struct xfs_dinode *,
@@ -7614,9 +7308,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_inode.h linux-3.6.10-vs2.3.4.5/fs/
  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.6.10/fs/xfs/xfs_ioctl.c linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_ioctl.c
---- linux-3.6.10/fs/xfs/xfs_ioctl.c    2012-10-04 15:27:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_ioctl.c  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_ioctl.c linux-3.7-vs2.3.5.1/fs/xfs/xfs_ioctl.c
+--- linux-3.7/fs/xfs/xfs_ioctl.c       2012-12-11 15:47:37.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_ioctl.c     2012-12-11 15:56:32.000000000 +0000
 @@ -26,7 +26,7 @@
  #include "xfs_bmap_btree.h"
  #include "xfs_dinode.h"
@@ -7685,9 +7379,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_ioctl.c linux-3.6.10-vs2.3.4.5/fs/
                return xfs_ioc_setxflags(ip, filp, arg);
  
        case XFS_IOC_FSSETDM: {
-diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_ioctl.h linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_ioctl.h
---- linux-3.6.10/fs/xfs/xfs_ioctl.h    2011-10-24 18:45:31.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_ioctl.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_ioctl.h linux-3.7-vs2.3.5.1/fs/xfs/xfs_ioctl.h
+--- linux-3.7/fs/xfs/xfs_ioctl.h       2011-10-24 16:45:31.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_ioctl.h     2012-12-11 15:56:32.000000000 +0000
 @@ -70,6 +70,12 @@ xfs_handle_to_dentry(
        void __user             *uhandle,
        u32                     hlen);
@@ -7701,9 +7395,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_ioctl.h linux-3.6.10-vs2.3.4.5/fs/
  extern long
  xfs_file_ioctl(
        struct file             *filp,
-diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_iops.c linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_iops.c
---- linux-3.6.10/fs/xfs/xfs_iops.c     2012-10-04 15:27:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_iops.c   2012-11-16 22:14:53.000000000 +0100
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_iops.c linux-3.7-vs2.3.5.1/fs/xfs/xfs_iops.c
+--- linux-3.7/fs/xfs/xfs_iops.c        2012-10-04 13:27:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_iops.c      2012-12-11 15:56:32.000000000 +0000
 @@ -28,6 +28,7 @@
  #include "xfs_bmap_btree.h"
  #include "xfs_dinode.h"
@@ -7779,9 +7473,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_iops.c linux-3.6.10-vs2.3.4.5/fs/x
  
        switch (inode->i_mode & S_IFMT) {
        case S_IFBLK:
-diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_itable.c linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_itable.c
---- linux-3.6.10/fs/xfs/xfs_itable.c   2012-10-04 15:27:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_itable.c 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_itable.c linux-3.7-vs2.3.5.1/fs/xfs/xfs_itable.c
+--- linux-3.7/fs/xfs/xfs_itable.c      2012-10-04 13:27:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_itable.c    2012-12-11 15:56:32.000000000 +0000
 @@ -96,6 +96,7 @@ xfs_bulkstat_one_int(
        buf->bs_mode = dic->di_mode;
        buf->bs_uid = dic->di_uid;
@@ -7790,9 +7484,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_itable.c linux-3.6.10-vs2.3.4.5/fs
        buf->bs_size = dic->di_size;
        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.6.10/fs/xfs/xfs_linux.h linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_linux.h
---- linux-3.6.10/fs/xfs/xfs_linux.h    2011-10-24 18:45:31.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_linux.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_linux.h linux-3.7-vs2.3.5.1/fs/xfs/xfs_linux.h
+--- linux-3.7/fs/xfs/xfs_linux.h       2011-10-24 16:45:31.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_linux.h     2012-12-11 15:56:32.000000000 +0000
 @@ -121,6 +121,7 @@
  
  #define current_cpu()         (raw_smp_processor_id())
@@ -7801,9 +7495,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_linux.h linux-3.6.10-vs2.3.4.5/fs/
  #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.6.10/fs/xfs/xfs_log_recover.c linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_log_recover.c
---- linux-3.6.10/fs/xfs/xfs_log_recover.c      2012-12-11 12:36:58.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_log_recover.c    2012-12-08 01:36:33.000000000 +0100
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_log_recover.c linux-3.7-vs2.3.5.1/fs/xfs/xfs_log_recover.c
+--- linux-3.7/fs/xfs/xfs_log_recover.c 2012-12-11 15:47:37.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_log_recover.c       2012-12-11 15:56:32.000000000 +0000
 @@ -2359,7 +2359,8 @@ xlog_recover_inode_pass2(
        }
  
@@ -7814,10 +7508,10 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_log_recover.c linux-3.6.10-vs2.3.4
  
        /* the rest is in on-disk format */
        if (item->ri_buf[1].i_len > sizeof(struct xfs_icdinode)) {
-diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_mount.h linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_mount.h
---- linux-3.6.10/fs/xfs/xfs_mount.h    2012-10-04 15:27:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_mount.h  2012-10-04 18:47:00.000000000 +0200
-@@ -251,6 +251,7 @@ typedef struct xfs_mount {
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_mount.h linux-3.7-vs2.3.5.1/fs/xfs/xfs_mount.h
+--- linux-3.7/fs/xfs/xfs_mount.h       2012-12-11 15:47:37.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_mount.h     2012-12-11 15:56:32.000000000 +0000
+@@ -246,6 +246,7 @@ typedef struct xfs_mount {
                                                   allocator */
  #define XFS_MOUNT_NOATTR2     (1ULL << 25)    /* disable use of attr2 format */
  
@@ -7825,10 +7519,10 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_mount.h linux-3.6.10-vs2.3.4.5/fs/
  
  /*
   * Default minimum read and write sizes.
-diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_super.c linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_super.c
---- linux-3.6.10/fs/xfs/xfs_super.c    2012-10-04 15:27:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_super.c  2012-10-04 18:47:00.000000000 +0200
-@@ -112,6 +112,9 @@ mempool_t *xfs_ioend_pool;
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_super.c linux-3.7-vs2.3.5.1/fs/xfs/xfs_super.c
+--- linux-3.7/fs/xfs/xfs_super.c       2012-12-11 15:47:37.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_super.c     2012-12-11 17:36:47.000000000 +0000
+@@ -114,6 +114,9 @@ mempool_t *xfs_ioend_pool;
  #define MNTOPT_NODELAYLOG  "nodelaylog"       /* Delayed logging disabled */
  #define MNTOPT_DISCARD           "discard"    /* Discard unused blocks */
  #define MNTOPT_NODISCARD   "nodiscard"        /* Do not discard unused blocks */
@@ -7838,22 +7532,26 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_super.c linux-3.6.10-vs2.3.4.5/fs/
  
  /*
   * Table driven mount option parser.
-@@ -120,10 +123,14 @@ mempool_t *xfs_ioend_pool;
-  * in the future, too.
-  */
- enum {
-+      Opt_tag, Opt_notag,
-       Opt_barrier, Opt_nobarrier, Opt_err
+@@ -126,6 +129,8 @@ enum {
+       Opt_nobarrier,
+       Opt_inode64,
+       Opt_inode32,
++      Opt_tag,
++      Opt_notag,
+       Opt_err
  };
  
- static const match_table_t tokens = {
+@@ -134,6 +139,9 @@ static const match_table_t tokens = {
+       {Opt_nobarrier, "nobarrier"},
+       {Opt_inode64, "inode64"},
+       {Opt_inode32, "inode32"},
 +      {Opt_tag, "tagxid"},
 +      {Opt_tag, "tag"},
 +      {Opt_notag, "notag"},
-       {Opt_barrier, "barrier"},
-       {Opt_nobarrier, "nobarrier"},
        {Opt_err, NULL}
-@@ -371,6 +378,19 @@ xfs_parseargs(
+ };
+@@ -383,6 +391,19 @@ xfs_parseargs(
                } else if (!strcmp(this_char, "irixsgid")) {
                        xfs_warn(mp,
        "irixsgid is now a sysctl(2) variable, option is deprecated.");
@@ -7873,9 +7571,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_super.c linux-3.6.10-vs2.3.4.5/fs/
                } else {
                        xfs_warn(mp, "unknown mount option [%s].", this_char);
                        return EINVAL;
-@@ -1056,6 +1076,16 @@ xfs_fs_remount(
-               case Opt_nobarrier:
-                       mp->m_flags &= ~XFS_MOUNT_BARRIER;
+@@ -1149,6 +1170,16 @@ xfs_fs_remount(
+               case Opt_inode32:
+                       mp->m_maxagi = xfs_set_inode32(mp);
                        break;
 +              case Opt_tag:
 +                      if (!(sb->s_flags & MS_TAGGED)) {
@@ -7890,7 +7588,7 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_super.c linux-3.6.10-vs2.3.4.5/fs/
                default:
                        /*
                         * Logically we would return an error here to prevent
-@@ -1275,6 +1305,9 @@ xfs_fs_fill_super(
+@@ -1368,6 +1399,9 @@ xfs_fs_fill_super(
        if (error)
                goto out_free_sb;
  
@@ -7900,9 +7598,9 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_super.c linux-3.6.10-vs2.3.4.5/fs/
        /*
         * 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.6.10/fs/xfs/xfs_vnodeops.c linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_vnodeops.c
---- linux-3.6.10/fs/xfs/xfs_vnodeops.c 2012-10-04 15:27:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/fs/xfs/xfs_vnodeops.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/fs/xfs/xfs_vnodeops.c linux-3.7-vs2.3.5.1/fs/xfs/xfs_vnodeops.c
+--- linux-3.7/fs/xfs/xfs_vnodeops.c    2012-10-04 13:27:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/fs/xfs/xfs_vnodeops.c  2012-12-11 15:56:32.000000000 +0000
 @@ -103,6 +103,77 @@ xfs_readlink_bmap(
        return error;
  }
@@ -7981,45 +7679,17 @@ diff -NurpP --minimal linux-3.6.10/fs/xfs/xfs_vnodeops.c linux-3.6.10-vs2.3.4.5/
  int
  xfs_readlink(
        xfs_inode_t     *ip,
-diff -NurpP --minimal linux-3.6.10/include/linux/Kbuild linux-3.6.10-vs2.3.4.5/include/linux/Kbuild
---- linux-3.6.10/include/linux/Kbuild  2012-10-04 15:27:45.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/Kbuild        2012-10-04 18:47:00.000000000 +0200
-@@ -18,6 +18,7 @@ header-y += netfilter_bridge/
- header-y += netfilter_ipv4/
- header-y += netfilter_ipv6/
+diff -NurpP --minimal linux-3.7/include/linux/Kbuild linux-3.7-vs2.3.5.1/include/linux/Kbuild
+--- linux-3.7/include/linux/Kbuild     2012-12-11 15:47:38.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/Kbuild   2012-12-11 16:09:38.000000000 +0000
+@@ -3,3 +3,4 @@ header-y += hdlc/
+ header-y += hsi/
+ header-y += raid/
  header-y += usb/
 +header-y += vserver/
- header-y += wimax/
- objhdr-y += version.h
-diff -NurpP --minimal linux-3.6.10/include/linux/capability.h linux-3.6.10-vs2.3.4.5/include/linux/capability.h
---- linux-3.6.10/include/linux/capability.h    2012-07-22 23:39:43.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/capability.h  2012-10-04 18:47:00.000000000 +0200
-@@ -280,6 +280,7 @@ struct cpu_vfs_cap_data {
-    arbitrary SCSI commands */
- /* Allow setting encryption key on loopback filesystem */
- /* Allow setting zone reclaim policy */
-+/* Allow the selection of a security context */
- #define CAP_SYS_ADMIN        21
-@@ -366,7 +367,12 @@ struct cpu_vfs_cap_data {
- #define CAP_LAST_CAP         CAP_BLOCK_SUSPEND
--#define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
-+/* Allow context manipulations */
-+/* Allow changing context info on files */
-+
-+#define CAP_CONTEXT        63
-+
-+#define cap_valid(x) ((x) >= 0 && ((x) <= CAP_LAST_CAP || (x) == CAP_CONTEXT))
- /*
-  * Bit location of each capability (used by user-space library and kernel)
-diff -NurpP --minimal linux-3.6.10/include/linux/cred.h linux-3.6.10-vs2.3.4.5/include/linux/cred.h
---- linux-3.6.10/include/linux/cred.h  2012-07-22 23:39:43.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/cred.h        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/cred.h linux-3.7-vs2.3.5.1/include/linux/cred.h
+--- linux-3.7/include/linux/cred.h     2012-07-22 21:39:43.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/cred.h   2012-12-11 15:56:32.000000000 +0000
 @@ -157,6 +157,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 *);
@@ -8060,96 +7730,19 @@ diff -NurpP --minimal linux-3.6.10/include/linux/cred.h linux-3.6.10-vs2.3.4.5/i
  /**
   * get_new_cred - Get a reference on a new set of credentials
   * @cred: The new credentials to reference
-diff -NurpP --minimal linux-3.6.10/include/linux/devpts_fs.h linux-3.6.10-vs2.3.4.5/include/linux/devpts_fs.h
---- linux-3.6.10/include/linux/devpts_fs.h     2008-12-25 00:26:37.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/devpts_fs.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/devpts_fs.h linux-3.7-vs2.3.5.1/include/linux/devpts_fs.h
+--- linux-3.7/include/linux/devpts_fs.h        2008-12-24 23:26:37.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/devpts_fs.h      2012-12-11 15:56:32.000000000 +0000
 @@ -45,5 +45,4 @@ static inline void devpts_pty_kill(struc
  
  #endif
  
 -
  #endif /* _LINUX_DEVPTS_FS_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/fs.h linux-3.6.10-vs2.3.4.5/include/linux/fs.h
---- linux-3.6.10/include/linux/fs.h    2012-10-04 15:27:45.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/fs.h  2012-10-04 18:47:00.000000000 +0200
-@@ -225,6 +225,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 */
-+#define MS_TAGGED     (1<<25) /* use generic inode tagging */
-+#define MS_TAGID      (1<<26) /* use specific tag for this mount */
-+#define MS_NOTAGCHECK (1<<27) /* don't check tags */
- #define MS_NOSEC      (1<<28)
- #define MS_BORN               (1<<29)
- #define MS_ACTIVE     (1<<30)
-@@ -256,6 +259,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 */
-+#define S_IXUNLINK    8192    /* Immutable Invert on unlink */
-+
-+/* Linux-VServer related Inode flags */
-+
-+#define V_VALID               1
-+#define V_XATTR               2
-+#define V_BARRIER     4       /* Barrier for chroot() */
-+#define V_COW         8       /* Copy on Write */
- /*
-  * Note that nosuid etc flags are inode-specific: setting some file-system
-@@ -278,12 +289,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)
--#define IS_NOATIME(inode)   __IS_FLG(inode, MS_RDONLY|MS_NOATIME)
--#define IS_I_VERSION(inode)   __IS_FLG(inode, MS_I_VERSION)
-+#define IS_NOATIME(inode)     __IS_FLG(inode, MS_RDONLY|MS_NOATIME)
-+#define IS_I_VERSION(inode)   __IS_FLG(inode, MS_I_VERSION)
-+#define IS_TAGGED(inode)      __IS_FLG(inode, MS_TAGGED)
- #define IS_NOQUOTA(inode)     ((inode)->i_flags & S_NOQUOTA)
- #define IS_APPEND(inode)      ((inode)->i_flags & S_APPEND)
- #define IS_IMMUTABLE(inode)   ((inode)->i_flags & S_IMMUTABLE)
-+#define IS_IXUNLINK(inode)    ((inode)->i_flags & S_IXUNLINK)
-+#define IS_IXORUNLINK(inode)  ((IS_IXUNLINK(inode) ? S_IMMUTABLE : 0) ^ IS_IMMUTABLE(inode))
- #define IS_POSIXACL(inode)    __IS_FLG(inode, MS_POSIXACL)
- #define IS_DEADDIR(inode)     ((inode)->i_flags & S_DEAD)
-@@ -294,6 +308,16 @@ struct inodes_stat_t {
- #define IS_AUTOMOUNT(inode)   ((inode)->i_flags & S_AUTOMOUNT)
- #define IS_NOSEC(inode)               ((inode)->i_flags & S_NOSEC)
-+#define IS_BARRIER(inode)     (S_ISDIR((inode)->i_mode) && ((inode)->i_vflags & V_BARRIER))
-+
-+#ifdef CONFIG_VSERVER_COWBL
-+#  define IS_COW(inode)               (IS_IXUNLINK(inode) && IS_IMMUTABLE(inode))
-+#  define IS_COW_LINK(inode)  (S_ISREG((inode)->i_mode) && ((inode)->i_nlink > 1))
-+#else
-+#  define IS_COW(inode)               (0)
-+#  define IS_COW_LINK(inode)  (0)
-+#endif
-+
- /* 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. */
-@@ -380,11 +404,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 */
-+#define FS_IXUNLINK_FL                        0x08000000 /* Immutable invert on unlink */
- #define FS_RESERVED_FL                        0x80000000 /* reserved for ext2 lib */
--#define FS_FL_USER_VISIBLE            0x0003DFFF /* User visible flags */
--#define FS_FL_USER_MODIFIABLE         0x000380FF /* User modifiable flags */
-+#define FS_BARRIER_FL                 0x04000000 /* Barrier for chroot() */
-+#define FS_COW_FL                     0x20000000 /* Copy on Write marker */
-+#define FS_FL_USER_VISIBLE            0x0103DFFF /* User visible flags */
-+#define FS_FL_USER_MODIFIABLE         0x010380FF /* User modifiable flags */
- #define SYNC_FILE_RANGE_WAIT_BEFORE   1
- #define SYNC_FILE_RANGE_WRITE         2
-@@ -472,6 +499,7 @@ typedef void (dio_iodone_t)(struct kiocb
+diff -NurpP --minimal linux-3.7/include/linux/fs.h linux-3.7-vs2.3.5.1/include/linux/fs.h
+--- linux-3.7/include/linux/fs.h       2012-12-11 15:47:41.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/fs.h     2012-12-11 21:23:03.000000000 +0000
+@@ -210,6 +210,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)
@@ -8157,36 +7750,26 @@ diff -NurpP --minimal linux-3.6.10/include/linux/fs.h linux-3.6.10-vs2.3.4.5/inc
  
  /*
   * This is the Inode Attributes structure, used for notify_change().  It
-@@ -487,6 +515,7 @@ struct iattr {
+@@ -225,6 +226,7 @@ struct iattr {
        umode_t         ia_mode;
        kuid_t          ia_uid;
        kgid_t          ia_gid;
-+      tag_t           ia_tag;
++      ktag_t          ia_tag;
        loff_t          ia_size;
        struct timespec ia_atime;
        struct timespec ia_mtime;
-@@ -500,6 +529,9 @@ struct iattr {
-       struct file     *ia_file;
- };
-+#define ATTR_FLAG_BARRIER     512     /* Barrier for chroot() */
-+#define ATTR_FLAG_IXUNLINK    1024    /* Immutable invert on unlink */
-+
- /*
-  * Includes for diskquotas.
-  */
-@@ -784,7 +816,9 @@ struct inode {
+@@ -522,7 +524,9 @@ struct inode {
        unsigned short          i_opflags;
        kuid_t                  i_uid;
        kgid_t                  i_gid;
 -      unsigned int            i_flags;
-+      tag_t                   i_tag;
++      ktag_t                  i_tag;
 +      unsigned short          i_flags;
 +      unsigned short          i_vflags;
  
  #ifdef CONFIG_FS_POSIX_ACL
        struct posix_acl        *i_acl;
-@@ -813,6 +847,7 @@ struct inode {
+@@ -551,6 +555,7 @@ struct inode {
                unsigned int __i_nlink;
        };
        dev_t                   i_rdev;
@@ -8194,8 +7777,27 @@ diff -NurpP --minimal linux-3.6.10/include/linux/fs.h linux-3.6.10-vs2.3.4.5/inc
        loff_t                  i_size;
        struct timespec         i_atime;
        struct timespec         i_mtime;
-@@ -975,12 +1010,12 @@ static inline void i_gid_write(struct in
+@@ -701,6 +706,11 @@ static inline gid_t i_gid_read(const str
+       return from_kgid(&init_user_ns, inode->i_gid);
+ }
++static inline tag_t i_tag_read(const struct inode *inode)
++{
++      return from_ktag(&init_user_ns, inode->i_tag);
++}
++
+ static inline void i_uid_write(struct inode *inode, uid_t uid)
+ {
+       inode->i_uid = make_kuid(&init_user_ns, uid);
+@@ -711,14 +721,19 @@ static inline void i_gid_write(struct in
+       inode->i_gid = make_kgid(&init_user_ns, gid);
+ }
  
++static inline void i_tag_write(struct inode *inode, tag_t tag)
++{
++      inode->i_tag = make_ktag(&init_user_ns, tag);
++}
++
  static inline unsigned iminor(const struct inode *inode)
  {
 -      return MINOR(inode->i_rdev);
@@ -8209,7 +7811,7 @@ diff -NurpP --minimal linux-3.6.10/include/linux/fs.h linux-3.6.10-vs2.3.4.5/inc
  }
  
  extern struct block_device *I_BDEV(struct inode *inode);
-@@ -1047,6 +1082,7 @@ struct file {
+@@ -785,6 +800,7 @@ struct file {
        loff_t                  f_pos;
        struct fown_struct      f_owner;
        const struct cred       *f_cred;
@@ -8217,7 +7819,7 @@ diff -NurpP --minimal linux-3.6.10/include/linux/fs.h linux-3.6.10-vs2.3.4.5/inc
        struct file_ra_state    f_ra;
  
        u64                     f_version;
-@@ -1194,6 +1230,7 @@ struct file_lock {
+@@ -936,6 +952,7 @@ struct file_lock {
        struct file *fl_file;
        loff_t fl_start;
        loff_t fl_end;
@@ -8225,7 +7827,7 @@ diff -NurpP --minimal linux-3.6.10/include/linux/fs.h linux-3.6.10-vs2.3.4.5/inc
  
        struct fasync_struct *  fl_fasync; /* for lease break notifications */
        /* for lease breaks: */
-@@ -1829,6 +1866,7 @@ struct inode_operations {
+@@ -1570,6 +1587,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 *);
@@ -8233,15 +7835,71 @@ diff -NurpP --minimal linux-3.6.10/include/linux/fs.h linux-3.6.10-vs2.3.4.5/inc
        int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
                      u64 len);
        int (*update_time)(struct inode *, struct timespec *, int);
-@@ -1850,6 +1888,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 *);
+@@ -1584,6 +1602,7 @@ ssize_t rw_copy_check_uvector(int type,
+                             unsigned long nr_segs, unsigned long fast_segs,
                            struct iovec *fast_pointer,
+                             struct iovec **ret_pointer);
 +ssize_t vfs_sendfile(struct file *, struct file *, loff_t *, size_t, loff_t);
  
- struct super_operations {
-       struct inode *(*alloc_inode)(struct super_block *sb);
-@@ -2692,6 +2731,7 @@ extern int dcache_dir_open(struct inode 
+ extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *);
+ extern ssize_t vfs_write(struct file *, const char __user *, size_t, loff_t *);
+@@ -1637,6 +1656,14 @@ struct super_operations {
+ #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 */
++#define S_IXUNLINK    8192    /* Immutable Invert on unlink */
++
++/* Linux-VServer related Inode flags */
++
++#define V_VALID               1
++#define V_XATTR               2
++#define V_BARRIER     4       /* Barrier for chroot() */
++#define V_COW         8       /* Copy on Write */
+ /*
+  * Note that nosuid etc flags are inode-specific: setting some file-system
+@@ -1661,10 +1688,13 @@ struct super_operations {
+ #define IS_MANDLOCK(inode)    __IS_FLG(inode, MS_MANDLOCK)
+ #define IS_NOATIME(inode)     __IS_FLG(inode, MS_RDONLY|MS_NOATIME)
+ #define IS_I_VERSION(inode)   __IS_FLG(inode, MS_I_VERSION)
++#define IS_TAGGED(inode)      __IS_FLG(inode, MS_TAGGED)
+ #define IS_NOQUOTA(inode)     ((inode)->i_flags & S_NOQUOTA)
+ #define IS_APPEND(inode)      ((inode)->i_flags & S_APPEND)
+ #define IS_IMMUTABLE(inode)   ((inode)->i_flags & S_IMMUTABLE)
++#define IS_IXUNLINK(inode)    ((inode)->i_flags & S_IXUNLINK)
++#define IS_IXORUNLINK(inode)  ((IS_IXUNLINK(inode) ? S_IMMUTABLE : 0) ^ IS_IMMUTABLE(inode))
+ #define IS_POSIXACL(inode)    __IS_FLG(inode, MS_POSIXACL)
+ #define IS_DEADDIR(inode)     ((inode)->i_flags & S_DEAD)
+@@ -1675,6 +1705,16 @@ struct super_operations {
+ #define IS_AUTOMOUNT(inode)   ((inode)->i_flags & S_AUTOMOUNT)
+ #define IS_NOSEC(inode)               ((inode)->i_flags & S_NOSEC)
++#define IS_BARRIER(inode)     (S_ISDIR((inode)->i_mode) && ((inode)->i_vflags & V_BARRIER))
++
++#ifdef CONFIG_VSERVER_COWBL
++#  define IS_COW(inode)               (IS_IXUNLINK(inode) && IS_IMMUTABLE(inode))
++#  define IS_COW_LINK(inode)  (S_ISREG((inode)->i_mode) && ((inode)->i_nlink > 1))
++#else
++#  define IS_COW(inode)               (0)
++#  define IS_COW_LINK(inode)  (0)
++#endif
++
+ /*
+  * Inode state bits.  Protected by inode->i_lock
+  *
+@@ -1900,6 +1940,9 @@ extern int rw_verify_area(int, struct fi
+ extern int locks_mandatory_locked(struct inode *);
+ extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t);
++#define ATTR_FLAG_BARRIER     512     /* Barrier for chroot() */
++#define ATTR_FLAG_IXUNLINK    1024    /* Immutable invert on unlink */
++
+ /*
+  * Candidates for mandatory locking have the setgid bit set
+  * but no group execute bit -  an otherwise meaningless combination.
+@@ -2504,6 +2547,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);
@@ -8249,43 +7907,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/fs.h linux-3.6.10-vs2.3.4.5/inc
  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.6.10/include/linux/gfs2_ondisk.h linux-3.6.10-vs2.3.4.5/include/linux/gfs2_ondisk.h
---- linux-3.6.10/include/linux/gfs2_ondisk.h   2012-10-04 15:27:45.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/gfs2_ondisk.h 2012-10-04 18:54:29.000000000 +0200
-@@ -225,6 +225,9 @@ enum {
-       gfs2fl_Sync             = 8,
-       gfs2fl_System           = 9,
-       gfs2fl_TopLevel         = 10,
-+      gfs2fl_IXUnlink         = 16,
-+      gfs2fl_Barrier          = 17,
-+      gfs2fl_Cow              = 18,
-       gfs2fl_TruncInProg      = 29,
-       gfs2fl_InheritDirectio  = 30,
-       gfs2fl_InheritJdata     = 31,
-@@ -242,6 +245,9 @@ enum {
- #define GFS2_DIF_SYNC                 0x00000100
- #define GFS2_DIF_SYSTEM                       0x00000200 /* New in gfs2 */
- #define GFS2_DIF_TOPDIR                       0x00000400 /* New in gfs2 */
-+#define GFS2_DIF_IXUNLINK             0x00010000
-+#define GFS2_DIF_BARRIER              0x00020000
-+#define GFS2_DIF_COW                  0x00040000
- #define GFS2_DIF_TRUNC_IN_PROG                0x20000000 /* New in gfs2 */
- #define GFS2_DIF_INHERIT_DIRECTIO     0x40000000 /* only in gfs1 */
- #define GFS2_DIF_INHERIT_JDATA                0x80000000
-diff -NurpP --minimal linux-3.6.10/include/linux/if_tun.h linux-3.6.10-vs2.3.4.5/include/linux/if_tun.h
---- linux-3.6.10/include/linux/if_tun.h        2010-08-02 16:52:54.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/if_tun.h      2012-10-04 18:47:00.000000000 +0200
-@@ -53,6 +53,7 @@
- #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
- #define TUNGETVNETHDRSZ _IOR('T', 215, int)
- #define TUNSETVNETHDRSZ _IOW('T', 216, int)
-+#define TUNSETNID     _IOW('T', 217, int)
- /* TUNSETIFF ifr flags */
- #define IFF_TUN               0x0001
-diff -NurpP --minimal linux-3.6.10/include/linux/init_task.h linux-3.6.10-vs2.3.4.5/include/linux/init_task.h
---- linux-3.6.10/include/linux/init_task.h     2012-10-04 15:27:45.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/init_task.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/init_task.h linux-3.7-vs2.3.5.1/include/linux/init_task.h
+--- linux-3.7/include/linux/init_task.h        2012-12-11 15:47:42.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/init_task.h      2012-12-11 15:56:32.000000000 +0000
 @@ -210,6 +210,10 @@ extern struct task_group root_task_group
        INIT_TRACE_RECURSION                                            \
        INIT_TASK_RCU_PREEMPT(tsk)                                      \
@@ -8297,20 +7921,20 @@ diff -NurpP --minimal linux-3.6.10/include/linux/init_task.h linux-3.6.10-vs2.3.
  }
  
  
-diff -NurpP --minimal linux-3.6.10/include/linux/ipc.h linux-3.6.10-vs2.3.4.5/include/linux/ipc.h
---- linux-3.6.10/include/linux/ipc.h   2012-03-19 19:47:28.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/ipc.h 2012-10-04 18:47:00.000000000 +0200
-@@ -91,6 +91,7 @@ struct kern_ipc_perm
+diff -NurpP --minimal linux-3.7/include/linux/ipc.h linux-3.7-vs2.3.5.1/include/linux/ipc.h
+--- linux-3.7/include/linux/ipc.h      2012-12-11 15:47:42.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/ipc.h    2012-12-11 22:24:37.000000000 +0000
+@@ -16,6 +16,7 @@ struct kern_ipc_perm
        key_t           key;
-       uid_t           uid;
-       gid_t           gid;
+       kuid_t          uid;
+       kgid_t          gid;
 +      xid_t           xid;
-       uid_t           cuid;
-       gid_t           cgid;
+       kuid_t          cuid;
+       kgid_t          cgid;
        umode_t         mode; 
-diff -NurpP --minimal linux-3.6.10/include/linux/ipc_namespace.h linux-3.6.10-vs2.3.4.5/include/linux/ipc_namespace.h
---- linux-3.6.10/include/linux/ipc_namespace.h 2012-07-22 23:39:43.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/ipc_namespace.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/ipc_namespace.h linux-3.7-vs2.3.5.1/include/linux/ipc_namespace.h
+--- linux-3.7/include/linux/ipc_namespace.h    2012-07-22 21:39:43.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/ipc_namespace.h  2012-12-11 15:56:32.000000000 +0000
 @@ -133,7 +133,8 @@ static inline int mq_init_ns(struct ipc_
  
  #if defined(CONFIG_IPC_NS)
@@ -8337,43 +7961,20 @@ diff -NurpP --minimal linux-3.6.10/include/linux/ipc_namespace.h linux-3.6.10-vs
  }
  
  static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
-diff -NurpP --minimal linux-3.6.10/include/linux/loop.h linux-3.6.10-vs2.3.4.5/include/linux/loop.h
---- linux-3.6.10/include/linux/loop.h  2012-01-09 16:14:58.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/loop.h        2012-10-04 18:47:00.000000000 +0200
-@@ -45,6 +45,7 @@ struct loop_device {
+diff -NurpP --minimal linux-3.7/include/linux/loop.h linux-3.7-vs2.3.5.1/include/linux/loop.h
+--- linux-3.7/include/linux/loop.h     2012-12-11 15:47:42.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/loop.h   2012-12-11 22:34:03.000000000 +0000
+@@ -41,6 +41,7 @@ struct loop_device {
        struct loop_func_table *lo_encryption;
        __u32           lo_init[2];
-       uid_t           lo_key_owner;   /* Who set the key */
+       kuid_t          lo_key_owner;   /* Who set the key */
 +      xid_t           lo_xid;
        int             (*ioctl)(struct loop_device *, int cmd, 
                                 unsigned long arg); 
  
-diff -NurpP --minimal linux-3.6.10/include/linux/magic.h linux-3.6.10-vs2.3.4.5/include/linux/magic.h
---- linux-3.6.10/include/linux/magic.h 2012-05-21 18:07:31.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/magic.h       2012-10-04 18:47:00.000000000 +0200
-@@ -3,7 +3,7 @@
- #define ADFS_SUPER_MAGIC      0xadf5
- #define AFFS_SUPER_MAGIC      0xadff
--#define AFS_SUPER_MAGIC                0x5346414F
-+#define AFS_SUPER_MAGIC               0x5346414F
- #define AUTOFS_SUPER_MAGIC    0x0187
- #define CODA_SUPER_MAGIC      0x73757245
- #define CRAMFS_MAGIC          0x28cd3d45      /* some random number */
-diff -NurpP --minimal linux-3.6.10/include/linux/major.h linux-3.6.10-vs2.3.4.5/include/linux/major.h
---- linux-3.6.10/include/linux/major.h 2009-09-10 15:26:25.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/major.h       2012-10-04 18:47:00.000000000 +0200
-@@ -15,6 +15,7 @@
- #define HD_MAJOR              IDE0_MAJOR
- #define PTY_SLAVE_MAJOR               3
- #define TTY_MAJOR             4
-+#define VROOT_MAJOR           4
- #define TTYAUX_MAJOR          5
- #define LP_MAJOR              6
- #define VCS_MAJOR             7
-diff -NurpP --minimal linux-3.6.10/include/linux/memcontrol.h linux-3.6.10-vs2.3.4.5/include/linux/memcontrol.h
---- linux-3.6.10/include/linux/memcontrol.h    2012-10-04 15:27:45.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/memcontrol.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/memcontrol.h linux-3.7-vs2.3.5.1/include/linux/memcontrol.h
+--- linux-3.7/include/linux/memcontrol.h       2012-12-11 15:47:42.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/memcontrol.h     2012-12-11 15:56:32.000000000 +0000
 @@ -83,6 +83,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);
@@ -8386,12 +7987,12 @@ diff -NurpP --minimal linux-3.6.10/include/linux/memcontrol.h linux-3.6.10-vs2.3
 +extern s64 mem_cgroup_stat_read_mapped(struct mem_cgroup *mem);
 +
  static inline
int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup)
bool mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *memcg)
  {
-diff -NurpP --minimal linux-3.6.10/include/linux/mm_types.h linux-3.6.10-vs2.3.4.5/include/linux/mm_types.h
---- linux-3.6.10/include/linux/mm_types.h      2012-10-04 15:27:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/mm_types.h    2012-10-04 18:47:00.000000000 +0200
-@@ -370,6 +370,7 @@ struct mm_struct {
+diff -NurpP --minimal linux-3.7/include/linux/mm_types.h linux-3.7-vs2.3.5.1/include/linux/mm_types.h
+--- linux-3.7/include/linux/mm_types.h 2012-12-11 15:47:43.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/mm_types.h       2012-12-11 15:56:32.000000000 +0000
+@@ -365,6 +365,7 @@ struct mm_struct {
  
        /* Architecture-specific MM context */
        mm_context_t context;
@@ -8399,10 +8000,10 @@ diff -NurpP --minimal linux-3.6.10/include/linux/mm_types.h linux-3.6.10-vs2.3.4
  
        unsigned long flags; /* Must use atomic bitops to access the bits */
  
-diff -NurpP --minimal linux-3.6.10/include/linux/mmzone.h linux-3.6.10-vs2.3.4.5/include/linux/mmzone.h
---- linux-3.6.10/include/linux/mmzone.h        2012-12-11 12:36:59.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/mmzone.h      2012-12-08 01:36:33.000000000 +0100
-@@ -727,6 +727,13 @@ typedef struct pglist_data {
+diff -NurpP --minimal linux-3.7/include/linux/mmzone.h linux-3.7-vs2.3.5.1/include/linux/mmzone.h
+--- linux-3.7/include/linux/mmzone.h   2012-12-11 15:47:43.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/mmzone.h 2012-12-11 15:56:32.000000000 +0000
+@@ -735,6 +735,13 @@ typedef struct pglist_data {
        __pgdat->node_start_pfn + __pgdat->node_spanned_pages;\
  })
  
@@ -8416,9 +8017,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/mmzone.h linux-3.6.10-vs2.3.4.5
  #include <linux/memory_hotplug.h>
  
  extern struct mutex zonelists_mutex;
-diff -NurpP --minimal linux-3.6.10/include/linux/mount.h linux-3.6.10-vs2.3.4.5/include/linux/mount.h
---- linux-3.6.10/include/linux/mount.h 2012-03-19 19:47:28.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/mount.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/mount.h linux-3.7-vs2.3.5.1/include/linux/mount.h
+--- linux-3.7/include/linux/mount.h    2012-03-19 18:47:28.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/mount.h  2012-12-11 15:56:32.000000000 +0000
 @@ -47,6 +47,9 @@ struct mnt_namespace;
  
  #define MNT_INTERNAL  0x4000
@@ -8429,10 +8030,10 @@ diff -NurpP --minimal linux-3.6.10/include/linux/mount.h linux-3.6.10-vs2.3.4.5/
  struct vfsmount {
        struct dentry *mnt_root;        /* root of the mounted tree */
        struct super_block *mnt_sb;     /* pointer to superblock */
-diff -NurpP --minimal linux-3.6.10/include/linux/net.h linux-3.6.10-vs2.3.4.5/include/linux/net.h
---- linux-3.6.10/include/linux/net.h   2012-10-04 15:27:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/net.h 2012-10-04 18:47:00.000000000 +0200
-@@ -73,6 +73,7 @@ struct net;
+diff -NurpP --minimal linux-3.7/include/linux/net.h linux-3.7-vs2.3.5.1/include/linux/net.h
+--- linux-3.7/include/linux/net.h      2012-12-11 15:47:43.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/net.h    2012-12-11 15:56:32.000000000 +0000
+@@ -38,6 +38,7 @@ struct net;
  #define SOCK_PASSCRED         3
  #define SOCK_PASSSEC          4
  #define SOCK_EXTERNALLY_ALLOCATED 5
@@ -8440,10 +8041,10 @@ diff -NurpP --minimal linux-3.6.10/include/linux/net.h linux-3.6.10-vs2.3.4.5/in
  
  #ifndef ARCH_HAS_SOCKET_TYPES
  /**
-diff -NurpP --minimal linux-3.6.10/include/linux/netdevice.h linux-3.6.10-vs2.3.4.5/include/linux/netdevice.h
---- linux-3.6.10/include/linux/netdevice.h     2012-10-04 15:27:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/netdevice.h   2012-10-04 18:47:00.000000000 +0200
-@@ -1651,6 +1651,7 @@ extern void              netdev_resync_ops(struct ne
+diff -NurpP --minimal linux-3.7/include/linux/netdevice.h linux-3.7-vs2.3.5.1/include/linux/netdevice.h
+--- linux-3.7/include/linux/netdevice.h        2012-12-11 15:47:43.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/netdevice.h      2012-12-11 15:56:32.000000000 +0000
+@@ -1637,6 +1637,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);
@@ -8451,22 +8052,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/netdevice.h linux-3.6.10-vs2.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.6.10/include/linux/nfs_mount.h linux-3.6.10-vs2.3.4.5/include/linux/nfs_mount.h
---- linux-3.6.10/include/linux/nfs_mount.h     2011-01-05 21:50:31.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/nfs_mount.h   2012-10-04 18:47:00.000000000 +0200
-@@ -63,7 +63,8 @@ struct nfs_mount_data {
- #define NFS_MOUNT_SECFLAVOUR  0x2000  /* 5 */
- #define NFS_MOUNT_NORDIRPLUS  0x4000  /* 5 */
- #define NFS_MOUNT_UNSHARED    0x8000  /* 5 */
--#define NFS_MOUNT_FLAGMASK    0xFFFF
-+#define NFS_MOUNT_TAGGED      0x10000 /* context tagging */
-+#define NFS_MOUNT_FLAGMASK    0x1FFFF
- /* The following are for internal use only */
- #define NFS_MOUNT_LOOKUP_CACHE_NONEG  0x10000
-diff -NurpP --minimal linux-3.6.10/include/linux/nsproxy.h linux-3.6.10-vs2.3.4.5/include/linux/nsproxy.h
---- linux-3.6.10/include/linux/nsproxy.h       2011-10-24 18:45:32.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/nsproxy.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/nsproxy.h linux-3.7-vs2.3.5.1/include/linux/nsproxy.h
+--- linux-3.7/include/linux/nsproxy.h  2011-10-24 16:45:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/nsproxy.h        2012-12-11 15:56:32.000000000 +0000
 @@ -3,6 +3,7 @@
  
  #include <linux/spinlock.h>
@@ -8483,7 +8071,7 @@ diff -NurpP --minimal linux-3.6.10/include/linux/nsproxy.h linux-3.6.10-vs2.3.4.
  void exit_task_namespaces(struct task_struct *tsk);
  void switch_task_namespaces(struct task_struct *tsk, struct nsproxy *new);
  void free_nsproxy(struct nsproxy *ns);
-@@ -70,16 +72,26 @@ int unshare_nsproxy_namespaces(unsigned 
+@@ -70,16 +72,26 @@ int unshare_nsproxy_namespaces(unsigned
        struct fs_struct *);
  int __init nsproxy_cache_init(void);
  
@@ -8516,9 +8104,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/nsproxy.h linux-3.6.10-vs2.3.4.
  }
  
  #endif
-diff -NurpP --minimal linux-3.6.10/include/linux/pid.h linux-3.6.10-vs2.3.4.5/include/linux/pid.h
---- linux-3.6.10/include/linux/pid.h   2011-07-22 11:18:11.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/pid.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/pid.h linux-3.7-vs2.3.5.1/include/linux/pid.h
+--- linux-3.7/include/linux/pid.h      2011-07-22 09:18:11.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/pid.h    2012-12-11 15:56:32.000000000 +0000
 @@ -8,7 +8,8 @@ enum pid_type
        PIDTYPE_PID,
        PIDTYPE_PGID,
@@ -8537,9 +8125,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/pid.h linux-3.6.10-vs2.3.4.5/in
  pid_t pid_vnr(struct pid *pid);
  
  #define do_each_pid_task(pid, type, task)                             \
-diff -NurpP --minimal linux-3.6.10/include/linux/proc_fs.h linux-3.6.10-vs2.3.4.5/include/linux/proc_fs.h
---- linux-3.6.10/include/linux/proc_fs.h       2012-07-22 23:39:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/proc_fs.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/proc_fs.h linux-3.7-vs2.3.5.1/include/linux/proc_fs.h
+--- linux-3.7/include/linux/proc_fs.h  2012-07-22 21:39:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/proc_fs.h        2012-12-11 15:56:32.000000000 +0000
 @@ -54,6 +54,7 @@ struct proc_dir_entry {
        nlink_t nlink;
        kuid_t uid;
@@ -8575,9 +8163,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/proc_fs.h linux-3.6.10-vs2.3.4.
        int fd;
        union proc_op op;
        struct proc_dir_entry *pde;
-diff -NurpP --minimal linux-3.6.10/include/linux/quotaops.h linux-3.6.10-vs2.3.4.5/include/linux/quotaops.h
---- linux-3.6.10/include/linux/quotaops.h      2012-10-04 15:27:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/quotaops.h    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/quotaops.h linux-3.7-vs2.3.5.1/include/linux/quotaops.h
+--- linux-3.7/include/linux/quotaops.h 2012-12-11 15:47:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/quotaops.h       2012-12-11 15:56:32.000000000 +0000
 @@ -8,6 +8,7 @@
  #define _LINUX_QUOTAOPS_
  
@@ -8600,7 +8188,7 @@ diff -NurpP --minimal linux-3.6.10/include/linux/quotaops.h linux-3.6.10-vs2.3.4
  }
  
  static inline int dquot_transfer(struct inode *inode, struct iattr *iattr)
-@@ -220,6 +222,10 @@ static inline int dquot_transfer(struct 
+@@ -220,6 +222,10 @@ static inline int dquot_transfer(struct
  static inline int __dquot_alloc_space(struct inode *inode, qsize_t number,
                int flags)
  {
@@ -8619,21 +8207,10 @@ diff -NurpP --minimal linux-3.6.10/include/linux/quotaops.h linux-3.6.10-vs2.3.4
  }
  
  static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number)
-diff -NurpP --minimal linux-3.6.10/include/linux/reboot.h linux-3.6.10-vs2.3.4.5/include/linux/reboot.h
---- linux-3.6.10/include/linux/reboot.h        2011-10-24 18:45:32.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/reboot.h      2012-10-04 18:47:00.000000000 +0200
-@@ -33,6 +33,7 @@
- #define       LINUX_REBOOT_CMD_RESTART2       0xA1B2C3D4
- #define       LINUX_REBOOT_CMD_SW_SUSPEND     0xD000FCE2
- #define       LINUX_REBOOT_CMD_KEXEC          0x45584543
-+#define       LINUX_REBOOT_CMD_OOM            0xDEADBEEF
- #ifdef __KERNEL__
-diff -NurpP --minimal linux-3.6.10/include/linux/sched.h linux-3.6.10-vs2.3.4.5/include/linux/sched.h
---- linux-3.6.10/include/linux/sched.h 2012-10-04 15:27:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/sched.h       2012-10-04 18:47:00.000000000 +0200
-@@ -1422,6 +1422,14 @@ struct task_struct {
+diff -NurpP --minimal linux-3.7/include/linux/sched.h linux-3.7-vs2.3.5.1/include/linux/sched.h
+--- linux-3.7/include/linux/sched.h    2012-12-11 15:47:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/sched.h  2012-12-11 15:56:32.000000000 +0000
+@@ -1378,6 +1378,14 @@ struct task_struct {
  #endif
        struct seccomp seccomp;
  
@@ -8648,7 +8225,7 @@ diff -NurpP --minimal linux-3.6.10/include/linux/sched.h linux-3.6.10-vs2.3.4.5/
  /* Thread group tracking */
        u32 parent_exec_id;
        u32 self_exec_id;
-@@ -1668,6 +1676,11 @@ struct pid_namespace;
+@@ -1627,6 +1635,11 @@ struct pid_namespace;
  pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
                        struct pid_namespace *ns);
  
@@ -8660,7 +8237,7 @@ diff -NurpP --minimal linux-3.6.10/include/linux/sched.h linux-3.6.10-vs2.3.4.5/
  static inline pid_t task_pid_nr(struct task_struct *tsk)
  {
        return tsk->pid;
-@@ -1681,7 +1694,8 @@ static inline pid_t task_pid_nr_ns(struc
+@@ -1640,7 +1653,8 @@ static inline pid_t task_pid_nr_ns(struc
  
  static inline pid_t task_pid_vnr(struct task_struct *tsk)
  {
@@ -8670,7 +8247,7 @@ diff -NurpP --minimal linux-3.6.10/include/linux/sched.h linux-3.6.10-vs2.3.4.5/
  }
  
  
-@@ -1694,7 +1708,7 @@ pid_t task_tgid_nr_ns(struct task_struct
+@@ -1653,7 +1667,7 @@ pid_t task_tgid_nr_ns(struct task_struct
  
  static inline pid_t task_tgid_vnr(struct task_struct *tsk)
  {
@@ -8679,10 +8256,10 @@ diff -NurpP --minimal linux-3.6.10/include/linux/sched.h linux-3.6.10-vs2.3.4.5/
  }
  
  
-diff -NurpP --minimal linux-3.6.10/include/linux/shmem_fs.h linux-3.6.10-vs2.3.4.5/include/linux/shmem_fs.h
---- linux-3.6.10/include/linux/shmem_fs.h      2012-07-22 23:39:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/shmem_fs.h    2012-10-04 18:47:00.000000000 +0200
-@@ -8,6 +8,9 @@
+diff -NurpP --minimal linux-3.7/include/linux/shmem_fs.h linux-3.7-vs2.3.5.1/include/linux/shmem_fs.h
+--- linux-3.7/include/linux/shmem_fs.h 2012-12-11 15:47:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/shmem_fs.h       2012-12-11 15:56:32.000000000 +0000
+@@ -9,6 +9,9 @@
  
  /* inode in-kernel data */
  
@@ -8692,10 +8269,10 @@ diff -NurpP --minimal linux-3.6.10/include/linux/shmem_fs.h linux-3.6.10-vs2.3.4
  struct shmem_inode_info {
        spinlock_t              lock;
        unsigned long           flags;
-diff -NurpP --minimal linux-3.6.10/include/linux/stat.h linux-3.6.10-vs2.3.4.5/include/linux/stat.h
---- linux-3.6.10/include/linux/stat.h  2012-07-22 23:39:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/stat.h        2012-10-04 18:47:00.000000000 +0200
-@@ -67,6 +67,7 @@ struct kstat {
+diff -NurpP --minimal linux-3.7/include/linux/stat.h linux-3.7-vs2.3.5.1/include/linux/stat.h
+--- linux-3.7/include/linux/stat.h     2012-12-11 15:47:45.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/stat.h   2012-12-11 15:56:32.000000000 +0000
+@@ -25,6 +25,7 @@ struct kstat {
        unsigned int    nlink;
        kuid_t          uid;
        kgid_t          gid;
@@ -8703,9 +8280,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/stat.h linux-3.6.10-vs2.3.4.5/i
        dev_t           rdev;
        loff_t          size;
        struct timespec  atime;
-diff -NurpP --minimal linux-3.6.10/include/linux/sunrpc/auth.h linux-3.6.10-vs2.3.4.5/include/linux/sunrpc/auth.h
---- linux-3.6.10/include/linux/sunrpc/auth.h   2012-10-04 15:27:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/sunrpc/auth.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/sunrpc/auth.h linux-3.7-vs2.3.5.1/include/linux/sunrpc/auth.h
+--- linux-3.7/include/linux/sunrpc/auth.h      2012-10-04 13:27:46.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/sunrpc/auth.h    2012-12-11 15:56:32.000000000 +0000
 @@ -25,6 +25,7 @@
  struct auth_cred {
        uid_t   uid;
@@ -8714,9 +8291,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/sunrpc/auth.h linux-3.6.10-vs2.
        struct group_info *group_info;
        const char *principal;
        unsigned char machine_cred : 1;
-diff -NurpP --minimal linux-3.6.10/include/linux/sunrpc/clnt.h linux-3.6.10-vs2.3.4.5/include/linux/sunrpc/clnt.h
---- linux-3.6.10/include/linux/sunrpc/clnt.h   2012-05-21 18:07:32.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/sunrpc/clnt.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/sunrpc/clnt.h linux-3.7-vs2.3.5.1/include/linux/sunrpc/clnt.h
+--- linux-3.7/include/linux/sunrpc/clnt.h      2012-12-11 15:47:45.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/sunrpc/clnt.h    2012-12-11 15:56:32.000000000 +0000
 @@ -49,7 +49,8 @@ struct rpc_clnt {
        unsigned int            cl_softrtry : 1,/* soft timeouts */
                                cl_discrtry : 1,/* disconnect before retry */
@@ -8727,28 +8304,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/sunrpc/clnt.h linux-3.6.10-vs2.
  
        struct rpc_rtt *        cl_rtt;         /* RTO estimator data */
        const struct rpc_timeout *cl_timeout;   /* Timeout strategy */
-diff -NurpP --minimal linux-3.6.10/include/linux/sysctl.h linux-3.6.10-vs2.3.4.5/include/linux/sysctl.h
---- linux-3.6.10/include/linux/sysctl.h        2012-05-21 18:07:32.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/sysctl.h      2012-10-04 18:47:00.000000000 +0200
-@@ -60,6 +60,7 @@ enum
-       CTL_ABI=9,              /* Binary emulation */
-       CTL_CPU=10,             /* CPU stuff (speed scaling, etc) */
-       CTL_ARLAN=254,          /* arlan wireless driver */
-+      CTL_VSERVER=4242,       /* Linux-VServer debug */
-       CTL_S390DBF=5677,       /* s390 debug */
-       CTL_SUNRPC=7249,        /* sunrpc debug */
-       CTL_PM=9899,            /* frv power management */
-@@ -94,6 +95,7 @@ enum
-       KERN_PANIC=15,          /* int: panic timeout */
-       KERN_REALROOTDEV=16,    /* real root device to mount after initrd */
-+      KERN_VSHELPER=17,       /* string: path to vshelper policy agent */
-       KERN_SPARC_REBOOT=21,   /* reboot command on Sparc */
-       KERN_CTLALTDEL=22,      /* int: allow ctl-alt-del to reboot */
-diff -NurpP --minimal linux-3.6.10/include/linux/sysfs.h linux-3.6.10-vs2.3.4.5/include/linux/sysfs.h
---- linux-3.6.10/include/linux/sysfs.h 2012-07-22 23:39:44.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/sysfs.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/sysfs.h linux-3.7-vs2.3.5.1/include/linux/sysfs.h
+--- linux-3.7/include/linux/sysfs.h    2012-07-22 21:39:44.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/sysfs.h  2012-12-11 15:56:32.000000000 +0000
 @@ -19,6 +19,8 @@
  #include <linux/kobject_ns.h>
  #include <linux/atomic.h>
@@ -8758,22 +8316,10 @@ diff -NurpP --minimal linux-3.6.10/include/linux/sysfs.h linux-3.6.10-vs2.3.4.5/
  struct kobject;
  struct module;
  enum kobj_ns_type;
-diff -NurpP --minimal linux-3.6.10/include/linux/time.h linux-3.6.10-vs2.3.4.5/include/linux/time.h
---- linux-3.6.10/include/linux/time.h  2012-10-04 15:27:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/time.h        2012-10-04 18:47:00.000000000 +0200
-@@ -280,6 +280,8 @@ static __always_inline void timespec_add
-       a->tv_nsec = ns;
- }
-+#include <linux/vs_time.h>
-+
- #endif /* __KERNEL__ */
- /*
-diff -NurpP --minimal linux-3.6.10/include/linux/types.h linux-3.6.10-vs2.3.4.5/include/linux/types.h
---- linux-3.6.10/include/linux/types.h 2012-10-04 15:27:47.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/linux/types.h       2012-10-04 18:47:00.000000000 +0200
-@@ -41,6 +41,9 @@ typedef __kernel_uid32_t     uid_t;
+diff -NurpP --minimal linux-3.7/include/linux/types.h linux-3.7-vs2.3.5.1/include/linux/types.h
+--- linux-3.7/include/linux/types.h    2012-12-11 15:47:45.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/types.h  2012-12-11 15:56:32.000000000 +0000
+@@ -32,6 +32,9 @@ typedef __kernel_uid32_t     uid_t;
  typedef __kernel_gid32_t      gid_t;
  typedef __kernel_uid16_t        uid16_t;
  typedef __kernel_gid16_t        gid16_t;
@@ -8783,10 +8329,132 @@ diff -NurpP --minimal linux-3.6.10/include/linux/types.h linux-3.6.10-vs2.3.4.5/
  
  typedef unsigned long         uintptr_t;
  
-diff -NurpP --minimal linux-3.6.10/include/linux/utsname.h linux-3.6.10-vs2.3.4.5/include/linux/utsname.h
---- linux-3.6.10/include/linux/utsname.h       2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/utsname.h     2012-10-04 18:47:00.000000000 +0200
-@@ -62,7 +62,8 @@ static inline void get_uts_ns(struct uts
+diff -NurpP --minimal linux-3.7/include/linux/uidgid.h linux-3.7-vs2.3.5.1/include/linux/uidgid.h
+--- linux-3.7/include/linux/uidgid.h   2012-07-22 21:39:45.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/uidgid.h 2012-12-11 19:45:37.000000000 +0000
+@@ -23,13 +23,17 @@ typedef struct {
+       uid_t val;
+ } kuid_t;
+-
+ typedef struct {
+       gid_t val;
+ } kgid_t;
++typedef struct {
++      tag_t val;
++} ktag_t;
++
+ #define KUIDT_INIT(value) (kuid_t){ value }
+ #define KGIDT_INIT(value) (kgid_t){ value }
++#define KTAGT_INIT(value) (ktag_t){ value }
+ static inline uid_t __kuid_val(kuid_t uid)
+ {
+@@ -41,10 +45,16 @@ static inline gid_t __kgid_val(kgid_t gi
+       return gid.val;
+ }
++static inline tag_t __ktag_val(ktag_t tag)
++{
++      return tag.val;
++}
++
+ #else
+ typedef uid_t kuid_t;
+ typedef gid_t kgid_t;
++typedef tag_t ktag_t;
+ static inline uid_t __kuid_val(kuid_t uid)
+ {
+@@ -56,16 +66,24 @@ static inline gid_t __kgid_val(kgid_t gi
+       return gid;
+ }
++static inline tag_t __ktag_val(ktag_t tag)
++{
++      return tag;
++}
++
+ #define KUIDT_INIT(value) ((kuid_t) value )
+ #define KGIDT_INIT(value) ((kgid_t) value )
++#define KTAGT_INIT(value) ((ktag_t) value )
+ #endif
+ #define GLOBAL_ROOT_UID KUIDT_INIT(0)
+ #define GLOBAL_ROOT_GID KGIDT_INIT(0)
++#define GLOBAL_ROOT_TAG KTAGT_INIT(0)
+ #define INVALID_UID KUIDT_INIT(-1)
+ #define INVALID_GID KGIDT_INIT(-1)
++#define INVALID_TAG KTAGT_INIT(-1)
+ static inline bool uid_eq(kuid_t left, kuid_t right)
+ {
+@@ -77,6 +95,11 @@ static inline bool gid_eq(kgid_t left, k
+       return __kgid_val(left) == __kgid_val(right);
+ }
++static inline bool tag_eq(ktag_t left, ktag_t right)
++{
++      return __ktag_val(left) == __ktag_val(right);
++}
++
+ static inline bool uid_gt(kuid_t left, kuid_t right)
+ {
+       return __kuid_val(left) > __kuid_val(right);
+@@ -127,13 +150,21 @@ static inline bool gid_valid(kgid_t gid)
+       return !gid_eq(gid, INVALID_GID);
+ }
++static inline bool tag_valid(ktag_t tag)
++{
++      return !tag_eq(tag, INVALID_TAG);
++}
++
+ #ifdef CONFIG_USER_NS
+ extern kuid_t make_kuid(struct user_namespace *from, uid_t uid);
+ extern kgid_t make_kgid(struct user_namespace *from, gid_t gid);
++extern krag_t make_ktag(struct user_namespace *from, gid_t gid);
+ extern uid_t from_kuid(struct user_namespace *to, kuid_t uid);
+ extern gid_t from_kgid(struct user_namespace *to, kgid_t gid);
++extern tag_t from_ktag(struct user_namespace *to, ktag_t tag);
++
+ extern uid_t from_kuid_munged(struct user_namespace *to, kuid_t uid);
+ extern gid_t from_kgid_munged(struct user_namespace *to, kgid_t gid);
+@@ -159,6 +190,11 @@ static inline kgid_t make_kgid(struct us
+       return KGIDT_INIT(gid);
+ }
++static inline ktag_t make_ktag(struct user_namespace *from, tag_t tag)
++{
++      return KTAGT_INIT(tag);
++}
++
+ static inline uid_t from_kuid(struct user_namespace *to, kuid_t kuid)
+ {
+       return __kuid_val(kuid);
+@@ -169,6 +205,11 @@ static inline gid_t from_kgid(struct use
+       return __kgid_val(kgid);
+ }
++static inline tag_t from_ktag(struct user_namespace *to, ktag_t ktag)
++{
++      return __ktag_val(ktag);
++}
++
+ static inline uid_t from_kuid_munged(struct user_namespace *to, kuid_t kuid)
+ {
+       uid_t uid = from_kuid(to, kuid);
+diff -NurpP --minimal linux-3.7/include/linux/utsname.h linux-3.7-vs2.3.5.1/include/linux/utsname.h
+--- linux-3.7/include/linux/utsname.h  2012-12-11 15:47:45.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/utsname.h        2012-12-11 15:56:32.000000000 +0000
+@@ -33,7 +33,8 @@ static inline void get_uts_ns(struct uts
  }
  
  extern struct uts_namespace *copy_utsname(unsigned long flags,
@@ -8796,7 +8464,7 @@ diff -NurpP --minimal linux-3.6.10/include/linux/utsname.h linux-3.6.10-vs2.3.4.
  extern void free_uts_ns(struct kref *kref);
  
  static inline void put_uts_ns(struct uts_namespace *ns)
-@@ -79,12 +80,13 @@ static inline void put_uts_ns(struct uts
+@@ -50,12 +51,13 @@ static inline void put_uts_ns(struct uts
  }
  
  static inline struct uts_namespace *copy_utsname(unsigned long flags,
@@ -8812,9 +8480,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/utsname.h linux-3.6.10-vs2.3.4.
  }
  #endif
  
-diff -NurpP --minimal linux-3.6.10/include/linux/vroot.h linux-3.6.10-vs2.3.4.5/include/linux/vroot.h
---- linux-3.6.10/include/linux/vroot.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vroot.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vroot.h linux-3.7-vs2.3.5.1/include/linux/vroot.h
+--- linux-3.7/include/linux/vroot.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vroot.h  2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,51 @@
 +
 +/*
@@ -8867,9 +8535,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vroot.h linux-3.6.10-vs2.3.4.5/
 +#define VROOT_CLR_DEV         0x5601
 +
 +#endif /* _LINUX_VROOT_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_base.h linux-3.6.10-vs2.3.4.5/include/linux/vs_base.h
---- linux-3.6.10/include/linux/vs_base.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_base.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_base.h linux-3.7-vs2.3.5.1/include/linux/vs_base.h
+--- linux-3.7/include/linux/vs_base.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_base.h        2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,10 @@
 +#ifndef _VS_BASE_H
 +#define _VS_BASE_H
@@ -8881,9 +8549,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_base.h linux-3.6.10-vs2.3.4.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_context.h linux-3.6.10-vs2.3.4.5/include/linux/vs_context.h
---- linux-3.6.10/include/linux/vs_context.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_context.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_context.h linux-3.7-vs2.3.5.1/include/linux/vs_context.h
+--- linux-3.7/include/linux/vs_context.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_context.h     2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,242 @@
 +#ifndef _VS_CONTEXT_H
 +#define _VS_CONTEXT_H
@@ -9127,9 +8795,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_context.h linux-3.6.10-vs2.3
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_cowbl.h linux-3.6.10-vs2.3.4.5/include/linux/vs_cowbl.h
---- linux-3.6.10/include/linux/vs_cowbl.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_cowbl.h    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_cowbl.h linux-3.7-vs2.3.5.1/include/linux/vs_cowbl.h
+--- linux-3.7/include/linux/vs_cowbl.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_cowbl.h       2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,48 @@
 +#ifndef _VS_COWBL_H
 +#define _VS_COWBL_H
@@ -9179,9 +8847,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_cowbl.h linux-3.6.10-vs2.3.4
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_cvirt.h linux-3.6.10-vs2.3.4.5/include/linux/vs_cvirt.h
---- linux-3.6.10/include/linux/vs_cvirt.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_cvirt.h    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_cvirt.h linux-3.7-vs2.3.5.1/include/linux/vs_cvirt.h
+--- linux-3.7/include/linux/vs_cvirt.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_cvirt.h       2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,50 @@
 +#ifndef _VS_CVIRT_H
 +#define _VS_CVIRT_H
@@ -9233,9 +8901,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_cvirt.h linux-3.6.10-vs2.3.4
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_device.h linux-3.6.10-vs2.3.4.5/include/linux/vs_device.h
---- linux-3.6.10/include/linux/vs_device.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_device.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_device.h linux-3.7-vs2.3.5.1/include/linux/vs_device.h
+--- linux-3.7/include/linux/vs_device.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_device.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,45 @@
 +#ifndef _VS_DEVICE_H
 +#define _VS_DEVICE_H
@@ -9282,9 +8950,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_device.h linux-3.6.10-vs2.3.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_dlimit.h linux-3.6.10-vs2.3.4.5/include/linux/vs_dlimit.h
---- linux-3.6.10/include/linux/vs_dlimit.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_dlimit.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_dlimit.h linux-3.7-vs2.3.5.1/include/linux/vs_dlimit.h
+--- linux-3.7/include/linux/vs_dlimit.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_dlimit.h      2012-12-11 19:37:05.000000000 +0000
 @@ -0,0 +1,215 @@
 +#ifndef _VS_DLIMIT_H
 +#define _VS_DLIMIT_H
@@ -9464,34 +9132,34 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_dlimit.h linux-3.6.10-vs2.3.
 +}
 +
 +#define dl_prealloc_space(in, bytes) \
-+      __dl_alloc_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \
++      __dl_alloc_space((in)->i_sb, i_tag_read(in), (dlsize_t)(bytes), \
 +              __FILE__, __LINE__ )
 +
 +#define dl_alloc_space(in, bytes) \
-+      __dl_alloc_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \
++      __dl_alloc_space((in)->i_sb, i_tag_read(in), (dlsize_t)(bytes), \
 +              __FILE__, __LINE__ )
 +
 +#define dl_reserve_space(in, bytes) \
-+      __dl_alloc_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \
++      __dl_alloc_space((in)->i_sb, i_tag_read(in), (dlsize_t)(bytes), \
 +              __FILE__, __LINE__ )
 +
 +#define dl_claim_space(in, bytes) (0)
 +
 +#define dl_release_space(in, bytes) \
-+      __dl_free_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \
++      __dl_free_space((in)->i_sb, i_tag_read(in), (dlsize_t)(bytes), \
 +              __FILE__, __LINE__ )
 +
 +#define dl_free_space(in, bytes) \
-+      __dl_free_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \
++      __dl_free_space((in)->i_sb, i_tag_read(in), (dlsize_t)(bytes), \
 +              __FILE__, __LINE__ )
 +
 +
 +
 +#define dl_alloc_inode(in) \
-+      __dl_alloc_inode((in)->i_sb, (in)->i_tag, __FILE__, __LINE__ )
++      __dl_alloc_inode((in)->i_sb, i_tag_read(in), __FILE__, __LINE__ )
 +
 +#define dl_free_inode(in) \
-+      __dl_free_inode((in)->i_sb, (in)->i_tag, __FILE__, __LINE__ )
++      __dl_free_inode((in)->i_sb, i_tag_read(in), __FILE__, __LINE__ )
 +
 +
 +#define dl_adjust_block(sb, tag, fb, rb) \
@@ -9501,9 +9169,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_dlimit.h linux-3.6.10-vs2.3.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_inet.h linux-3.6.10-vs2.3.4.5/include/linux/vs_inet.h
---- linux-3.6.10/include/linux/vs_inet.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_inet.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_inet.h linux-3.7-vs2.3.5.1/include/linux/vs_inet.h
+--- linux-3.7/include/linux/vs_inet.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_inet.h        2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,353 @@
 +#ifndef _VS_INET_H
 +#define _VS_INET_H
@@ -9858,9 +9526,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_inet.h linux-3.6.10-vs2.3.4.
 +#else
 +// #warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_inet6.h linux-3.6.10-vs2.3.4.5/include/linux/vs_inet6.h
---- linux-3.6.10/include/linux/vs_inet6.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_inet6.h    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_inet6.h linux-3.7-vs2.3.5.1/include/linux/vs_inet6.h
+--- linux-3.7/include/linux/vs_inet6.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_inet6.h       2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,246 @@
 +#ifndef _VS_INET6_H
 +#define _VS_INET6_H
@@ -10108,9 +9776,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_inet6.h linux-3.6.10-vs2.3.4
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_limit.h linux-3.6.10-vs2.3.4.5/include/linux/vs_limit.h
---- linux-3.6.10/include/linux/vs_limit.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_limit.h    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_limit.h linux-3.7-vs2.3.5.1/include/linux/vs_limit.h
+--- linux-3.7/include/linux/vs_limit.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_limit.h       2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,140 @@
 +#ifndef _VS_LIMIT_H
 +#define _VS_LIMIT_H
@@ -10252,9 +9920,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_limit.h linux-3.6.10-vs2.3.4
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_network.h linux-3.6.10-vs2.3.4.5/include/linux/vs_network.h
---- linux-3.6.10/include/linux/vs_network.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_network.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_network.h linux-3.7-vs2.3.5.1/include/linux/vs_network.h
+--- linux-3.7/include/linux/vs_network.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_network.h     2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,169 @@
 +#ifndef _NX_VS_NETWORK_H
 +#define _NX_VS_NETWORK_H
@@ -10425,9 +10093,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_network.h linux-3.6.10-vs2.3
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_pid.h linux-3.6.10-vs2.3.4.5/include/linux/vs_pid.h
---- linux-3.6.10/include/linux/vs_pid.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_pid.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_pid.h linux-3.7-vs2.3.5.1/include/linux/vs_pid.h
+--- linux-3.7/include/linux/vs_pid.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_pid.h 2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,50 @@
 +#ifndef _VS_PID_H
 +#define _VS_PID_H
@@ -10479,9 +10147,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_pid.h linux-3.6.10-vs2.3.4.5
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_sched.h linux-3.6.10-vs2.3.4.5/include/linux/vs_sched.h
---- linux-3.6.10/include/linux/vs_sched.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_sched.h    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_sched.h linux-3.7-vs2.3.5.1/include/linux/vs_sched.h
+--- linux-3.7/include/linux/vs_sched.h 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_sched.h       2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,40 @@
 +#ifndef _VS_SCHED_H
 +#define _VS_SCHED_H
@@ -10523,9 +10191,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_sched.h linux-3.6.10-vs2.3.4
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_socket.h linux-3.6.10-vs2.3.4.5/include/linux/vs_socket.h
---- linux-3.6.10/include/linux/vs_socket.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_socket.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_socket.h linux-3.7-vs2.3.5.1/include/linux/vs_socket.h
+--- linux-3.7/include/linux/vs_socket.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_socket.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,67 @@
 +#ifndef _VS_SOCKET_H
 +#define _VS_SOCKET_H
@@ -10594,9 +10262,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_socket.h linux-3.6.10-vs2.3.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_tag.h linux-3.6.10-vs2.3.4.5/include/linux/vs_tag.h
---- linux-3.6.10/include/linux/vs_tag.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_tag.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_tag.h linux-3.7-vs2.3.5.1/include/linux/vs_tag.h
+--- linux-3.7/include/linux/vs_tag.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_tag.h 2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,47 @@
 +#ifndef _VS_TAG_H
 +#define _VS_TAG_H
@@ -10645,9 +10313,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_tag.h linux-3.6.10-vs2.3.4.5
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vs_time.h linux-3.6.10-vs2.3.4.5/include/linux/vs_time.h
---- linux-3.6.10/include/linux/vs_time.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vs_time.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vs_time.h linux-3.7-vs2.3.5.1/include/linux/vs_time.h
+--- linux-3.7/include/linux/vs_time.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vs_time.h        2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,19 @@
 +#ifndef _VS_TIME_H
 +#define _VS_TIME_H
@@ -10668,9 +10336,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vs_time.h linux-3.6.10-vs2.3.4.
 +#else
 +#warning duplicate inclusion
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/Kbuild linux-3.6.10-vs2.3.4.5/include/linux/vserver/Kbuild
---- linux-3.6.10/include/linux/vserver/Kbuild  1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/Kbuild        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/Kbuild linux-3.7-vs2.3.5.1/include/linux/vserver/Kbuild
+--- linux-3.7/include/linux/vserver/Kbuild     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/Kbuild   2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,8 @@
 +
 +header-y += context_cmd.h network_cmd.h space_cmd.h \
@@ -10680,9 +10348,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/Kbuild linux-3.6.10-vs2
 +
 +header-y += switch.h network.h monitor.h inode.h device.h
 +
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/base.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/base.h
---- linux-3.6.10/include/linux/vserver/base.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/base.h        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/base.h linux-3.7-vs2.3.5.1/include/linux/vserver/base.h
+--- linux-3.7/include/linux/vserver/base.h     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/base.h   2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,178 @@
 +#ifndef _VX_BASE_H
 +#define _VX_BASE_H
@@ -10862,9 +10530,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/base.h linux-3.6.10-vs2
 +#define nx_info_state(n, m)   (__nx_state(n) & (m))
 +
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cacct.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/cacct.h
---- linux-3.6.10/include/linux/vserver/cacct.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/cacct.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/cacct.h linux-3.7-vs2.3.5.1/include/linux/vserver/cacct.h
+--- linux-3.7/include/linux/vserver/cacct.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/cacct.h  2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,15 @@
 +#ifndef _VX_CACCT_H
 +#define _VX_CACCT_H
@@ -10881,9 +10549,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cacct.h linux-3.6.10-vs
 +};
 +
 +#endif        /* _VX_CACCT_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cacct_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/cacct_cmd.h
---- linux-3.6.10/include/linux/vserver/cacct_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/cacct_cmd.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/cacct_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/cacct_cmd.h
+--- linux-3.7/include/linux/vserver/cacct_cmd.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/cacct_cmd.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,23 @@
 +#ifndef _VX_CACCT_CMD_H
 +#define _VX_CACCT_CMD_H
@@ -10908,9 +10576,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cacct_cmd.h linux-3.6.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CACCT_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cacct_def.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/cacct_def.h
---- linux-3.6.10/include/linux/vserver/cacct_def.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/cacct_def.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/cacct_def.h linux-3.7-vs2.3.5.1/include/linux/vserver/cacct_def.h
+--- linux-3.7/include/linux/vserver/cacct_def.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/cacct_def.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,43 @@
 +#ifndef _VX_CACCT_DEF_H
 +#define _VX_CACCT_DEF_H
@@ -10955,9 +10623,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cacct_def.h linux-3.6.1
 +#endif
 +
 +#endif        /* _VX_CACCT_DEF_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cacct_int.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/cacct_int.h
---- linux-3.6.10/include/linux/vserver/cacct_int.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/cacct_int.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/cacct_int.h linux-3.7-vs2.3.5.1/include/linux/vserver/cacct_int.h
+--- linux-3.7/include/linux/vserver/cacct_int.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/cacct_int.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,21 @@
 +#ifndef _VX_CACCT_INT_H
 +#define _VX_CACCT_INT_H
@@ -10980,9 +10648,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cacct_int.h linux-3.6.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CACCT_INT_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/check.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/check.h
---- linux-3.6.10/include/linux/vserver/check.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/check.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/check.h linux-3.7-vs2.3.5.1/include/linux/vserver/check.h
+--- linux-3.7/include/linux/vserver/check.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/check.h  2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,89 @@
 +#ifndef _VS_CHECK_H
 +#define _VS_CHECK_H
@@ -11073,9 +10741,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/check.h linux-3.6.10-vs
 +#define nx_weak_check(c, m)   ((m) ? nx_check(c, m) : 1)
 +
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/context.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/context.h
---- linux-3.6.10/include/linux/vserver/context.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/context.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/context.h linux-3.7-vs2.3.5.1/include/linux/vserver/context.h
+--- linux-3.7/include/linux/vserver/context.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/context.h        2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,188 @@
 +#ifndef _VX_CONTEXT_H
 +#define _VX_CONTEXT_H
@@ -11265,9 +10933,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/context.h linux-3.6.10-
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CONTEXT_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/context_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/context_cmd.h
---- linux-3.6.10/include/linux/vserver/context_cmd.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/context_cmd.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/context_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/context_cmd.h
+--- linux-3.7/include/linux/vserver/context_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/context_cmd.h    2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,162 @@
 +#ifndef _VX_CONTEXT_CMD_H
 +#define _VX_CONTEXT_CMD_H
@@ -11431,9 +11099,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/context_cmd.h linux-3.6
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cvirt.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/cvirt.h
---- linux-3.6.10/include/linux/vserver/cvirt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/cvirt.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/cvirt.h linux-3.7-vs2.3.5.1/include/linux/vserver/cvirt.h
+--- linux-3.7/include/linux/vserver/cvirt.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/cvirt.h  2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,22 @@
 +#ifndef _VX_CVIRT_H
 +#define _VX_CVIRT_H
@@ -11457,9 +11125,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cvirt.h linux-3.6.10-vs
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CVIRT_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cvirt_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/cvirt_cmd.h
---- linux-3.6.10/include/linux/vserver/cvirt_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/cvirt_cmd.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/cvirt_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/cvirt_cmd.h
+--- linux-3.7/include/linux/vserver/cvirt_cmd.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/cvirt_cmd.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,53 @@
 +#ifndef _VX_CVIRT_CMD_H
 +#define _VX_CVIRT_CMD_H
@@ -11514,9 +11182,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cvirt_cmd.h linux-3.6.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CVIRT_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cvirt_def.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/cvirt_def.h
---- linux-3.6.10/include/linux/vserver/cvirt_def.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/cvirt_def.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/cvirt_def.h linux-3.7-vs2.3.5.1/include/linux/vserver/cvirt_def.h
+--- linux-3.7/include/linux/vserver/cvirt_def.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/cvirt_def.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,80 @@
 +#ifndef _VX_CVIRT_DEF_H
 +#define _VX_CVIRT_DEF_H
@@ -11598,9 +11266,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/cvirt_def.h linux-3.6.1
 +#endif
 +
 +#endif        /* _VX_CVIRT_DEF_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/debug.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/debug.h
---- linux-3.6.10/include/linux/vserver/debug.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/debug.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/debug.h linux-3.7-vs2.3.5.1/include/linux/vserver/debug.h
+--- linux-3.7/include/linux/vserver/debug.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/debug.h  2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,145 @@
 +#ifndef _VX_DEBUG_H
 +#define _VX_DEBUG_H
@@ -11747,9 +11415,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/debug.h linux-3.6.10-vs
 +
 +
 +#endif /* _VX_DEBUG_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/debug_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/debug_cmd.h
---- linux-3.6.10/include/linux/vserver/debug_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/debug_cmd.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/debug_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/debug_cmd.h
+--- linux-3.7/include/linux/vserver/debug_cmd.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/debug_cmd.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,58 @@
 +#ifndef _VX_DEBUG_CMD_H
 +#define _VX_DEBUG_CMD_H
@@ -11809,9 +11477,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/debug_cmd.h linux-3.6.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_DEBUG_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/device.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/device.h
---- linux-3.6.10/include/linux/vserver/device.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/device.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/device.h linux-3.7-vs2.3.5.1/include/linux/vserver/device.h
+--- linux-3.7/include/linux/vserver/device.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/device.h 2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,15 @@
 +#ifndef _VX_DEVICE_H
 +#define _VX_DEVICE_H
@@ -11828,9 +11496,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/device.h linux-3.6.10-v
 +#else /* _VX_DEVICE_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_DEVICE_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/device_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/device_cmd.h
---- linux-3.6.10/include/linux/vserver/device_cmd.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/device_cmd.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/device_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/device_cmd.h
+--- linux-3.7/include/linux/vserver/device_cmd.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/device_cmd.h     2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,44 @@
 +#ifndef _VX_DEVICE_CMD_H
 +#define _VX_DEVICE_CMD_H
@@ -11876,9 +11544,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/device_cmd.h linux-3.6.
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_DEVICE_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/device_def.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/device_def.h
---- linux-3.6.10/include/linux/vserver/device_def.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/device_def.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/device_def.h linux-3.7-vs2.3.5.1/include/linux/vserver/device_def.h
+--- linux-3.7/include/linux/vserver/device_def.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/device_def.h     2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,17 @@
 +#ifndef _VX_DEVICE_DEF_H
 +#define _VX_DEVICE_DEF_H
@@ -11897,9 +11565,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/device_def.h linux-3.6.
 +};
 +
 +#endif        /* _VX_DEVICE_DEF_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/dlimit.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/dlimit.h
---- linux-3.6.10/include/linux/vserver/dlimit.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/dlimit.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/dlimit.h linux-3.7-vs2.3.5.1/include/linux/vserver/dlimit.h
+--- linux-3.7/include/linux/vserver/dlimit.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/dlimit.h 2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,54 @@
 +#ifndef _VX_DLIMIT_H
 +#define _VX_DLIMIT_H
@@ -11955,9 +11623,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/dlimit.h linux-3.6.10-v
 +#else /* _VX_DLIMIT_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_DLIMIT_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/dlimit_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/dlimit_cmd.h
---- linux-3.6.10/include/linux/vserver/dlimit_cmd.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/dlimit_cmd.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/dlimit_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/dlimit_cmd.h
+--- linux-3.7/include/linux/vserver/dlimit_cmd.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/dlimit_cmd.h     2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,109 @@
 +#ifndef _VX_DLIMIT_CMD_H
 +#define _VX_DLIMIT_CMD_H
@@ -12068,9 +11736,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/dlimit_cmd.h linux-3.6.
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_DLIMIT_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/global.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/global.h
---- linux-3.6.10/include/linux/vserver/global.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/global.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/global.h linux-3.7-vs2.3.5.1/include/linux/vserver/global.h
+--- linux-3.7/include/linux/vserver/global.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/global.h 2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,19 @@
 +#ifndef _VX_GLOBAL_H
 +#define _VX_GLOBAL_H
@@ -12091,9 +11759,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/global.h linux-3.6.10-v
 +
 +
 +#endif /* _VX_GLOBAL_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/history.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/history.h
---- linux-3.6.10/include/linux/vserver/history.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/history.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/history.h linux-3.7-vs2.3.5.1/include/linux/vserver/history.h
+--- linux-3.7/include/linux/vserver/history.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/history.h        2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,197 @@
 +#ifndef _VX_HISTORY_H
 +#define _VX_HISTORY_H
@@ -12292,9 +11960,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/history.h linux-3.6.10-
 +#endif /* CONFIG_VSERVER_HISTORY */
 +
 +#endif /* _VX_HISTORY_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/inode.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/inode.h
---- linux-3.6.10/include/linux/vserver/inode.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/inode.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/inode.h linux-3.7-vs2.3.5.1/include/linux/vserver/inode.h
+--- linux-3.7/include/linux/vserver/inode.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/inode.h  2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,39 @@
 +#ifndef _VX_INODE_H
 +#define _VX_INODE_H
@@ -12335,9 +12003,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/inode.h linux-3.6.10-vs
 +#else /* _VX_INODE_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_INODE_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/inode_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/inode_cmd.h
---- linux-3.6.10/include/linux/vserver/inode_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/inode_cmd.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/inode_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/inode_cmd.h
+--- linux-3.7/include/linux/vserver/inode_cmd.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/inode_cmd.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,59 @@
 +#ifndef _VX_INODE_CMD_H
 +#define _VX_INODE_CMD_H
@@ -12398,9 +12066,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/inode_cmd.h linux-3.6.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_INODE_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/limit.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/limit.h
---- linux-3.6.10/include/linux/vserver/limit.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/limit.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/limit.h linux-3.7-vs2.3.5.1/include/linux/vserver/limit.h
+--- linux-3.7/include/linux/vserver/limit.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/limit.h  2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,71 @@
 +#ifndef _VX_LIMIT_H
 +#define _VX_LIMIT_H
@@ -12473,9 +12141,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/limit.h linux-3.6.10-vs
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_LIMIT_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/limit_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/limit_cmd.h
---- linux-3.6.10/include/linux/vserver/limit_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/limit_cmd.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/limit_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/limit_cmd.h
+--- linux-3.7/include/linux/vserver/limit_cmd.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/limit_cmd.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,71 @@
 +#ifndef _VX_LIMIT_CMD_H
 +#define _VX_LIMIT_CMD_H
@@ -12548,9 +12216,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/limit_cmd.h linux-3.6.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_LIMIT_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/limit_def.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/limit_def.h
---- linux-3.6.10/include/linux/vserver/limit_def.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/limit_def.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/limit_def.h linux-3.7-vs2.3.5.1/include/linux/vserver/limit_def.h
+--- linux-3.7/include/linux/vserver/limit_def.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/limit_def.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,47 @@
 +#ifndef _VX_LIMIT_DEF_H
 +#define _VX_LIMIT_DEF_H
@@ -12599,9 +12267,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/limit_def.h linux-3.6.1
 +#endif
 +
 +#endif        /* _VX_LIMIT_DEF_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/limit_int.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/limit_int.h
---- linux-3.6.10/include/linux/vserver/limit_int.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/limit_int.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/limit_int.h linux-3.7-vs2.3.5.1/include/linux/vserver/limit_int.h
+--- linux-3.7/include/linux/vserver/limit_int.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/limit_int.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,198 @@
 +#ifndef _VX_LIMIT_INT_H
 +#define _VX_LIMIT_INT_H
@@ -12801,9 +12469,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/limit_int.h linux-3.6.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_LIMIT_INT_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/monitor.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/monitor.h
---- linux-3.6.10/include/linux/vserver/monitor.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/monitor.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/monitor.h linux-3.7-vs2.3.5.1/include/linux/vserver/monitor.h
+--- linux-3.7/include/linux/vserver/monitor.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/monitor.h        2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,96 @@
 +#ifndef _VX_MONITOR_H
 +#define _VX_MONITOR_H
@@ -12901,9 +12569,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/monitor.h linux-3.6.10-
 +
 +
 +#endif /* _VX_MONITOR_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/network.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/network.h
---- linux-3.6.10/include/linux/vserver/network.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/network.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/network.h linux-3.7-vs2.3.5.1/include/linux/vserver/network.h
+--- linux-3.7/include/linux/vserver/network.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/network.h        2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,148 @@
 +#ifndef _VX_NETWORK_H
 +#define _VX_NETWORK_H
@@ -13053,9 +12721,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/network.h linux-3.6.10-
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_NETWORK_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/network_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/network_cmd.h
---- linux-3.6.10/include/linux/vserver/network_cmd.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/network_cmd.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/network_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/network_cmd.h
+--- linux-3.7/include/linux/vserver/network_cmd.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/network_cmd.h    2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,164 @@
 +#ifndef _VX_NETWORK_CMD_H
 +#define _VX_NETWORK_CMD_H
@@ -13221,9 +12889,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/network_cmd.h linux-3.6
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_CONTEXT_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/percpu.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/percpu.h
---- linux-3.6.10/include/linux/vserver/percpu.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/percpu.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/percpu.h linux-3.7-vs2.3.5.1/include/linux/vserver/percpu.h
+--- linux-3.7/include/linux/vserver/percpu.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/percpu.h 2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,14 @@
 +#ifndef _VX_PERCPU_H
 +#define _VX_PERCPU_H
@@ -13239,9 +12907,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/percpu.h linux-3.6.10-v
 +#define       PERCPU_PERCTX   (sizeof(struct _vx_percpu))
 +
 +#endif        /* _VX_PERCPU_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/pid.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/pid.h
---- linux-3.6.10/include/linux/vserver/pid.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/pid.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/pid.h linux-3.7-vs2.3.5.1/include/linux/vserver/pid.h
+--- linux-3.7/include/linux/vserver/pid.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/pid.h    2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,51 @@
 +#ifndef _VSERVER_PID_H
 +#define _VSERVER_PID_H
@@ -13294,9 +12962,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/pid.h linux-3.6.10-vs2.
 +}
 +
 +#endif
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/sched.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/sched.h
---- linux-3.6.10/include/linux/vserver/sched.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/sched.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/sched.h linux-3.7-vs2.3.5.1/include/linux/vserver/sched.h
+--- linux-3.7/include/linux/vserver/sched.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/sched.h  2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,23 @@
 +#ifndef _VX_SCHED_H
 +#define _VX_SCHED_H
@@ -13321,9 +12989,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/sched.h linux-3.6.10-vs
 +#else /* _VX_SCHED_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_SCHED_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/sched_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/sched_cmd.h
---- linux-3.6.10/include/linux/vserver/sched_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/sched_cmd.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/sched_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/sched_cmd.h
+--- linux-3.7/include/linux/vserver/sched_cmd.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/sched_cmd.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,21 @@
 +#ifndef _VX_SCHED_CMD_H
 +#define _VX_SCHED_CMD_H
@@ -13346,9 +13014,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/sched_cmd.h linux-3.6.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_SCHED_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/sched_def.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/sched_def.h
---- linux-3.6.10/include/linux/vserver/sched_def.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/sched_def.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/sched_def.h linux-3.7-vs2.3.5.1/include/linux/vserver/sched_def.h
+--- linux-3.7/include/linux/vserver/sched_def.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/sched_def.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,38 @@
 +#ifndef _VX_SCHED_DEF_H
 +#define _VX_SCHED_DEF_H
@@ -13388,9 +13056,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/sched_def.h linux-3.6.1
 +#endif
 +
 +#endif        /* _VX_SCHED_DEF_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/signal.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/signal.h
---- linux-3.6.10/include/linux/vserver/signal.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/signal.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/signal.h linux-3.7-vs2.3.5.1/include/linux/vserver/signal.h
+--- linux-3.7/include/linux/vserver/signal.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/signal.h 2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,14 @@
 +#ifndef _VX_SIGNAL_H
 +#define _VX_SIGNAL_H
@@ -13406,9 +13074,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/signal.h linux-3.6.10-v
 +#else /* _VX_SIGNAL_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_SIGNAL_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/signal_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/signal_cmd.h
---- linux-3.6.10/include/linux/vserver/signal_cmd.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/signal_cmd.h  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/signal_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/signal_cmd.h
+--- linux-3.7/include/linux/vserver/signal_cmd.h       1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/signal_cmd.h     2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,43 @@
 +#ifndef _VX_SIGNAL_CMD_H
 +#define _VX_SIGNAL_CMD_H
@@ -13453,9 +13121,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/signal_cmd.h linux-3.6.
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_SIGNAL_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/space.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/space.h
---- linux-3.6.10/include/linux/vserver/space.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/space.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/space.h linux-3.7-vs2.3.5.1/include/linux/vserver/space.h
+--- linux-3.7/include/linux/vserver/space.h    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/space.h  2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,12 @@
 +#ifndef _VX_SPACE_H
 +#define _VX_SPACE_H
@@ -13469,9 +13137,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/space.h linux-3.6.10-vs
 +#else /* _VX_SPACE_H */
 +#warning duplicate inclusion
 +#endif        /* _VX_SPACE_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/space_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/space_cmd.h
---- linux-3.6.10/include/linux/vserver/space_cmd.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/space_cmd.h   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/space_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/space_cmd.h
+--- linux-3.7/include/linux/vserver/space_cmd.h        1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/space_cmd.h      2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,38 @@
 +#ifndef _VX_SPACE_CMD_H
 +#define _VX_SPACE_CMD_H
@@ -13511,9 +13179,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/space_cmd.h linux-3.6.1
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_SPACE_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/switch.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/switch.h
---- linux-3.6.10/include/linux/vserver/switch.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/switch.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/switch.h linux-3.7-vs2.3.5.1/include/linux/vserver/switch.h
+--- linux-3.7/include/linux/vserver/switch.h   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/switch.h 2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,98 @@
 +#ifndef _VX_SWITCH_H
 +#define _VX_SWITCH_H
@@ -13613,9 +13281,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/switch.h linux-3.6.10-v
 +
 +#endif        /* _VX_SWITCH_H */
 +
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/tag.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/tag.h
---- linux-3.6.10/include/linux/vserver/tag.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/tag.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/tag.h linux-3.7-vs2.3.5.1/include/linux/vserver/tag.h
+--- linux-3.7/include/linux/vserver/tag.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/tag.h    2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,143 @@
 +#ifndef _DX_TAG_H
 +#define _DX_TAG_H
@@ -13760,9 +13428,9 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/tag.h linux-3.6.10-vs2.
 +#endif
 +
 +#endif /* _DX_TAG_H */
-diff -NurpP --minimal linux-3.6.10/include/linux/vserver/tag_cmd.h linux-3.6.10-vs2.3.4.5/include/linux/vserver/tag_cmd.h
---- linux-3.6.10/include/linux/vserver/tag_cmd.h       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/linux/vserver/tag_cmd.h     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/linux/vserver/tag_cmd.h linux-3.7-vs2.3.5.1/include/linux/vserver/tag_cmd.h
+--- linux-3.7/include/linux/vserver/tag_cmd.h  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/linux/vserver/tag_cmd.h        2012-12-11 15:56:32.000000000 +0000
 @@ -0,0 +1,22 @@
 +#ifndef _VX_TAG_CMD_H
 +#define _VX_TAG_CMD_H
@@ -13786,11 +13454,11 @@ diff -NurpP --minimal linux-3.6.10/include/linux/vserver/tag_cmd.h linux-3.6.10-
 +
 +#endif        /* __KERNEL__ */
 +#endif        /* _VX_TAG_CMD_H */
-diff -NurpP --minimal linux-3.6.10/include/net/addrconf.h linux-3.6.10-vs2.3.4.5/include/net/addrconf.h
---- linux-3.6.10/include/net/addrconf.h        2012-10-04 15:27:47.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/net/addrconf.h      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/net/addrconf.h linux-3.7-vs2.3.5.1/include/net/addrconf.h
+--- linux-3.7/include/net/addrconf.h   2012-12-11 15:47:46.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/net/addrconf.h 2012-12-11 15:56:32.000000000 +0000
 @@ -81,7 +81,8 @@ extern int                   ipv6_dev_get_saddr(struct n
-                                              struct net_device *dev,
+                                              const struct net_device *dev,
                                               const struct in6_addr *daddr,
                                               unsigned int srcprefs,
 -                                             struct in6_addr *saddr);
@@ -13799,9 +13467,9 @@ diff -NurpP --minimal linux-3.6.10/include/net/addrconf.h linux-3.6.10-vs2.3.4.5
  extern int                    ipv6_get_lladdr(struct net_device *dev,
                                                struct in6_addr *addr,
                                                unsigned char banned_flags);
-diff -NurpP --minimal linux-3.6.10/include/net/af_unix.h linux-3.6.10-vs2.3.4.5/include/net/af_unix.h
---- linux-3.6.10/include/net/af_unix.h 2012-10-04 15:27:47.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/net/af_unix.h       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/net/af_unix.h linux-3.7-vs2.3.5.1/include/net/af_unix.h
+--- linux-3.7/include/net/af_unix.h    2012-10-04 13:27:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/net/af_unix.h  2012-12-11 15:56:32.000000000 +0000
 @@ -4,6 +4,7 @@
  #include <linux/socket.h>
  #include <linux/un.h>
@@ -13810,9 +13478,9 @@ diff -NurpP --minimal linux-3.6.10/include/net/af_unix.h linux-3.6.10-vs2.3.4.5/
  #include <net/sock.h>
  
  extern void unix_inflight(struct file *fp);
-diff -NurpP --minimal linux-3.6.10/include/net/inet_timewait_sock.h linux-3.6.10-vs2.3.4.5/include/net/inet_timewait_sock.h
---- linux-3.6.10/include/net/inet_timewait_sock.h      2012-03-19 19:47:29.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/net/inet_timewait_sock.h    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/include/net/inet_timewait_sock.h linux-3.7-vs2.3.5.1/include/net/inet_timewait_sock.h
+--- linux-3.7/include/net/inet_timewait_sock.h 2012-03-19 18:47:29.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/net/inet_timewait_sock.h       2012-12-11 15:56:32.000000000 +0000
 @@ -112,6 +112,10 @@ struct inet_timewait_sock {
  #define tw_net                        __tw_common.skc_net
  #define tw_daddr              __tw_common.skc_daddr
@@ -13824,10 +13492,10 @@ diff -NurpP --minimal linux-3.6.10/include/net/inet_timewait_sock.h linux-3.6.10
        int                     tw_timeout;
        volatile unsigned char  tw_substate;
        unsigned char           tw_rcv_wscale;
-diff -NurpP --minimal linux-3.6.10/include/net/ip6_route.h linux-3.6.10-vs2.3.4.5/include/net/ip6_route.h
---- linux-3.6.10/include/net/ip6_route.h       2012-10-04 15:27:47.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/net/ip6_route.h     2012-10-04 18:47:00.000000000 +0200
-@@ -97,7 +97,8 @@ extern int                   ip6_route_get_saddr(struct 
+diff -NurpP --minimal linux-3.7/include/net/ip6_route.h linux-3.7-vs2.3.5.1/include/net/ip6_route.h
+--- linux-3.7/include/net/ip6_route.h  2012-10-04 13:27:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/net/ip6_route.h        2012-12-11 15:56:32.000000000 +0000
+@@ -97,7 +97,8 @@ extern int                   ip6_route_get_saddr(struct
                                                    struct rt6_info *rt,
                                                    const struct in6_addr *daddr,
                                                    unsigned int prefs,
@@ -13837,9 +13505,9 @@ diff -NurpP --minimal linux-3.6.10/include/net/ip6_route.h linux-3.6.10-vs2.3.4.
  
  extern struct rt6_info                *rt6_lookup(struct net *net,
                                            const struct in6_addr *daddr,
-diff -NurpP --minimal linux-3.6.10/include/net/route.h linux-3.6.10-vs2.3.4.5/include/net/route.h
---- linux-3.6.10/include/net/route.h   2012-12-11 12:36:59.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/include/net/route.h 2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/include/net/route.h linux-3.7-vs2.3.5.1/include/net/route.h
+--- linux-3.7/include/net/route.h      2012-12-11 15:47:46.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/net/route.h    2012-12-11 15:56:32.000000000 +0000
 @@ -204,6 +204,9 @@ static inline void ip_rt_put(struct rtab
                dst_release(&rt->dst);
  }
@@ -13849,73 +13517,218 @@ diff -NurpP --minimal linux-3.6.10/include/net/route.h linux-3.6.10-vs2.3.4.5/in
 +
  #define IPTOS_RT_MASK (IPTOS_TOS_MASK & ~3)
  
- extern const __u8 ip_tos2prio[16];
-@@ -253,6 +256,9 @@ static inline void ip_route_connect_init
-                          protocol, flow_flags, dst, src, dport, sport);
- }
+ extern const __u8 ip_tos2prio[16];
+@@ -253,6 +256,9 @@ static inline void ip_route_connect_init
+                          protocol, flow_flags, dst, src, dport, sport);
+ }
++extern struct rtable *ip_v4_find_src(struct net *net, struct nx_info *,
++      struct flowi4 *);
++
+ static inline struct rtable *ip_route_connect(struct flowi4 *fl4,
+                                             __be32 dst, __be32 src, u32 tos,
+                                             int oif, u8 protocol,
+@@ -261,11 +267,25 @@ static inline struct rtable *ip_route_co
+ {
+       struct net *net = sock_net(sk);
+       struct rtable *rt;
++      struct nx_info *nx_info = current_nx_info();
+       ip_route_connect_init(fl4, dst, src, tos, oif, protocol,
+                             sport, dport, sk, can_sleep);
+-      if (!dst || !src) {
++      if (sk)
++              nx_info = sk->sk_nx_info;
++
++      vxdprintk(VXD_CBIT(net, 4),
++              "ip_route_connect(%p) %p,%p;%lx",
++              sk, nx_info, sk->sk_socket,
++              (sk->sk_socket?sk->sk_socket->flags:0));
++
++      rt = ip_v4_find_src(net, nx_info, fl4);
++      if (IS_ERR(rt))
++              return rt;
++      ip_rt_put(rt);
++
++      if (!fl4->daddr || !fl4->saddr) {
+               rt = __ip_route_output_key(net, fl4);
+               if (IS_ERR(rt))
+                       return rt;
+diff -NurpP --minimal linux-3.7/include/net/sock.h linux-3.7-vs2.3.5.1/include/net/sock.h
+--- linux-3.7/include/net/sock.h       2012-12-11 15:47:46.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/net/sock.h     2012-12-11 15:56:32.000000000 +0000
+@@ -171,6 +171,10 @@ struct sock_common {
+ #ifdef CONFIG_NET_NS
+       struct net              *skc_net;
+ #endif
++      xid_t                   skc_xid;
++      struct vx_info          *skc_vx_info;
++      nid_t                   skc_nid;
++      struct nx_info          *skc_nx_info;
+       /*
+        * fields between dontcopy_begin/dontcopy_end
+        * are not copied in sock_copy()
+@@ -283,6 +287,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
++#define sk_xid                        __sk_common.skc_xid
++#define sk_vx_info            __sk_common.skc_vx_info
++#define sk_nid                        __sk_common.skc_nid
++#define sk_nx_info            __sk_common.skc_nx_info
+       socket_lock_t           sk_lock;
+       struct sk_buff_head     sk_receive_queue;
+       /*
+diff -NurpP --minimal linux-3.7/include/uapi/linux/capability.h linux-3.7-vs2.3.5.1/include/uapi/linux/capability.h
+--- linux-3.7/include/uapi/linux/capability.h  2012-12-11 15:47:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/uapi/linux/capability.h        2012-12-11 16:08:57.000000000 +0000
+@@ -259,6 +259,7 @@ struct vfs_cap_data {
+    arbitrary SCSI commands */
+ /* Allow setting encryption key on loopback filesystem */
+ /* Allow setting zone reclaim policy */
++/* Allow the selection of a security context */
+ #define CAP_SYS_ADMIN        21
+@@ -345,7 +346,12 @@ struct vfs_cap_data {
+ #define CAP_LAST_CAP         CAP_BLOCK_SUSPEND
+-#define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
++/* Allow context manipulations */
++/* Allow changing context info on files */
++
++#define CAP_CONTEXT        63
++
++#define cap_valid(x) ((x) >= 0 && ((x) <= CAP_LAST_CAP || (x) == CAP_CONTEXT))
+ /*
+  * Bit location of each capability (used by user-space library and kernel)
+diff -NurpP --minimal linux-3.7/include/uapi/linux/fs.h linux-3.7-vs2.3.5.1/include/uapi/linux/fs.h
+--- linux-3.7/include/uapi/linux/fs.h  2012-12-11 15:47:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/uapi/linux/fs.h        2012-12-11 16:35:06.000000000 +0000
+@@ -86,6 +86,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 */
++#define MS_TAGGED     (1<<25) /* use generic inode tagging */
++#define MS_TAGID      (1<<26) /* use specific tag for this mount */
++#define MS_NOTAGCHECK (1<<27) /* don't check tags */
+ #define MS_NOSEC      (1<<28)
+ #define MS_BORN               (1<<29)
+ #define MS_ACTIVE     (1<<30)
+@@ -189,11 +192,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 */
++#define FS_IXUNLINK_FL                        0x08000000 /* Immutable invert on unlink */
+ #define FS_RESERVED_FL                        0x80000000 /* reserved for ext2 lib */
+-#define FS_FL_USER_VISIBLE            0x0003DFFF /* User visible flags */
+-#define FS_FL_USER_MODIFIABLE         0x000380FF /* User modifiable flags */
+-
++#define FS_BARRIER_FL                 0x04000000 /* Barrier for chroot() */
++#define FS_COW_FL                     0x20000000 /* Copy on Write marker */
++
++#define FS_FL_USER_VISIBLE            0x0103DFFF /* User visible flags */
++#define FS_FL_USER_MODIFIABLE         0x010380FF /* User modifiable flags */
+ #define SYNC_FILE_RANGE_WAIT_BEFORE   1
+ #define SYNC_FILE_RANGE_WRITE         2
+diff -NurpP --minimal linux-3.7/include/uapi/linux/gfs2_ondisk.h linux-3.7-vs2.3.5.1/include/uapi/linux/gfs2_ondisk.h
+--- linux-3.7/include/uapi/linux/gfs2_ondisk.h 2012-12-11 15:47:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/uapi/linux/gfs2_ondisk.h       2012-12-11 21:58:36.000000000 +0000
+@@ -225,6 +225,9 @@ enum {
+       gfs2fl_Sync             = 8,
+       gfs2fl_System           = 9,
+       gfs2fl_TopLevel         = 10,
++      gfs2fl_IXUnlink         = 16,
++      gfs2fl_Barrier          = 17,
++      gfs2fl_Cow              = 18,
+       gfs2fl_TruncInProg      = 29,
+       gfs2fl_InheritDirectio  = 30,
+       gfs2fl_InheritJdata     = 31,
+@@ -242,6 +245,9 @@ enum {
+ #define GFS2_DIF_SYNC                 0x00000100
+ #define GFS2_DIF_SYSTEM                       0x00000200 /* New in gfs2 */
+ #define GFS2_DIF_TOPDIR                       0x00000400 /* New in gfs2 */
++#define GFS2_DIF_IXUNLINK               0x00010000
++#define GFS2_DIF_BARRIER                0x00020000
++#define GFS2_DIF_COW                    0x00040000
+ #define GFS2_DIF_TRUNC_IN_PROG                0x20000000 /* New in gfs2 */
+ #define GFS2_DIF_INHERIT_DIRECTIO     0x40000000 /* only in gfs1 */
+ #define GFS2_DIF_INHERIT_JDATA                0x80000000
+diff -NurpP --minimal linux-3.7/include/uapi/linux/if_tun.h linux-3.7-vs2.3.5.1/include/uapi/linux/if_tun.h
+--- linux-3.7/include/uapi/linux/if_tun.h      2012-12-11 15:47:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/uapi/linux/if_tun.h    2012-12-11 16:11:03.000000000 +0000
+@@ -53,6 +53,7 @@
+ #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
+ #define TUNGETVNETHDRSZ _IOR('T', 215, int)
+ #define TUNSETVNETHDRSZ _IOW('T', 216, int)
++#define TUNSETNID     _IOW('T', 217, int)
+ /* TUNSETIFF ifr flags */
+ #define IFF_TUN               0x0001
+diff -NurpP --minimal linux-3.7/include/uapi/linux/major.h linux-3.7-vs2.3.5.1/include/uapi/linux/major.h
+--- linux-3.7/include/uapi/linux/major.h       2012-12-11 15:47:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/uapi/linux/major.h     2012-12-11 22:10:37.000000000 +0000
+@@ -15,6 +15,7 @@
+ #define HD_MAJOR              IDE0_MAJOR
+ #define PTY_SLAVE_MAJOR               3
+ #define TTY_MAJOR             4
++#define VROOT_MAJOR           4
+ #define TTYAUX_MAJOR          5
+ #define LP_MAJOR              6
+ #define VCS_MAJOR             7
+diff -NurpP --minimal linux-3.7/include/uapi/linux/nfs_mount.h linux-3.7-vs2.3.5.1/include/uapi/linux/nfs_mount.h
+--- linux-3.7/include/uapi/linux/nfs_mount.h   2012-12-11 15:47:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/uapi/linux/nfs_mount.h 2012-12-11 22:05:39.000000000 +0000
+@@ -63,7 +63,8 @@ struct nfs_mount_data {
+ #define NFS_MOUNT_SECFLAVOUR  0x2000  /* 5 */
+ #define NFS_MOUNT_NORDIRPLUS  0x4000  /* 5 */
+ #define NFS_MOUNT_UNSHARED    0x8000  /* 5 */
+-#define NFS_MOUNT_FLAGMASK    0xFFFF
++#define NFS_MOUNT_TAGGED      0x10000 /* context tagging */
++#define NFS_MOUNT_FLAGMASK    0x1FFFF
+ /* The following are for internal use only */
+ #define NFS_MOUNT_LOOKUP_CACHE_NONEG  0x10000
+diff -NurpP --minimal linux-3.7/include/uapi/linux/reboot.h linux-3.7-vs2.3.5.1/include/uapi/linux/reboot.h
+--- linux-3.7/include/uapi/linux/reboot.h      2012-12-11 15:47:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/uapi/linux/reboot.h    2012-12-11 16:29:23.000000000 +0000
+@@ -33,7 +33,7 @@
+ #define       LINUX_REBOOT_CMD_RESTART2       0xA1B2C3D4
+ #define       LINUX_REBOOT_CMD_SW_SUSPEND     0xD000FCE2
+ #define       LINUX_REBOOT_CMD_KEXEC          0x45584543
+-
++#define       LINUX_REBOOT_CMD_OOM            0xDEADBEEF
  
-+extern struct rtable *ip_v4_find_src(struct net *net, struct nx_info *,
-+      struct flowi4 *);
-+
- static inline struct rtable *ip_route_connect(struct flowi4 *fl4,
-                                             __be32 dst, __be32 src, u32 tos,
-                                             int oif, u8 protocol,
-@@ -261,11 +267,25 @@ static inline struct rtable *ip_route_co
- {
-       struct net *net = sock_net(sk);
-       struct rtable *rt;
-+      struct nx_info *nx_info = current_nx_info();
+ #endif /* _UAPI_LINUX_REBOOT_H */
+diff -NurpP --minimal linux-3.7/include/uapi/linux/sysctl.h linux-3.7-vs2.3.5.1/include/uapi/linux/sysctl.h
+--- linux-3.7/include/uapi/linux/sysctl.h      2012-12-11 15:47:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/include/uapi/linux/sysctl.h    2012-12-11 16:42:05.000000000 +0000
+@@ -60,6 +60,7 @@ enum
+       CTL_ABI=9,              /* Binary emulation */
+       CTL_CPU=10,             /* CPU stuff (speed scaling, etc) */
+       CTL_ARLAN=254,          /* arlan wireless driver */
++      CTL_VSERVER=4242,       /* Linux-VServer debug */
+       CTL_S390DBF=5677,       /* s390 debug */
+       CTL_SUNRPC=7249,        /* sunrpc debug */
+       CTL_PM=9899,            /* frv power management */
+@@ -94,6 +95,7 @@ enum
  
-       ip_route_connect_init(fl4, dst, src, tos, oif, protocol,
-                             sport, dport, sk, can_sleep);
+       KERN_PANIC=15,          /* int: panic timeout */
+       KERN_REALROOTDEV=16,    /* real root device to mount after initrd */
++      KERN_VSHELPER=17,       /* string: path to vshelper policy agent */
  
--      if (!dst || !src) {
-+      if (sk)
-+              nx_info = sk->sk_nx_info;
-+
-+      vxdprintk(VXD_CBIT(net, 4),
-+              "ip_route_connect(%p) %p,%p;%lx",
-+              sk, nx_info, sk->sk_socket,
-+              (sk->sk_socket?sk->sk_socket->flags:0));
-+
-+      rt = ip_v4_find_src(net, nx_info, fl4);
-+      if (IS_ERR(rt))
-+              return rt;
-+      ip_rt_put(rt);
-+
-+      if (!fl4->daddr || !fl4->saddr) {
-               rt = __ip_route_output_key(net, fl4);
-               if (IS_ERR(rt))
-                       return rt;
-diff -NurpP --minimal linux-3.6.10/include/net/sock.h linux-3.6.10-vs2.3.4.5/include/net/sock.h
---- linux-3.6.10/include/net/sock.h    2012-10-04 15:27:47.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/include/net/sock.h  2012-10-04 18:47:00.000000000 +0200
-@@ -171,6 +171,10 @@ struct sock_common {
- #ifdef CONFIG_NET_NS
-       struct net              *skc_net;
- #endif
-+      xid_t                   skc_xid;
-+      struct vx_info          *skc_vx_info;
-+      nid_t                   skc_nid;
-+      struct nx_info          *skc_nx_info;
-       /*
-        * fields between dontcopy_begin/dontcopy_end
-        * are not copied in sock_copy()
-@@ -284,6 +288,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
-+#define sk_xid                        __sk_common.skc_xid
-+#define sk_vx_info            __sk_common.skc_vx_info
-+#define sk_nid                        __sk_common.skc_nid
-+#define sk_nx_info            __sk_common.skc_nx_info
-       socket_lock_t           sk_lock;
-       struct sk_buff_head     sk_receive_queue;
-       /*
-diff -NurpP --minimal linux-3.6.10/init/Kconfig linux-3.6.10-vs2.3.4.5/init/Kconfig
---- linux-3.6.10/init/Kconfig  2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/init/Kconfig        2012-10-04 18:47:00.000000000 +0200
-@@ -624,6 +624,7 @@ config HAVE_UNSTABLE_SCHED_CLOCK
+       KERN_SPARC_REBOOT=21,   /* reboot command on Sparc */
+       KERN_CTLALTDEL=22,      /* int: allow ctl-alt-del to reboot */
+diff -NurpP --minimal linux-3.7/init/Kconfig linux-3.7-vs2.3.5.1/init/Kconfig
+--- linux-3.7/init/Kconfig     2012-12-11 15:47:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/init/Kconfig   2012-12-11 23:14:38.000000000 +0000
+@@ -699,6 +699,7 @@ config HAVE_UNSTABLE_SCHED_CLOCK
  menuconfig CGROUPS
        boolean "Control Group support"
        depends on EVENTFD
@@ -13923,7 +13736,7 @@ diff -NurpP --minimal linux-3.6.10/init/Kconfig linux-3.6.10-vs2.3.4.5/init/Kcon
        help
          This option adds support for grouping sets of processes together, for
          use with process control subsystems such as Cpusets, CFS, memory
-@@ -889,6 +890,7 @@ config USER_NS
+@@ -964,6 +965,7 @@ config USER_NS
        bool "User namespace (EXPERIMENTAL)"
        depends on EXPERIMENTAL
        depends on UIDGID_CONVERTED
@@ -13931,20 +13744,20 @@ diff -NurpP --minimal linux-3.6.10/init/Kconfig linux-3.6.10-vs2.3.4.5/init/Kcon
        select UIDGID_STRICT_TYPE_CHECKS
  
        default n
-diff -NurpP --minimal linux-3.6.10/init/main.c linux-3.6.10-vs2.3.4.5/init/main.c
---- linux-3.6.10/init/main.c   2012-12-11 12:36:59.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/init/main.c 2012-11-06 18:43:41.000000000 +0100
-@@ -69,6 +69,7 @@
- #include <linux/slab.h>
+diff -NurpP --minimal linux-3.7/init/main.c linux-3.7-vs2.3.5.1/init/main.c
+--- linux-3.7/init/main.c      2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/init/main.c    2012-12-11 16:56:16.000000000 +0000
+@@ -70,6 +70,7 @@
  #include <linux/perf_event.h>
  #include <linux/file.h>
+ #include <linux/ptrace.h>
 +#include <linux/vserver/percpu.h>
  
  #include <asm/io.h>
  #include <asm/bugs.h>
-diff -NurpP --minimal linux-3.6.10/ipc/mqueue.c linux-3.6.10-vs2.3.4.5/ipc/mqueue.c
---- linux-3.6.10/ipc/mqueue.c  2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/ipc/mqueue.c        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/ipc/mqueue.c linux-3.7-vs2.3.5.1/ipc/mqueue.c
+--- linux-3.7/ipc/mqueue.c     2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/ipc/mqueue.c   2012-12-11 15:56:32.000000000 +0000
 @@ -35,6 +35,8 @@
  #include <linux/ipc_namespace.h>
  #include <linux/user_namespace.h>
@@ -13962,7 +13775,7 @@ diff -NurpP --minimal linux-3.6.10/ipc/mqueue.c linux-3.6.10-vs2.3.4.5/ipc/mqueu
        struct sock *notify_sock;
        struct sk_buff *notify_cookie;
  
-@@ -235,6 +238,7 @@ static struct inode *mqueue_get_inode(st
+@@ -234,6 +237,7 @@ static struct inode *mqueue_get_inode(st
        if (S_ISREG(mode)) {
                struct mqueue_inode_info *info;
                unsigned long mq_bytes, mq_treesize;
@@ -13970,7 +13783,7 @@ diff -NurpP --minimal linux-3.6.10/ipc/mqueue.c linux-3.6.10-vs2.3.4.5/ipc/mqueu
  
                inode->i_fop = &mqueue_file_operations;
                inode->i_size = FILENT_SIZE;
-@@ -248,6 +252,7 @@ static struct inode *mqueue_get_inode(st
+@@ -247,6 +251,7 @@ static struct inode *mqueue_get_inode(st
                info->notify_user_ns = NULL;
                info->qsize = 0;
                info->user = NULL;      /* set when all is ok */
@@ -13978,7 +13791,7 @@ diff -NurpP --minimal linux-3.6.10/ipc/mqueue.c linux-3.6.10-vs2.3.4.5/ipc/mqueu
                info->msg_tree = RB_ROOT;
                info->node_cache = NULL;
                memset(&info->attr, 0, sizeof(info->attr));
-@@ -281,17 +286,20 @@ static struct inode *mqueue_get_inode(st
+@@ -280,17 +285,20 @@ static struct inode *mqueue_get_inode(st
  
                spin_lock(&mq_lock);
                if (u->mq_bytes + mq_bytes < u->mq_bytes ||
@@ -14000,7 +13813,7 @@ diff -NurpP --minimal linux-3.6.10/ipc/mqueue.c linux-3.6.10-vs2.3.4.5/ipc/mqueu
        } else if (S_ISDIR(mode)) {
                inc_nlink(inode);
                /* Some things misbehave if size == 0 on a directory */
-@@ -395,8 +403,11 @@ static void mqueue_evict_inode(struct in
+@@ -394,8 +402,11 @@ static void mqueue_evict_inode(struct in
  
        user = info->user;
        if (user) {
@@ -14012,7 +13825,7 @@ diff -NurpP --minimal linux-3.6.10/ipc/mqueue.c linux-3.6.10-vs2.3.4.5/ipc/mqueu
                /*
                 * get_ns_from_inode() ensures that the
                 * (ipc_ns = sb->s_fs_info) is either a valid ipc_ns
-@@ -406,6 +417,7 @@ static void mqueue_evict_inode(struct in
+@@ -405,6 +416,7 @@ static void mqueue_evict_inode(struct in
                if (ipc_ns)
                        ipc_ns->mq_queues_count--;
                spin_unlock(&mq_lock);
@@ -14020,9 +13833,9 @@ diff -NurpP --minimal linux-3.6.10/ipc/mqueue.c linux-3.6.10-vs2.3.4.5/ipc/mqueu
                free_uid(user);
        }
        if (ipc_ns)
-diff -NurpP --minimal linux-3.6.10/ipc/msg.c linux-3.6.10-vs2.3.4.5/ipc/msg.c
---- linux-3.6.10/ipc/msg.c     2011-05-22 16:17:59.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/ipc/msg.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/ipc/msg.c linux-3.7-vs2.3.5.1/ipc/msg.c
+--- linux-3.7/ipc/msg.c        2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/ipc/msg.c      2012-12-11 15:56:32.000000000 +0000
 @@ -37,6 +37,7 @@
  #include <linux/rwsem.h>
  #include <linux/nsproxy.h>
@@ -14039,9 +13852,9 @@ diff -NurpP --minimal linux-3.6.10/ipc/msg.c linux-3.6.10-vs2.3.4.5/ipc/msg.c
  
        msq->q_perm.security = NULL;
        retval = security_msg_queue_alloc(msq);
-diff -NurpP --minimal linux-3.6.10/ipc/namespace.c linux-3.6.10-vs2.3.4.5/ipc/namespace.c
---- linux-3.6.10/ipc/namespace.c       2012-07-22 23:39:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/ipc/namespace.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/ipc/namespace.c linux-3.7-vs2.3.5.1/ipc/namespace.c
+--- linux-3.7/ipc/namespace.c  2012-07-22 21:39:46.000000000 +0000
++++ linux-3.7-vs2.3.5.1/ipc/namespace.c        2012-12-11 15:56:32.000000000 +0000
 @@ -13,11 +13,12 @@
  #include <linux/mount.h>
  #include <linux/user_namespace.h>
@@ -14083,9 +13896,9 @@ diff -NurpP --minimal linux-3.6.10/ipc/namespace.c linux-3.6.10-vs2.3.4.5/ipc/na
  }
  
  /*
-diff -NurpP --minimal linux-3.6.10/ipc/sem.c linux-3.6.10-vs2.3.4.5/ipc/sem.c
---- linux-3.6.10/ipc/sem.c     2012-01-09 16:14:59.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/ipc/sem.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/ipc/sem.c linux-3.7-vs2.3.5.1/ipc/sem.c
+--- linux-3.7/ipc/sem.c        2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/ipc/sem.c      2012-12-11 15:56:32.000000000 +0000
 @@ -86,6 +86,8 @@
  #include <linux/rwsem.h>
  #include <linux/nsproxy.h>
@@ -14123,9 +13936,9 @@ diff -NurpP --minimal linux-3.6.10/ipc/sem.c linux-3.6.10-vs2.3.4.5/ipc/sem.c
        security_sem_free(sma);
        ipc_rcu_putref(sma);
  }
-diff -NurpP --minimal linux-3.6.10/ipc/shm.c linux-3.6.10-vs2.3.4.5/ipc/shm.c
---- linux-3.6.10/ipc/shm.c     2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/ipc/shm.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/ipc/shm.c linux-3.7-vs2.3.5.1/ipc/shm.c
+--- linux-3.7/ipc/shm.c        2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/ipc/shm.c      2012-12-11 15:56:32.000000000 +0000
 @@ -39,6 +39,8 @@
  #include <linux/nsproxy.h>
  #include <linux/mount.h>
@@ -14181,9 +13994,9 @@ diff -NurpP --minimal linux-3.6.10/ipc/shm.c linux-3.6.10-vs2.3.4.5/ipc/shm.c
        return error;
  
  no_id:
-diff -NurpP --minimal linux-3.6.10/kernel/Makefile linux-3.6.10-vs2.3.4.5/kernel/Makefile
---- linux-3.6.10/kernel/Makefile       2012-07-22 23:39:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/Makefile     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/Makefile linux-3.7-vs2.3.5.1/kernel/Makefile
+--- linux-3.7/kernel/Makefile  2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/Makefile        2012-12-11 15:56:32.000000000 +0000
 @@ -24,6 +24,7 @@ endif
  
  obj-y += sched/
@@ -14192,11 +14005,11 @@ diff -NurpP --minimal linux-3.6.10/kernel/Makefile linux-3.6.10-vs2.3.4.5/kernel
  
  ifeq ($(CONFIG_CHECKPOINT_RESTORE),y)
  obj-$(CONFIG_X86) += kcmp.o
-diff -NurpP --minimal linux-3.6.10/kernel/auditsc.c linux-3.6.10-vs2.3.4.5/kernel/auditsc.c
---- linux-3.6.10/kernel/auditsc.c      2012-07-22 23:39:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/auditsc.c    2012-10-04 18:47:00.000000000 +0200
-@@ -2309,7 +2309,7 @@ int audit_set_loginuid(uid_t loginuid)
-       if (task->loginuid != -1)
+diff -NurpP --minimal linux-3.7/kernel/auditsc.c linux-3.7-vs2.3.5.1/kernel/auditsc.c
+--- linux-3.7/kernel/auditsc.c 2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/auditsc.c       2012-12-11 15:56:32.000000000 +0000
+@@ -2372,7 +2372,7 @@ int audit_set_loginuid(kuid_t loginuid)
+       if (uid_valid(task->loginuid))
                return -EPERM;
  #else /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
 -      if (!capable(CAP_AUDIT_CONTROL))
@@ -14204,9 +14017,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/auditsc.c linux-3.6.10-vs2.3.4.5/kerne
                return -EPERM;
  #endif  /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
  
-diff -NurpP --minimal linux-3.6.10/kernel/capability.c linux-3.6.10-vs2.3.4.5/kernel/capability.c
---- linux-3.6.10/kernel/capability.c   2012-07-22 23:39:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/capability.c 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/capability.c linux-3.7-vs2.3.5.1/kernel/capability.c
+--- linux-3.7/kernel/capability.c      2012-07-22 21:39:46.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/capability.c    2012-12-11 15:56:32.000000000 +0000
 @@ -15,6 +15,7 @@
  #include <linux/syscalls.h>
  #include <linux/pid_namespace.h>
@@ -14232,10 +14045,18 @@ diff -NurpP --minimal linux-3.6.10/kernel/capability.c linux-3.6.10-vs2.3.4.5/ke
  /**
   * has_capability_noaudit - Does a task have a capability (unaudited) in the
   * initial user ns
-diff -NurpP --minimal linux-3.6.10/kernel/compat.c linux-3.6.10-vs2.3.4.5/kernel/compat.c
---- linux-3.6.10/kernel/compat.c       2012-07-22 23:39:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/compat.c     2012-10-04 18:47:00.000000000 +0200
-@@ -1054,7 +1054,7 @@ asmlinkage long compat_sys_stime(compat_
+diff -NurpP --minimal linux-3.7/kernel/compat.c linux-3.7-vs2.3.5.1/kernel/compat.c
+--- linux-3.7/kernel/compat.c  2012-07-22 21:39:46.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/compat.c        2012-12-11 21:24:51.000000000 +0000
+@@ -27,6 +27,7 @@
+ #include <linux/times.h>
+ #include <linux/ptrace.h>
+ #include <linux/gfp.h>
++#include <linux/vs_time.h>
+ #include <asm/uaccess.h>
+@@ -1054,7 +1055,7 @@ asmlinkage long compat_sys_stime(compat_
        if (err)
                return err;
  
@@ -14244,9 +14065,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/compat.c linux-3.6.10-vs2.3.4.5/kernel
        return 0;
  }
  
-diff -NurpP --minimal linux-3.6.10/kernel/cred.c linux-3.6.10-vs2.3.4.5/kernel/cred.c
---- linux-3.6.10/kernel/cred.c 2012-07-22 23:39:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/cred.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/cred.c linux-3.7-vs2.3.5.1/kernel/cred.c
+--- linux-3.7/kernel/cred.c    2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/cred.c  2012-12-11 15:56:32.000000000 +0000
 @@ -70,31 +70,6 @@ struct cred init_cred = {
  #endif
  };
@@ -14316,9 +14137,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/cred.c linux-3.6.10-vs2.3.4.5/kernel/c
  EXPORT_SYMBOL(prepare_creds);
  
  /*
-diff -NurpP --minimal linux-3.6.10/kernel/exit.c linux-3.6.10-vs2.3.4.5/kernel/exit.c
---- linux-3.6.10/kernel/exit.c 2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/exit.c       2012-12-08 01:20:39.000000000 +0100
+diff -NurpP --minimal linux-3.7/kernel/exit.c linux-3.7-vs2.3.5.1/kernel/exit.c
+--- linux-3.7/kernel/exit.c    2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/exit.c  2012-12-11 15:56:32.000000000 +0000
 @@ -48,6 +48,10 @@
  #include <linux/fs_struct.h>
  #include <linux/init_task.h>
@@ -14330,19 +14151,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/exit.c linux-3.6.10-vs2.3.4.5/kernel/e
  #include <trace/events/sched.h>
  #include <linux/hw_breakpoint.h>
  #include <linux/oom.h>
-@@ -494,9 +498,11 @@ static void close_files(struct files_str
-                                       filp_close(file, files);
-                                       cond_resched();
-                               }
-+                              vx_openfd_dec(i);
-                       }
-                       i++;
-                       set >>= 1;
-+                      cond_resched();
-               }
-       }
- }
-@@ -711,15 +717,25 @@ static struct task_struct *find_new_reap
+@@ -616,15 +620,25 @@ static struct task_struct *find_new_reap
        __acquires(&tasklist_lock)
  {
        struct pid_namespace *pid_ns = task_active_pid_ns(father);
@@ -14371,7 +14180,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/exit.c linux-3.6.10-vs2.3.4.5/kernel/e
        }
  
        if (unlikely(pid_ns->child_reaper == father)) {
-@@ -757,7 +773,9 @@ static struct task_struct *find_new_reap
+@@ -662,7 +676,9 @@ static struct task_struct *find_new_reap
                }
        }
  
@@ -14382,7 +14191,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/exit.c linux-3.6.10-vs2.3.4.5/kernel/e
  }
  
  /*
-@@ -808,10 +826,15 @@ static void forget_original_parent(struc
+@@ -713,10 +729,15 @@ static void forget_original_parent(struc
        list_for_each_entry_safe(p, n, &father->children, sibling) {
                struct task_struct *t = p;
                do {
@@ -14400,7 +14209,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/exit.c linux-3.6.10-vs2.3.4.5/kernel/e
                        }
                        if (t->pdeath_signal)
                                group_send_sig_info(t->pdeath_signal,
-@@ -1018,6 +1041,9 @@ void do_exit(long code)
+@@ -923,6 +944,9 @@ void do_exit(long code)
         */
        ptrace_put_breakpoints(tsk);
  
@@ -14410,7 +14219,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/exit.c linux-3.6.10-vs2.3.4.5/kernel/e
        exit_notify(tsk, group_dead);
  #ifdef CONFIG_NUMA
        task_lock(tsk);
-@@ -1068,10 +1094,15 @@ void do_exit(long code)
+@@ -976,10 +1000,15 @@ void do_exit(long code)
        smp_mb();
        raw_spin_unlock_wait(&tsk->pi_lock);
  
@@ -14426,9 +14235,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/exit.c linux-3.6.10-vs2.3.4.5/kernel/e
        BUG();
        /* Avoid "noreturn function does return".  */
        for (;;)
-diff -NurpP --minimal linux-3.6.10/kernel/fork.c linux-3.6.10-vs2.3.4.5/kernel/fork.c
---- linux-3.6.10/kernel/fork.c 2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/fork.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/fork.c linux-3.7-vs2.3.5.1/kernel/fork.c
+--- linux-3.7/kernel/fork.c    2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/fork.c  2012-12-11 15:56:32.000000000 +0000
 @@ -70,6 +70,9 @@
  #include <linux/khugepaged.h>
  #include <linux/signalfd.h>
@@ -14448,7 +14257,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/fork.c linux-3.6.10-vs2.3.4.5/kernel/f
        ftrace_graph_exit_task(tsk);
        put_seccomp_filter(tsk);
        arch_release_task_struct(tsk);
-@@ -541,6 +546,7 @@ static struct mm_struct *mm_init(struct 
+@@ -545,6 +550,7 @@ static struct mm_struct *mm_init(struct
        if (likely(!mm_alloc_pgd(mm))) {
                mm->def_flags = 0;
                mmu_notifier_mm_init(mm);
@@ -14456,7 +14265,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/fork.c linux-3.6.10-vs2.3.4.5/kernel/f
                return mm;
        }
  
-@@ -593,6 +599,7 @@ void __mmdrop(struct mm_struct *mm)
+@@ -597,6 +603,7 @@ void __mmdrop(struct mm_struct *mm)
        destroy_context(mm);
        mmu_notifier_mm_destroy(mm);
        check_mm(mm);
@@ -14464,7 +14273,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/fork.c linux-3.6.10-vs2.3.4.5/kernel/f
        free_mm(mm);
  }
  EXPORT_SYMBOL_GPL(__mmdrop);
-@@ -834,6 +841,7 @@ struct mm_struct *dup_mm(struct task_str
+@@ -816,6 +823,7 @@ struct mm_struct *dup_mm(struct task_str
                goto fail_nomem;
  
        memcpy(mm, oldmm, sizeof(*mm));
@@ -14472,7 +14281,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/fork.c linux-3.6.10-vs2.3.4.5/kernel/f
        mm_init_cpumask(mm);
  
  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
-@@ -874,6 +882,7 @@ fail_nocontext:
+@@ -854,6 +862,7 @@ fail_nocontext:
         * If init_new_context() failed, we cannot use mmput() to free the mm
         * because it calls destroy_context()
         */
@@ -14480,7 +14289,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/fork.c linux-3.6.10-vs2.3.4.5/kernel/f
        mm_free_pgd(mm);
        free_mm(mm);
        return NULL;
-@@ -1157,6 +1166,8 @@ static struct task_struct *copy_process(
+@@ -1136,6 +1145,8 @@ static struct task_struct *copy_process(
        int retval;
        struct task_struct *p;
        int cgroup_callbacks_done = 0;
@@ -14489,7 +14298,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/fork.c linux-3.6.10-vs2.3.4.5/kernel/f
  
        if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS))
                return ERR_PTR(-EINVAL);
-@@ -1204,7 +1215,12 @@ static struct task_struct *copy_process(
+@@ -1183,7 +1194,12 @@ static struct task_struct *copy_process(
        DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
        DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
  #endif
@@ -14502,7 +14311,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/fork.c linux-3.6.10-vs2.3.4.5/kernel/f
        if (atomic_read(&p->real_cred->user->processes) >=
                        task_rlimit(p, RLIMIT_NPROC)) {
                if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) &&
-@@ -1483,6 +1499,18 @@ static struct task_struct *copy_process(
+@@ -1458,6 +1474,18 @@ static struct task_struct *copy_process(
  
        total_forks++;
        spin_unlock(&current->sighand->siglock);
@@ -14521,20 +14330,20 @@ diff -NurpP --minimal linux-3.6.10/kernel/fork.c linux-3.6.10-vs2.3.4.5/kernel/f
        write_unlock_irq(&tasklist_lock);
        proc_fork_connector(p);
        cgroup_post_fork(p);
-diff -NurpP --minimal linux-3.6.10/kernel/kthread.c linux-3.6.10-vs2.3.4.5/kernel/kthread.c
---- linux-3.6.10/kernel/kthread.c      2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/kthread.c    2012-10-04 18:47:00.000000000 +0200
-@@ -16,6 +16,7 @@
- #include <linux/mutex.h>
+diff -NurpP --minimal linux-3.7/kernel/kthread.c linux-3.7-vs2.3.5.1/kernel/kthread.c
+--- linux-3.7/kernel/kthread.c 2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/kthread.c       2012-12-11 17:04:03.000000000 +0000
+@@ -17,6 +17,7 @@
  #include <linux/slab.h>
  #include <linux/freezer.h>
+ #include <linux/ptrace.h>
 +#include <linux/vs_pid.h>
  #include <trace/events/sched.h>
  
  static DEFINE_SPINLOCK(kthread_create_lock);
-diff -NurpP --minimal linux-3.6.10/kernel/nsproxy.c linux-3.6.10-vs2.3.4.5/kernel/nsproxy.c
---- linux-3.6.10/kernel/nsproxy.c      2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/nsproxy.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/nsproxy.c linux-3.7-vs2.3.5.1/kernel/nsproxy.c
+--- linux-3.7/kernel/nsproxy.c 2012-01-09 15:15:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/nsproxy.c       2012-12-11 15:56:32.000000000 +0000
 @@ -20,11 +20,14 @@
  #include <linux/mnt_namespace.h>
  #include <linux/utsname.h>
@@ -14699,7 +14508,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/nsproxy.c linux-3.6.10-vs2.3.4.5/kerne
        kmem_cache_free(nsproxy_cachep, ns);
  }
  
-@@ -187,11 +238,15 @@ int unshare_nsproxy_namespaces(unsigned 
+@@ -187,11 +238,15 @@ int unshare_nsproxy_namespaces(unsigned
  {
        int err = 0;
  
@@ -14716,9 +14525,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/nsproxy.c linux-3.6.10-vs2.3.4.5/kerne
                return -EPERM;
  
        *new_nsp = create_new_namespaces(unshare_flags, current,
-diff -NurpP --minimal linux-3.6.10/kernel/pid.c linux-3.6.10-vs2.3.4.5/kernel/pid.c
---- linux-3.6.10/kernel/pid.c  2012-07-22 23:39:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/pid.c        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/pid.c linux-3.7-vs2.3.5.1/kernel/pid.c
+--- linux-3.7/kernel/pid.c     2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/pid.c   2012-12-11 15:56:32.000000000 +0000
 @@ -36,6 +36,7 @@
  #include <linux/pid_namespace.h>
  #include <linux/init_task.h>
@@ -14764,9 +14573,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/pid.c linux-3.6.10-vs2.3.4.5/kernel/pi
  {
        struct upid *upid;
        pid_t nr = 0;
-@@ -480,6 +484,11 @@ pid_t pid_nr_ns(struct pid *pid, struct 
-       return nr;
+@@ -481,6 +485,11 @@ pid_t pid_nr_ns(struct pid *pid, struct
  }
+ EXPORT_SYMBOL_GPL(pid_nr_ns);
  
 +pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns)
 +{
@@ -14776,18 +14585,18 @@ diff -NurpP --minimal linux-3.6.10/kernel/pid.c linux-3.6.10-vs2.3.4.5/kernel/pi
  pid_t pid_vnr(struct pid *pid)
  {
        return pid_nr_ns(pid, current->nsproxy->pid_ns);
-diff -NurpP --minimal linux-3.6.10/kernel/pid_namespace.c linux-3.6.10-vs2.3.4.5/kernel/pid_namespace.c
---- linux-3.6.10/kernel/pid_namespace.c        2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/pid_namespace.c      2012-10-04 18:47:00.000000000 +0200
-@@ -16,6 +16,7 @@
- #include <linux/slab.h>
+diff -NurpP --minimal linux-3.7/kernel/pid_namespace.c linux-3.7-vs2.3.5.1/kernel/pid_namespace.c
+--- linux-3.7/kernel/pid_namespace.c   2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/pid_namespace.c 2012-12-11 17:04:24.000000000 +0000
+@@ -17,6 +17,7 @@
  #include <linux/proc_fs.h>
  #include <linux/reboot.h>
+ #include <linux/export.h>
 +#include <linux/vserver/global.h>
  
  #define BITS_PER_PAGE         (PAGE_SIZE*8)
  
-@@ -89,6 +90,7 @@ static struct pid_namespace *create_pid_
+@@ -100,6 +101,7 @@ static struct pid_namespace *create_pid_
                goto out_free_map;
  
        kref_init(&ns->kref);
@@ -14795,7 +14604,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/pid_namespace.c linux-3.6.10-vs2.3.4.5
        ns->level = level;
        ns->parent = get_pid_ns(parent_pid_ns);
  
-@@ -120,6 +122,7 @@ static void destroy_pid_namespace(struct
+@@ -131,6 +133,7 @@ static void destroy_pid_namespace(struct
  
        for (i = 0; i < PIDMAP_ENTRIES; i++)
                kfree(ns->pidmap[i].page);
@@ -14803,9 +14612,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/pid_namespace.c linux-3.6.10-vs2.3.4.5
        kmem_cache_free(pid_ns_cachep, ns);
  }
  
-diff -NurpP --minimal linux-3.6.10/kernel/posix-timers.c linux-3.6.10-vs2.3.4.5/kernel/posix-timers.c
---- linux-3.6.10/kernel/posix-timers.c 2012-01-09 16:15:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/posix-timers.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/posix-timers.c linux-3.7-vs2.3.5.1/kernel/posix-timers.c
+--- linux-3.7/kernel/posix-timers.c    2012-01-09 15:15:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/posix-timers.c  2012-12-11 15:56:32.000000000 +0000
 @@ -47,6 +47,7 @@
  #include <linux/wait.h>
  #include <linux/workqueue.h>
@@ -14841,9 +14650,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/posix-timers.c linux-3.6.10-vs2.3.4.5/
        /* If we failed to send the signal the timer stops. */
        return ret > 0;
  }
-diff -NurpP --minimal linux-3.6.10/kernel/printk.c linux-3.6.10-vs2.3.4.5/kernel/printk.c
---- linux-3.6.10/kernel/printk.c       2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/printk.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/printk.c linux-3.7-vs2.3.5.1/kernel/printk.c
+--- linux-3.7/kernel/printk.c  2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/printk.c        2012-12-11 15:56:32.000000000 +0000
 @@ -42,6 +42,7 @@
  #include <linux/notifier.h>
  #include <linux/rculist.h>
@@ -14852,7 +14661,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/printk.c linux-3.6.10-vs2.3.4.5/kernel
  
  #include <asm/uaccess.h>
  
-@@ -818,7 +819,7 @@ static int check_syslog_permissions(int 
+@@ -818,7 +819,7 @@ static int check_syslog_permissions(int
                return 0;
  
        if (syslog_action_restricted(type)) {
@@ -14911,9 +14720,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/printk.c linux-3.6.10-vs2.3.4.5/kernel
                error = syslog_print_all(buf, len, clear);
                break;
        /* Clear ring buffer */
-diff -NurpP --minimal linux-3.6.10/kernel/ptrace.c linux-3.6.10-vs2.3.4.5/kernel/ptrace.c
---- linux-3.6.10/kernel/ptrace.c       2012-07-22 23:39:46.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/ptrace.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/ptrace.c linux-3.7-vs2.3.5.1/kernel/ptrace.c
+--- linux-3.7/kernel/ptrace.c  2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/ptrace.c        2012-12-11 15:56:32.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <linux/syscalls.h>
  #include <linux/uaccess.h>
@@ -14922,7 +14731,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/ptrace.c linux-3.6.10-vs2.3.4.5/kernel
  #include <linux/hw_breakpoint.h>
  #include <linux/cn_proc.h>
  
-@@ -216,6 +217,11 @@ ok:
+@@ -217,6 +218,11 @@ ok:
                dumpable = get_dumpable(task->mm);
        if (!dumpable  && !ptrace_has_cap(task_user_ns(task), mode))
                return -EPERM;
@@ -14934,9 +14743,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/ptrace.c linux-3.6.10-vs2.3.4.5/kernel
  
        return security_ptrace_access_check(task, mode);
  }
-diff -NurpP --minimal linux-3.6.10/kernel/sched/core.c linux-3.6.10-vs2.3.4.5/kernel/sched/core.c
---- linux-3.6.10/kernel/sched/core.c   2012-12-11 12:37:02.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/sched/core.c 2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/kernel/sched/core.c linux-3.7-vs2.3.5.1/kernel/sched/core.c
+--- linux-3.7/kernel/sched/core.c      2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/sched/core.c    2012-12-11 15:56:32.000000000 +0000
 @@ -72,6 +72,8 @@
  #include <linux/slab.h>
  #include <linux/init_task.h>
@@ -14946,7 +14755,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/sched/core.c linux-3.6.10-vs2.3.4.5/ke
  
  #include <asm/switch_to.h>
  #include <asm/tlb.h>
-@@ -2223,9 +2225,17 @@ EXPORT_SYMBOL(avenrun); /* should be rem
+@@ -2030,9 +2032,17 @@ EXPORT_SYMBOL(avenrun); /* should be rem
   */
  void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
  {
@@ -14967,7 +14776,27 @@ diff -NurpP --minimal linux-3.6.10/kernel/sched/core.c linux-3.6.10-vs2.3.4.5/ke
  }
  
  static long calc_load_fold_active(struct rq *this_rq)
-@@ -2854,14 +2864,17 @@ static inline void task_group_account_fi
+@@ -3596,7 +3606,7 @@ SYSCALL_DEFINE1(nice, int, increment)
+               nice = 19;
+       if (increment < 0 && !can_nice(current, nice))
+-              return -EPERM;
++              return vx_flags(VXF_IGNEG_NICE, 0) ? 0 : -EPERM;
+       retval = security_task_setnice(current, nice);
+       if (retval)
+diff -NurpP --minimal linux-3.7/kernel/sched/cputime.c linux-3.7-vs2.3.5.1/kernel/sched/cputime.c
+--- linux-3.7/kernel/sched/cputime.c   2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/sched/cputime.c 2012-12-11 21:13:27.000000000 +0000
+@@ -3,6 +3,7 @@
+ #include <linux/tsacct_kern.h>
+ #include <linux/kernel_stat.h>
+ #include <linux/static_key.h>
++#include <linux/vs_sched.h>
+ #include "sched.h"
+@@ -150,14 +151,17 @@ static inline void task_group_account_fi
  void account_user_time(struct task_struct *p, cputime_t cputime,
                       cputime_t cputime_scaled)
  {
@@ -14986,7 +14815,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/sched/core.c linux-3.6.10-vs2.3.4.5/ke
  
        /* Add user time to cpustat. */
        task_group_account_field(p, index, (__force u64) cputime);
-@@ -2908,9 +2921,12 @@ static inline
+@@ -204,9 +208,12 @@ static inline
  void __account_system_time(struct task_struct *p, cputime_t cputime,
                        cputime_t cputime_scaled, int index)
  {
@@ -14999,18 +14828,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/sched/core.c linux-3.6.10-vs2.3.4.5/ke
        account_group_system_time(p, cputime);
  
        /* Add system time to cpustat. */
-@@ -4137,7 +4153,7 @@ SYSCALL_DEFINE1(nice, int, increment)
-               nice = 19;
-       if (increment < 0 && !can_nice(current, nice))
--              return -EPERM;
-+              return vx_flags(VXF_IGNEG_NICE, 0) ? 0 : -EPERM;
-       retval = security_task_setnice(current, nice);
-       if (retval)
-diff -NurpP --minimal linux-3.6.10/kernel/sched/fair.c linux-3.6.10-vs2.3.4.5/kernel/sched/fair.c
---- linux-3.6.10/kernel/sched/fair.c   2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/sched/fair.c 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/sched/fair.c linux-3.7-vs2.3.5.1/kernel/sched/fair.c
+--- linux-3.7/kernel/sched/fair.c      2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/sched/fair.c    2012-12-11 15:56:33.000000000 +0000
 @@ -26,6 +26,7 @@
  #include <linux/slab.h>
  #include <linux/profile.h>
@@ -15037,10 +14857,10 @@ diff -NurpP --minimal linux-3.6.10/kernel/sched/fair.c linux-3.6.10-vs2.3.4.5/ke
        update_cfs_load(cfs_rq, 0);
        account_entity_dequeue(cfs_rq, se);
  
-diff -NurpP --minimal linux-3.6.10/kernel/signal.c linux-3.6.10-vs2.3.4.5/kernel/signal.c
---- linux-3.6.10/kernel/signal.c       2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/signal.c     2012-10-04 18:47:00.000000000 +0200
-@@ -30,6 +30,8 @@
+diff -NurpP --minimal linux-3.7/kernel/signal.c linux-3.7-vs2.3.5.1/kernel/signal.c
+--- linux-3.7/kernel/signal.c  2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/signal.c        2012-12-11 15:56:33.000000000 +0000
+@@ -31,6 +31,8 @@
  #include <linux/nsproxy.h>
  #include <linux/user_namespace.h>
  #include <linux/uprobes.h>
@@ -15049,7 +14869,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/signal.c linux-3.6.10-vs2.3.4.5/kernel
  #define CREATE_TRACE_POINTS
  #include <trace/events/signal.h>
  
-@@ -790,9 +792,18 @@ static int check_kill_permission(int sig
+@@ -791,9 +793,18 @@ static int check_kill_permission(int sig
        struct pid *sid;
        int error;
  
@@ -15068,7 +14888,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/signal.c linux-3.6.10-vs2.3.4.5/kernel
        if (!si_fromuser(info))
                return 0;
  
-@@ -816,6 +827,20 @@ static int check_kill_permission(int sig
+@@ -817,6 +828,20 @@ static int check_kill_permission(int sig
                }
        }
  
@@ -15089,7 +14909,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/signal.c linux-3.6.10-vs2.3.4.5/kernel
        return security_task_kill(t, info, sig, 0);
  }
  
-@@ -1351,7 +1376,7 @@ int kill_pid_info(int sig, struct siginf
+@@ -1352,7 +1377,7 @@ int kill_pid_info(int sig, struct siginf
        rcu_read_lock();
  retry:
        p = pid_task(pid, PIDTYPE_PID);
@@ -15098,7 +14918,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/signal.c linux-3.6.10-vs2.3.4.5/kernel
                error = group_send_sig_info(sig, info, p);
                if (unlikely(error == -ESRCH))
                        /*
-@@ -1399,7 +1424,7 @@ int kill_pid_info_as_cred(int sig, struc
+@@ -1400,7 +1425,7 @@ int kill_pid_info_as_cred(int sig, struc
  
        rcu_read_lock();
        p = pid_task(pid, PIDTYPE_PID);
@@ -15107,7 +14927,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/signal.c linux-3.6.10-vs2.3.4.5/kernel
                ret = -ESRCH;
                goto out_unlock;
        }
-@@ -1451,8 +1476,10 @@ static int kill_something_info(int sig, 
+@@ -1452,8 +1477,10 @@ static int kill_something_info(int sig,
                struct task_struct * p;
  
                for_each_process(p) {
@@ -15120,7 +14940,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/signal.c linux-3.6.10-vs2.3.4.5/kernel
                                int err = group_send_sig_info(sig, info, p);
                                ++count;
                                if (err != -EPERM)
-@@ -2317,6 +2344,11 @@ relock:
+@@ -2308,6 +2335,11 @@ relock:
                                !sig_kernel_only(signr))
                        continue;
  
@@ -15132,20 +14952,20 @@ diff -NurpP --minimal linux-3.6.10/kernel/signal.c linux-3.6.10-vs2.3.4.5/kernel
                if (sig_kernel_stop(signr)) {
                        /*
                         * The default action is to stop all threads in
-diff -NurpP --minimal linux-3.6.10/kernel/softirq.c linux-3.6.10-vs2.3.4.5/kernel/softirq.c
---- linux-3.6.10/kernel/softirq.c      2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/softirq.c    2012-10-04 18:47:00.000000000 +0200
-@@ -24,6 +24,7 @@
- #include <linux/ftrace.h>
+diff -NurpP --minimal linux-3.7/kernel/softirq.c linux-3.7-vs2.3.5.1/kernel/softirq.c
+--- linux-3.7/kernel/softirq.c 2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/softirq.c       2012-12-11 15:56:33.000000000 +0000
+@@ -25,6 +25,7 @@
  #include <linux/smp.h>
+ #include <linux/smpboot.h>
  #include <linux/tick.h>
 +#include <linux/vs_context.h>
  
  #define CREATE_TRACE_POINTS
  #include <trace/events/irq.h>
-diff -NurpP --minimal linux-3.6.10/kernel/sys.c linux-3.6.10-vs2.3.4.5/kernel/sys.c
---- linux-3.6.10/kernel/sys.c  2012-12-11 12:37:02.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/sys.c        2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/kernel/sys.c linux-3.7-vs2.3.5.1/kernel/sys.c
+--- linux-3.7/kernel/sys.c     2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/sys.c   2012-12-11 15:56:33.000000000 +0000
 @@ -47,6 +47,7 @@
  #include <linux/syscalls.h>
  #include <linux/kprobes.h>
@@ -15223,7 +15043,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/sys.c linux-3.6.10-vs2.3.4.5/kernel/sy
                return -EPERM;
        if (len < 0 || len > __NEW_UTS_LEN)
                return -EINVAL;
-@@ -1540,7 +1555,7 @@ int do_prlimit(struct task_struct *tsk, 
+@@ -1540,7 +1555,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 &&
@@ -15242,9 +15062,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/sys.c linux-3.6.10-vs2.3.4.5/kernel/sy
                return 0;
  
        return -EPERM;
-diff -NurpP --minimal linux-3.6.10/kernel/sysctl.c linux-3.6.10-vs2.3.4.5/kernel/sysctl.c
---- linux-3.6.10/kernel/sysctl.c       2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/sysctl.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/sysctl.c linux-3.7-vs2.3.5.1/kernel/sysctl.c
+--- linux-3.7/kernel/sysctl.c  2012-12-11 15:47:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/sysctl.c        2012-12-11 15:56:33.000000000 +0000
 @@ -82,6 +82,7 @@
  #if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT)
  #include <linux/lockdep.h>
@@ -15253,7 +15073,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/sysctl.c linux-3.6.10-vs2.3.4.5/kernel
  #ifdef CONFIG_CHR_DEV_SG
  #include <scsi/sg.h>
  #endif
-@@ -568,6 +569,13 @@ static struct ctl_table kern_table[] = {
+@@ -574,6 +575,13 @@ static struct ctl_table kern_table[] = {
                .proc_handler   = proc_dostring,
        },
  #endif
@@ -15267,9 +15087,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/sysctl.c linux-3.6.10-vs2.3.4.5/kernel
  #ifdef CONFIG_CHR_DEV_SG
        {
                .procname       = "sg-big-buff",
-diff -NurpP --minimal linux-3.6.10/kernel/sysctl_binary.c linux-3.6.10-vs2.3.4.5/kernel/sysctl_binary.c
---- linux-3.6.10/kernel/sysctl_binary.c        2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/sysctl_binary.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/sysctl_binary.c linux-3.7-vs2.3.5.1/kernel/sysctl_binary.c
+--- linux-3.7/kernel/sysctl_binary.c   2012-10-04 13:27:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/sysctl_binary.c 2012-12-11 15:56:33.000000000 +0000
 @@ -73,6 +73,7 @@ static const struct bin_table bin_kern_t
  
        { CTL_INT,      KERN_PANIC,                     "panic" },
@@ -15278,10 +15098,18 @@ diff -NurpP --minimal linux-3.6.10/kernel/sysctl_binary.c linux-3.6.10-vs2.3.4.5
  
        { CTL_STR,      KERN_SPARC_REBOOT,              "reboot-cmd" },
        { CTL_INT,      KERN_CTLALTDEL,                 "ctrl-alt-del" },
-diff -NurpP --minimal linux-3.6.10/kernel/time/timekeeping.c linux-3.6.10-vs2.3.4.5/kernel/time/timekeeping.c
---- linux-3.6.10/kernel/time/timekeeping.c     2012-12-11 12:37:02.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/time/timekeeping.c   2012-11-06 18:43:41.000000000 +0100
-@@ -309,6 +309,7 @@ void getnstimeofday(struct timespec *ts)
+diff -NurpP --minimal linux-3.7/kernel/time/timekeeping.c linux-3.7-vs2.3.5.1/kernel/time/timekeeping.c
+--- linux-3.7/kernel/time/timekeeping.c        2012-12-11 15:47:49.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/time/timekeeping.c      2012-12-11 21:13:56.000000000 +0000
+@@ -21,6 +21,7 @@
+ #include <linux/time.h>
+ #include <linux/tick.h>
+ #include <linux/stop_machine.h>
++#include <linux/vs_time.h>
+ static struct timekeeper timekeeper;
+@@ -243,6 +244,7 @@ void getnstimeofday(struct timespec *ts)
  
        ts->tv_nsec = 0;
        timespec_add_ns(ts, nsecs);
@@ -15289,10 +15117,18 @@ diff -NurpP --minimal linux-3.6.10/kernel/time/timekeeping.c linux-3.6.10-vs2.3.
  }
  EXPORT_SYMBOL(getnstimeofday);
  
-diff -NurpP --minimal linux-3.6.10/kernel/time.c linux-3.6.10-vs2.3.4.5/kernel/time.c
---- linux-3.6.10/kernel/time.c 2012-05-21 18:07:34.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/time.c       2012-10-04 18:47:00.000000000 +0200
-@@ -92,7 +92,7 @@ SYSCALL_DEFINE1(stime, time_t __user *, 
+diff -NurpP --minimal linux-3.7/kernel/time.c linux-3.7-vs2.3.5.1/kernel/time.c
+--- linux-3.7/kernel/time.c    2012-12-11 15:47:49.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/time.c  2012-12-11 21:12:29.000000000 +0000
+@@ -37,6 +37,7 @@
+ #include <linux/fs.h>
+ #include <linux/math64.h>
+ #include <linux/ptrace.h>
++#include <linux/vs_time.h>
+ #include <asm/uaccess.h>
+ #include <asm/unistd.h>
+@@ -92,7 +93,7 @@ SYSCALL_DEFINE1(stime, time_t __user *,
        if (err)
                return err;
  
@@ -15301,7 +15137,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/time.c linux-3.6.10-vs2.3.4.5/kernel/t
        return 0;
  }
  
-@@ -172,7 +172,7 @@ int do_sys_settimeofday(const struct tim
+@@ -172,7 +173,7 @@ int do_sys_settimeofday(const struct tim
                }
        }
        if (tv)
@@ -15310,9 +15146,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/time.c linux-3.6.10-vs2.3.4.5/kernel/t
        return 0;
  }
  
-diff -NurpP --minimal linux-3.6.10/kernel/timer.c linux-3.6.10-vs2.3.4.5/kernel/timer.c
---- linux-3.6.10/kernel/timer.c        2012-12-11 12:37:02.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/timer.c      2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/kernel/timer.c linux-3.7-vs2.3.5.1/kernel/timer.c
+--- linux-3.7/kernel/timer.c   2012-12-11 15:47:49.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/timer.c 2012-12-11 15:56:33.000000000 +0000
 @@ -40,6 +40,10 @@
  #include <linux/irq_work.h>
  #include <linux/sched.h>
@@ -15324,18 +15160,18 @@ diff -NurpP --minimal linux-3.6.10/kernel/timer.c linux-3.6.10-vs2.3.4.5/kernel/
  
  #include <asm/uaccess.h>
  #include <asm/unistd.h>
-diff -NurpP --minimal linux-3.6.10/kernel/user_namespace.c linux-3.6.10-vs2.3.4.5/kernel/user_namespace.c
---- linux-3.6.10/kernel/user_namespace.c       2012-07-22 23:39:47.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/user_namespace.c     2012-10-04 18:47:00.000000000 +0200
-@@ -19,6 +19,7 @@
- #include <linux/fs.h>
+diff -NurpP --minimal linux-3.7/kernel/user_namespace.c linux-3.7-vs2.3.5.1/kernel/user_namespace.c
+--- linux-3.7/kernel/user_namespace.c  2012-12-11 15:47:49.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/user_namespace.c        2012-12-11 16:58:02.000000000 +0000
+@@ -20,6 +20,7 @@
  #include <linux/uaccess.h>
  #include <linux/ctype.h>
+ #include <linux/projid.h>
 +#include <linux/vserver/global.h>
  
  static struct kmem_cache *user_ns_cachep __read_mostly;
  
-@@ -52,6 +53,7 @@ int create_user_ns(struct cred *new)
+@@ -53,6 +54,7 @@ int create_user_ns(struct cred *new)
                return -ENOMEM;
  
        kref_init(&ns->kref);
@@ -15343,7 +15179,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/user_namespace.c linux-3.6.10-vs2.3.4.
        ns->parent = parent_ns;
        ns->owner = owner;
        ns->group = group;
-@@ -84,6 +86,9 @@ void free_user_ns(struct kref *kref)
+@@ -85,6 +87,9 @@ void free_user_ns(struct kref *kref)
  
        parent = ns->parent;
        kmem_cache_free(user_ns_cachep, ns);
@@ -15353,9 +15189,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/user_namespace.c linux-3.6.10-vs2.3.4.
        put_user_ns(parent);
  }
  EXPORT_SYMBOL(free_user_ns);
-diff -NurpP --minimal linux-3.6.10/kernel/utsname.c linux-3.6.10-vs2.3.4.5/kernel/utsname.c
---- linux-3.6.10/kernel/utsname.c      2012-07-22 23:39:47.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/kernel/utsname.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/utsname.c linux-3.7-vs2.3.5.1/kernel/utsname.c
+--- linux-3.7/kernel/utsname.c 2012-07-22 21:39:47.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/utsname.c       2012-12-11 15:56:33.000000000 +0000
 @@ -16,14 +16,17 @@
  #include <linux/slab.h>
  #include <linux/user_namespace.h>
@@ -15424,9 +15260,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/utsname.c linux-3.6.10-vs2.3.4.5/kerne
        kfree(ns);
  }
  
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/Kconfig linux-3.6.10-vs2.3.4.5/kernel/vserver/Kconfig
---- linux-3.6.10/kernel/vserver/Kconfig        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/Kconfig      2012-12-10 18:21:15.000000000 +0100
+diff -NurpP --minimal linux-3.7/kernel/vserver/Kconfig linux-3.7-vs2.3.5.1/kernel/vserver/Kconfig
+--- linux-3.7/kernel/vserver/Kconfig   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/Kconfig 2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,233 @@
 +#
 +# Linux VServer configuration
@@ -15661,9 +15497,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/Kconfig linux-3.6.10-vs2.3.4.5
 +      bool
 +      default n
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/Makefile linux-3.6.10-vs2.3.4.5/kernel/vserver/Makefile
---- linux-3.6.10/kernel/vserver/Makefile       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/Makefile     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/Makefile linux-3.7-vs2.3.5.1/kernel/vserver/Makefile
+--- linux-3.7/kernel/vserver/Makefile  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/Makefile        2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,18 @@
 +#
 +# Makefile for the Linux vserver routines.
@@ -15683,9 +15519,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/Makefile linux-3.6.10-vs2.3.4.
 +vserver-$(CONFIG_VSERVER_MONITOR) += monitor.o
 +vserver-$(CONFIG_VSERVER_DEVICE) += device.o
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/cacct.c linux-3.6.10-vs2.3.4.5/kernel/vserver/cacct.c
---- linux-3.6.10/kernel/vserver/cacct.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/cacct.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/cacct.c linux-3.7-vs2.3.5.1/kernel/vserver/cacct.c
+--- linux-3.7/kernel/vserver/cacct.c   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/cacct.c 2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,42 @@
 +/*
 + *  linux/kernel/vserver/cacct.c
@@ -15729,9 +15565,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/cacct.c linux-3.6.10-vs2.3.4.5
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/cacct_init.h linux-3.6.10-vs2.3.4.5/kernel/vserver/cacct_init.h
---- linux-3.6.10/kernel/vserver/cacct_init.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/cacct_init.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/cacct_init.h linux-3.7-vs2.3.5.1/kernel/vserver/cacct_init.h
+--- linux-3.7/kernel/vserver/cacct_init.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/cacct_init.h    2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,25 @@
 +
 +
@@ -15758,9 +15594,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/cacct_init.h linux-3.6.10-vs2.
 +      return;
 +}
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/cacct_proc.h linux-3.6.10-vs2.3.4.5/kernel/vserver/cacct_proc.h
---- linux-3.6.10/kernel/vserver/cacct_proc.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/cacct_proc.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/cacct_proc.h linux-3.7-vs2.3.5.1/kernel/vserver/cacct_proc.h
+--- linux-3.7/kernel/vserver/cacct_proc.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/cacct_proc.h    2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,53 @@
 +#ifndef _VX_CACCT_PROC_H
 +#define _VX_CACCT_PROC_H
@@ -15815,9 +15651,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/cacct_proc.h linux-3.6.10-vs2.
 +}
 +
 +#endif        /* _VX_CACCT_PROC_H */
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/context.c linux-3.6.10-vs2.3.4.5/kernel/vserver/context.c
---- linux-3.6.10/kernel/vserver/context.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/context.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/context.c linux-3.7-vs2.3.5.1/kernel/vserver/context.c
+--- linux-3.7/kernel/vserver/context.c 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/context.c       2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,1119 @@
 +/*
 + *  linux/kernel/vserver/context.c
@@ -16938,9 +16774,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/context.c linux-3.6.10-vs2.3.4
 +
 +EXPORT_SYMBOL_GPL(free_vx_info);
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/cvirt.c linux-3.6.10-vs2.3.4.5/kernel/vserver/cvirt.c
---- linux-3.6.10/kernel/vserver/cvirt.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/cvirt.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/cvirt.c linux-3.7-vs2.3.5.1/kernel/vserver/cvirt.c
+--- linux-3.7/kernel/vserver/cvirt.c   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/cvirt.c 2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,313 @@
 +/*
 + *  linux/kernel/vserver/cvirt.c
@@ -17255,9 +17091,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/cvirt.c linux-3.6.10-vs2.3.4.5
 +
 +#endif
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/cvirt_init.h linux-3.6.10-vs2.3.4.5/kernel/vserver/cvirt_init.h
---- linux-3.6.10/kernel/vserver/cvirt_init.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/cvirt_init.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/cvirt_init.h linux-3.7-vs2.3.5.1/kernel/vserver/cvirt_init.h
+--- linux-3.7/kernel/vserver/cvirt_init.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/cvirt_init.h    2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,70 @@
 +
 +
@@ -17329,9 +17165,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/cvirt_init.h linux-3.6.10-vs2.
 +      return;
 +}
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/cvirt_proc.h linux-3.6.10-vs2.3.4.5/kernel/vserver/cvirt_proc.h
---- linux-3.6.10/kernel/vserver/cvirt_proc.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/cvirt_proc.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/cvirt_proc.h linux-3.7-vs2.3.5.1/kernel/vserver/cvirt_proc.h
+--- linux-3.7/kernel/vserver/cvirt_proc.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/cvirt_proc.h    2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,123 @@
 +#ifndef _VX_CVIRT_PROC_H
 +#define _VX_CVIRT_PROC_H
@@ -17456,9 +17292,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/cvirt_proc.h linux-3.6.10-vs2.
 +}
 +
 +#endif        /* _VX_CVIRT_PROC_H */
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/debug.c linux-3.6.10-vs2.3.4.5/kernel/vserver/debug.c
---- linux-3.6.10/kernel/vserver/debug.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/debug.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/debug.c linux-3.7-vs2.3.5.1/kernel/vserver/debug.c
+--- linux-3.7/kernel/vserver/debug.c   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/debug.c 2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,32 @@
 +/*
 + *  kernel/vserver/debug.c
@@ -17492,9 +17328,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/debug.c linux-3.6.10-vs2.3.4.5
 +
 +EXPORT_SYMBOL_GPL(dump_vx_info);
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/device.c linux-3.6.10-vs2.3.4.5/kernel/vserver/device.c
---- linux-3.6.10/kernel/vserver/device.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/device.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/device.c linux-3.7-vs2.3.5.1/kernel/vserver/device.c
+--- linux-3.7/kernel/vserver/device.c  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/device.c        2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,443 @@
 +/*
 + *  linux/kernel/vserver/device.c
@@ -17939,9 +17775,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/device.c linux-3.6.10-vs2.3.4.
 +#endif        /* CONFIG_COMPAT */
 +
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/dlimit.c linux-3.6.10-vs2.3.4.5/kernel/vserver/dlimit.c
---- linux-3.6.10/kernel/vserver/dlimit.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/dlimit.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/dlimit.c linux-3.7-vs2.3.5.1/kernel/vserver/dlimit.c
+--- linux-3.7/kernel/vserver/dlimit.c  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/dlimit.c        2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,531 @@
 +/*
 + *  linux/kernel/vserver/dlimit.c
@@ -18474,9 +18310,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/dlimit.c linux-3.6.10-vs2.3.4.
 +EXPORT_SYMBOL_GPL(locate_dl_info);
 +EXPORT_SYMBOL_GPL(rcu_free_dl_info);
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/helper.c linux-3.6.10-vs2.3.4.5/kernel/vserver/helper.c
---- linux-3.6.10/kernel/vserver/helper.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/helper.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/helper.c linux-3.7-vs2.3.5.1/kernel/vserver/helper.c
+--- linux-3.7/kernel/vserver/helper.c  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/helper.c        2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,229 @@
 +/*
 + *  linux/kernel/vserver/helper.c
@@ -18707,9 +18543,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/helper.c linux-3.6.10-vs2.3.4.
 +      return do_vshelper(vshelper_path, argv, envp, 1);
 +}
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/history.c linux-3.6.10-vs2.3.4.5/kernel/vserver/history.c
---- linux-3.6.10/kernel/vserver/history.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/history.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/history.c linux-3.7-vs2.3.5.1/kernel/vserver/history.c
+--- linux-3.7/kernel/vserver/history.c 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/history.c       2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,258 @@
 +/*
 + *  kernel/vserver/history.c
@@ -18969,9 +18805,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/history.c linux-3.6.10-vs2.3.4
 +
 +#endif        /* CONFIG_COMPAT */
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/inet.c linux-3.6.10-vs2.3.4.5/kernel/vserver/inet.c
---- linux-3.6.10/kernel/vserver/inet.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/inet.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/inet.c linux-3.7-vs2.3.5.1/kernel/vserver/inet.c
+--- linux-3.7/kernel/vserver/inet.c    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/inet.c  2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,226 @@
 +
 +#include <linux/in.h>
@@ -19199,9 +19035,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/inet.c linux-3.6.10-vs2.3.4.5/
 +
 +EXPORT_SYMBOL_GPL(ip_v4_find_src);
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/init.c linux-3.6.10-vs2.3.4.5/kernel/vserver/init.c
---- linux-3.6.10/kernel/vserver/init.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/init.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/init.c linux-3.7-vs2.3.5.1/kernel/vserver/init.c
+--- linux-3.7/kernel/vserver/init.c    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/init.c  2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,45 @@
 +/*
 + *  linux/kernel/init.c
@@ -19248,9 +19084,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/init.c linux-3.6.10-vs2.3.4.5/
 +module_init(init_vserver);
 +module_exit(exit_vserver);
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/inode.c linux-3.6.10-vs2.3.4.5/kernel/vserver/inode.c
---- linux-3.6.10/kernel/vserver/inode.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/inode.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/inode.c linux-3.7-vs2.3.5.1/kernel/vserver/inode.c
+--- linux-3.7/kernel/vserver/inode.c   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/inode.c 2012-12-11 19:38:12.000000000 +0000
 @@ -0,0 +1,437 @@
 +/*
 + *  linux/kernel/vserver/inode.c
@@ -19298,7 +19134,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/inode.c linux-3.6.10-vs2.3.4.5
 +              *mask |= IATTR_BARRIER;
 +
 +      if (IS_TAGGED(in)) {
-+              *tag = in->i_tag;
++              *tag = i_tag_read(in);
 +              *mask |= IATTR_TAG;
 +      }
 +
@@ -19316,7 +19152,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/inode.c linux-3.6.10-vs2.3.4.5
 +              break;
 +
 +      case DEVPTS_SUPER_MAGIC:
-+              *tag = in->i_tag;
++              *tag = i_tag_read(in);
 +              *mask |= IATTR_TAG;
 +              break;
 +
@@ -19680,7 +19516,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/inode.c linux-3.6.10-vs2.3.4.5
 +              new_tag, (propagate) ? 1 : 0);
 +
 +      if (propagate)
-+              inode->i_tag = new_tag;
++              i_tag_write(inode, new_tag);
 +}
 +
 +#include <linux/module.h>
@@ -19689,9 +19525,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/inode.c linux-3.6.10-vs2.3.4.5
 +
 +#endif        /* CONFIG_PROPAGATE */
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/limit.c linux-3.6.10-vs2.3.4.5/kernel/vserver/limit.c
---- linux-3.6.10/kernel/vserver/limit.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/limit.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/limit.c linux-3.7-vs2.3.5.1/kernel/vserver/limit.c
+--- linux-3.7/kernel/vserver/limit.c   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/limit.c 2012-12-12 13:08:45.000000000 +0000
 @@ -0,0 +1,345 @@
 +/*
 + *  linux/kernel/vserver/limit.c
@@ -19952,7 +19788,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/limit.c linux-3.6.10-vs2.3.4.5
 +
 +void vx_vsi_meminfo(struct sysinfo *val)
 +{
-+#ifdef        CONFIG_CGROUP_MEM_RES_CTLR
++#ifdef        CONFIG_MEMCG
 +      struct mem_cgroup *mcg;
 +      u64 res_limit, res_usage;
 +
@@ -19972,14 +19808,14 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/limit.c linux-3.6.10-vs2.3.4.5
 +      val->totalhigh = 0;
 +      val->freehigh = 0;
 +out:
-+#endif        /* CONFIG_CGROUP_MEM_RES_CTLR */
++#endif        /* CONFIG_MEMCG */
 +      return;
 +}
 +
 +void vx_vsi_swapinfo(struct sysinfo *val)
 +{
-+#ifdef        CONFIG_CGROUP_MEM_RES_CTLR
-+#ifdef        CONFIG_CGROUP_MEM_RES_CTLR_SWAP
++#ifdef        CONFIG_MEMCG
++#ifdef        CONFIG_MEMCG_SWAP
 +      struct mem_cgroup *mcg;
 +      u64 res_limit, res_usage, memsw_limit, memsw_usage;
 +      s64 swap_limit, swap_usage;
@@ -20012,18 +19848,18 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/limit.c linux-3.6.10-vs2.3.4.5
 +      val->freeswap = (swap_usage < swap_limit) ?
 +              val->totalswap - (swap_usage >> PAGE_SHIFT) : 0;
 +out:
-+#else /* !CONFIG_CGROUP_MEM_RES_CTLR_SWAP */
++#else /* !CONFIG_MEMCG_SWAP */
 +      val->totalswap = 0;
 +      val->freeswap = 0;
-+#endif        /* !CONFIG_CGROUP_MEM_RES_CTLR_SWAP */
-+#endif        /* CONFIG_CGROUP_MEM_RES_CTLR */
++#endif        /* !CONFIG_MEMCG_SWAP */
++#endif        /* CONFIG_MEMCG */
 +      return;
 +}
 +
 +long vx_vsi_cached(struct sysinfo *val)
 +{
 +      long cache = 0;
-+#ifdef        CONFIG_CGROUP_MEM_RES_CTLR
++#ifdef        CONFIG_MEMCG
 +      struct mem_cgroup *mcg;
 +
 +      rcu_read_lock();
@@ -20038,9 +19874,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/limit.c linux-3.6.10-vs2.3.4.5
 +      return cache;
 +}
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/limit_init.h linux-3.6.10-vs2.3.4.5/kernel/vserver/limit_init.h
---- linux-3.6.10/kernel/vserver/limit_init.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/limit_init.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/limit_init.h linux-3.7-vs2.3.5.1/kernel/vserver/limit_init.h
+--- linux-3.7/kernel/vserver/limit_init.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/limit_init.h    2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,31 @@
 +
 +
@@ -20073,9 +19909,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/limit_init.h linux-3.6.10-vs2.
 +      }
 +}
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/limit_proc.h linux-3.6.10-vs2.3.4.5/kernel/vserver/limit_proc.h
---- linux-3.6.10/kernel/vserver/limit_proc.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/limit_proc.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/limit_proc.h linux-3.7-vs2.3.5.1/kernel/vserver/limit_proc.h
+--- linux-3.7/kernel/vserver/limit_proc.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/limit_proc.h    2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,57 @@
 +#ifndef _VX_LIMIT_PROC_H
 +#define _VX_LIMIT_PROC_H
@@ -20134,9 +19970,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/limit_proc.h linux-3.6.10-vs2.
 +#endif        /* _VX_LIMIT_PROC_H */
 +
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/network.c linux-3.6.10-vs2.3.4.5/kernel/vserver/network.c
---- linux-3.6.10/kernel/vserver/network.c      1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/network.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/network.c linux-3.7-vs2.3.5.1/kernel/vserver/network.c
+--- linux-3.7/kernel/vserver/network.c 1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/network.c       2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,912 @@
 +/*
 + *  linux/kernel/vserver/network.c
@@ -21050,9 +20886,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/network.c linux-3.6.10-vs2.3.4
 +EXPORT_SYMBOL_GPL(free_nx_info);
 +EXPORT_SYMBOL_GPL(unhash_nx_info);
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/proc.c linux-3.6.10-vs2.3.4.5/kernel/vserver/proc.c
---- linux-3.6.10/kernel/vserver/proc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/proc.c       2012-10-09 14:19:59.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/proc.c linux-3.7-vs2.3.5.1/kernel/vserver/proc.c
+--- linux-3.7/kernel/vserver/proc.c    1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/proc.c  2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,1110 @@
 +/*
 + *  linux/kernel/vserver/proc.c
@@ -22164,9 +22000,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/proc.c linux-3.6.10-vs2.3.4.5/
 +      return buffer - orig;
 +}
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/sched.c linux-3.6.10-vs2.3.4.5/kernel/vserver/sched.c
---- linux-3.6.10/kernel/vserver/sched.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/sched.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/sched.c linux-3.7-vs2.3.5.1/kernel/vserver/sched.c
+--- linux-3.7/kernel/vserver/sched.c   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/sched.c 2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,83 @@
 +/*
 + *  linux/kernel/vserver/sched.c
@@ -22251,9 +22087,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/sched.c linux-3.6.10-vs2.3.4.5
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/sched_init.h linux-3.6.10-vs2.3.4.5/kernel/vserver/sched_init.h
---- linux-3.6.10/kernel/vserver/sched_init.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/sched_init.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/sched_init.h linux-3.7-vs2.3.5.1/kernel/vserver/sched_init.h
+--- linux-3.7/kernel/vserver/sched_init.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/sched_init.h    2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,27 @@
 +
 +static inline void vx_info_init_sched(struct _vx_sched *sched)
@@ -22282,9 +22118,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/sched_init.h linux-3.6.10-vs2.
 +{
 +      return;
 +}
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/sched_proc.h linux-3.6.10-vs2.3.4.5/kernel/vserver/sched_proc.h
---- linux-3.6.10/kernel/vserver/sched_proc.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/sched_proc.h 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/sched_proc.h linux-3.7-vs2.3.5.1/kernel/vserver/sched_proc.h
+--- linux-3.7/kernel/vserver/sched_proc.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/sched_proc.h    2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,32 @@
 +#ifndef _VX_SCHED_PROC_H
 +#define _VX_SCHED_PROC_H
@@ -22318,9 +22154,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/sched_proc.h linux-3.6.10-vs2.
 +}
 +
 +#endif        /* _VX_SCHED_PROC_H */
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/signal.c linux-3.6.10-vs2.3.4.5/kernel/vserver/signal.c
---- linux-3.6.10/kernel/vserver/signal.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/signal.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/signal.c linux-3.7-vs2.3.5.1/kernel/vserver/signal.c
+--- linux-3.7/kernel/vserver/signal.c  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/signal.c        2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,134 @@
 +/*
 + *  linux/kernel/vserver/signal.c
@@ -22456,9 +22292,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/signal.c linux-3.6.10-vs2.3.4.
 +      return ret;
 +}
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/space.c linux-3.6.10-vs2.3.4.5/kernel/vserver/space.c
---- linux-3.6.10/kernel/vserver/space.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/space.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/space.c linux-3.7-vs2.3.5.1/kernel/vserver/space.c
+--- linux-3.7/kernel/vserver/space.c   1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/space.c 2012-12-11 21:15:48.000000000 +0000
 @@ -0,0 +1,436 @@
 +/*
 + *  linux/kernel/vserver/space.c
@@ -22757,7 +22593,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/space.c linux-3.6.10-vs2.3.4.5
 +int vx_set_space(struct vx_info *vxi, unsigned long mask, unsigned index)
 +{
 +      struct nsproxy *proxy_vxi, *proxy_cur, *proxy_new;
-+      struct fs_struct *fs_vxi, *fs;
++      struct fs_struct *fs_vxi, *fs = NULL;
 +      struct _vx_space *space;
 +      int ret, kill = 0;
 +
@@ -22896,9 +22732,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/space.c linux-3.6.10-vs2.3.4.5
 +      return 0;
 +}
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/switch.c linux-3.6.10-vs2.3.4.5/kernel/vserver/switch.c
---- linux-3.6.10/kernel/vserver/switch.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/switch.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/switch.c linux-3.7-vs2.3.5.1/kernel/vserver/switch.c
+--- linux-3.7/kernel/vserver/switch.c  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/switch.c        2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,556 @@
 +/*
 + *  linux/kernel/vserver/switch.c
@@ -23456,9 +23292,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/switch.c linux-3.6.10-vs2.3.4.
 +}
 +
 +#endif        /* CONFIG_COMPAT */
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/sysctl.c linux-3.6.10-vs2.3.4.5/kernel/vserver/sysctl.c
---- linux-3.6.10/kernel/vserver/sysctl.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/sysctl.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/sysctl.c linux-3.7-vs2.3.5.1/kernel/vserver/sysctl.c
+--- linux-3.7/kernel/vserver/sysctl.c  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/sysctl.c        2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,247 @@
 +/*
 + *  kernel/vserver/sysctl.c
@@ -23707,9 +23543,9 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/sysctl.c linux-3.6.10-vs2.3.4.
 +EXPORT_SYMBOL_GPL(vs_debug_perm);
 +EXPORT_SYMBOL_GPL(vs_debug_misc);
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/tag.c linux-3.6.10-vs2.3.4.5/kernel/vserver/tag.c
---- linux-3.6.10/kernel/vserver/tag.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/tag.c        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/kernel/vserver/tag.c linux-3.7-vs2.3.5.1/kernel/vserver/tag.c
+--- linux-3.7/kernel/vserver/tag.c     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/tag.c   2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,63 @@
 +/*
 + *  linux/kernel/vserver/tag.c
@@ -23774,10 +23610,10 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/tag.c linux-3.6.10-vs2.3.4.5/k
 +}
 +
 +
-diff -NurpP --minimal linux-3.6.10/kernel/vserver/vci_config.h linux-3.6.10-vs2.3.4.5/kernel/vserver/vci_config.h
---- linux-3.6.10/kernel/vserver/vci_config.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/kernel/vserver/vci_config.h 2012-10-04 18:47:00.000000000 +0200
-@@ -0,0 +1,76 @@
+diff -NurpP --minimal linux-3.7/kernel/vserver/vci_config.h linux-3.7-vs2.3.5.1/kernel/vserver/vci_config.h
+--- linux-3.7/kernel/vserver/vci_config.h      1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/kernel/vserver/vci_config.h    2012-12-12 13:08:45.000000000 +0000
+@@ -0,0 +1,80 @@
 +
 +/*  interface version */
 +
@@ -23797,6 +23633,7 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/vci_config.h linux-3.6.10-vs2.
 +      VCI_KCBIT_SPACES = 10,
 +      VCI_KCBIT_NETV2 = 11,
 +      VCI_KCBIT_MEMCG = 12,
++      VCI_KCBIT_MEMCG_SWAP = 13,
 +
 +      VCI_KCBIT_DEBUG = 16,
 +      VCI_KCBIT_HISTORY = 20,
@@ -23822,9 +23659,12 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/vci_config.h linux-3.6.10-vs2.
 +#endif
 +      (1 << VCI_KCBIT_SPACES) |
 +      (1 << VCI_KCBIT_NETV2) |
-+#ifdef        CONFIG_CGROUP_MEM_RES_CTLR
++#ifdef        CONFIG_MEMCG
 +      (1 << VCI_KCBIT_MEMCG) |
 +#endif
++#ifdef        CONFIG_MEMCG_SWAP
++      (1 << VCI_KCBIT_MEMCG_SWAP) |
++#endif
 +
 +      /* debug options */
 +#ifdef        CONFIG_VSERVER_DEBUG
@@ -23854,10 +23694,10 @@ diff -NurpP --minimal linux-3.6.10/kernel/vserver/vci_config.h linux-3.6.10-vs2.
 +      0;
 +}
 +
-diff -NurpP --minimal linux-3.6.10/mm/memcontrol.c linux-3.6.10-vs2.3.4.5/mm/memcontrol.c
---- linux-3.6.10/mm/memcontrol.c       2012-12-11 12:37:02.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/mm/memcontrol.c     2012-12-08 01:36:33.000000000 +0100
-@@ -885,6 +885,31 @@ struct mem_cgroup *mem_cgroup_from_task(
+diff -NurpP --minimal linux-3.7/mm/memcontrol.c linux-3.7-vs2.3.5.1/mm/memcontrol.c
+--- linux-3.7/mm/memcontrol.c  2012-12-11 15:47:52.000000000 +0000
++++ linux-3.7-vs2.3.5.1/mm/memcontrol.c        2012-12-11 15:56:33.000000000 +0000
+@@ -884,6 +884,31 @@ struct mem_cgroup *mem_cgroup_from_task(
        return mem_cgroup_from_css(task_subsys_state(p, mem_cgroup_subsys_id));
  }
  
@@ -23889,9 +23729,9 @@ diff -NurpP --minimal linux-3.6.10/mm/memcontrol.c linux-3.6.10-vs2.3.4.5/mm/mem
  struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm)
  {
        struct mem_cgroup *memcg = NULL;
-diff -NurpP --minimal linux-3.6.10/mm/oom_kill.c linux-3.6.10-vs2.3.4.5/mm/oom_kill.c
---- linux-3.6.10/mm/oom_kill.c 2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/mm/oom_kill.c       2012-10-04 18:53:46.000000000 +0200
+diff -NurpP --minimal linux-3.7/mm/oom_kill.c linux-3.7-vs2.3.5.1/mm/oom_kill.c
+--- linux-3.7/mm/oom_kill.c    2012-12-11 15:47:52.000000000 +0000
++++ linux-3.7-vs2.3.5.1/mm/oom_kill.c  2012-12-12 00:10:01.000000000 +0000
 @@ -35,6 +35,8 @@
  #include <linux/freezer.h>
  #include <linux/ftrace.h>
@@ -23959,16 +23799,16 @@ diff -NurpP --minimal linux-3.6.10/mm/oom_kill.c linux-3.6.10-vs2.3.4.5/mm/oom_k
 -              panic("Out of memory and no killable processes...\n");
 +
 +              /* avoid panic for guest OOM */
-+              if (current->xid)
++              if (vx_current_xid())
 +                      vs_oom_action(LINUX_REBOOT_CMD_OOM);
 +              else
 +                      panic("Out of memory and no killable processes...\n");
        }
        if (PTR_ERR(p) != -1UL) {
                oom_kill_process(p, gfp_mask, order, points, totalpages, NULL,
-diff -NurpP --minimal linux-3.6.10/mm/page_alloc.c linux-3.6.10-vs2.3.4.5/mm/page_alloc.c
---- linux-3.6.10/mm/page_alloc.c       2012-12-11 12:37:02.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/mm/page_alloc.c     2012-12-08 01:36:33.000000000 +0100
+diff -NurpP --minimal linux-3.7/mm/page_alloc.c linux-3.7-vs2.3.5.1/mm/page_alloc.c
+--- linux-3.7/mm/page_alloc.c  2012-12-11 15:47:52.000000000 +0000
++++ linux-3.7-vs2.3.5.1/mm/page_alloc.c        2012-12-11 15:56:33.000000000 +0000
 @@ -58,6 +58,8 @@
  #include <linux/prefetch.h>
  #include <linux/migrate.h>
@@ -23978,7 +23818,7 @@ diff -NurpP --minimal linux-3.6.10/mm/page_alloc.c linux-3.6.10-vs2.3.4.5/mm/pag
  
  #include <asm/tlbflush.h>
  #include <asm/div64.h>
-@@ -2773,6 +2775,9 @@ void si_meminfo(struct sysinfo *val)
+@@ -2832,6 +2834,9 @@ void si_meminfo(struct sysinfo *val)
        val->totalhigh = totalhigh_pages;
        val->freehigh = nr_free_highpages();
        val->mem_unit = PAGE_SIZE;
@@ -23988,7 +23828,7 @@ diff -NurpP --minimal linux-3.6.10/mm/page_alloc.c linux-3.6.10-vs2.3.4.5/mm/pag
  }
  
  EXPORT_SYMBOL(si_meminfo);
-@@ -2793,6 +2798,9 @@ void si_meminfo_node(struct sysinfo *val
+@@ -2852,6 +2857,9 @@ void si_meminfo_node(struct sysinfo *val
        val->freehigh = 0;
  #endif
        val->mem_unit = PAGE_SIZE;
@@ -23998,9 +23838,9 @@ diff -NurpP --minimal linux-3.6.10/mm/page_alloc.c linux-3.6.10-vs2.3.4.5/mm/pag
  }
  #endif
  
-diff -NurpP --minimal linux-3.6.10/mm/pgtable-generic.c linux-3.6.10-vs2.3.4.5/mm/pgtable-generic.c
---- linux-3.6.10/mm/pgtable-generic.c  2012-07-22 23:39:47.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/mm/pgtable-generic.c        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/mm/pgtable-generic.c linux-3.7-vs2.3.5.1/mm/pgtable-generic.c
+--- linux-3.7/mm/pgtable-generic.c     2012-12-11 15:47:52.000000000 +0000
++++ linux-3.7-vs2.3.5.1/mm/pgtable-generic.c   2012-12-11 15:56:33.000000000 +0000
 @@ -6,6 +6,8 @@
   *  Copyright (C) 2010  Linus Torvalds
   */
@@ -24010,10 +23850,10 @@ diff -NurpP --minimal linux-3.6.10/mm/pgtable-generic.c linux-3.6.10-vs2.3.4.5/m
  #include <linux/pagemap.h>
  #include <asm/tlb.h>
  #include <asm-generic/pgtable.h>
-diff -NurpP --minimal linux-3.6.10/mm/shmem.c linux-3.6.10-vs2.3.4.5/mm/shmem.c
---- linux-3.6.10/mm/shmem.c    2012-12-11 12:37:02.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/mm/shmem.c  2012-12-08 01:36:33.000000000 +0100
-@@ -1826,7 +1826,7 @@ static int shmem_statfs(struct dentry *d
+diff -NurpP --minimal linux-3.7/mm/shmem.c linux-3.7-vs2.3.5.1/mm/shmem.c
+--- linux-3.7/mm/shmem.c       2012-12-11 15:47:52.000000000 +0000
++++ linux-3.7-vs2.3.5.1/mm/shmem.c     2012-12-11 15:56:33.000000000 +0000
+@@ -1820,7 +1820,7 @@ static int shmem_statfs(struct dentry *d
  {
        struct shmem_sb_info *sbinfo = SHMEM_SB(dentry->d_sb);
  
@@ -24022,7 +23862,7 @@ diff -NurpP --minimal linux-3.6.10/mm/shmem.c linux-3.6.10-vs2.3.4.5/mm/shmem.c
        buf->f_bsize = PAGE_CACHE_SIZE;
        buf->f_namelen = NAME_MAX;
        if (sbinfo->max_blocks) {
-@@ -2644,7 +2644,7 @@ int shmem_fill_super(struct super_block 
+@@ -2504,7 +2504,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;
@@ -24031,9 +23871,9 @@ diff -NurpP --minimal linux-3.6.10/mm/shmem.c linux-3.6.10-vs2.3.4.5/mm/shmem.c
        sb->s_op = &shmem_ops;
        sb->s_time_gran = 1;
  #ifdef CONFIG_TMPFS_XATTR
-diff -NurpP --minimal linux-3.6.10/mm/slab.c linux-3.6.10-vs2.3.4.5/mm/slab.c
---- linux-3.6.10/mm/slab.c     2012-12-11 12:37:03.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/mm/slab.c   2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/mm/slab.c linux-3.7-vs2.3.5.1/mm/slab.c
+--- linux-3.7/mm/slab.c        2012-12-11 15:47:52.000000000 +0000
++++ linux-3.7-vs2.3.5.1/mm/slab.c      2012-12-11 15:56:33.000000000 +0000
 @@ -445,6 +445,8 @@ static void kmem_list3_init(struct kmem_
  #define STATS_INC_FREEMISS(x) do { } while (0)
  #endif
@@ -24043,7 +23883,7 @@ diff -NurpP --minimal linux-3.6.10/mm/slab.c linux-3.6.10-vs2.3.4.5/mm/slab.c
  #if DEBUG
  
  /*
-@@ -3539,6 +3541,7 @@ retry:
+@@ -3479,6 +3481,7 @@ retry:
  
        obj = slab_get_obj(cachep, slabp, nodeid);
        check_slabp(cachep, slabp);
@@ -24051,7 +23891,7 @@ diff -NurpP --minimal linux-3.6.10/mm/slab.c linux-3.6.10-vs2.3.4.5/mm/slab.c
        l3->free_objects--;
        /* move slabp to correct slabp list: */
        list_del(&slabp->list);
-@@ -3616,6 +3619,7 @@ __cache_alloc_node(struct kmem_cache *ca
+@@ -3556,6 +3559,7 @@ slab_alloc_node(struct kmem_cache *cache
        /* ___cache_alloc_node can fall back to other nodes */
        ptr = ____cache_alloc_node(cachep, flags, nodeid);
    out:
@@ -24059,7 +23899,7 @@ diff -NurpP --minimal linux-3.6.10/mm/slab.c linux-3.6.10-vs2.3.4.5/mm/slab.c
        local_irq_restore(save_flags);
        ptr = cache_alloc_debugcheck_after(cachep, flags, ptr, caller);
        kmemleak_alloc_recursive(ptr, cachep->object_size, 1, cachep->flags,
-@@ -3806,6 +3810,7 @@ static inline void __cache_free(struct k
+@@ -3746,6 +3750,7 @@ static inline void __cache_free(struct k
        check_irq_off();
        kmemleak_free_recursive(objp, cachep->flags);
        objp = cache_free_debugcheck(cachep, objp, caller);
@@ -24067,9 +23907,9 @@ diff -NurpP --minimal linux-3.6.10/mm/slab.c linux-3.6.10-vs2.3.4.5/mm/slab.c
  
        kmemcheck_slab_free(cachep, objp, cachep->object_size);
  
-diff -NurpP --minimal linux-3.6.10/mm/slab_vs.h linux-3.6.10-vs2.3.4.5/mm/slab_vs.h
---- linux-3.6.10/mm/slab_vs.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/mm/slab_vs.h        2012-10-09 16:28:11.000000000 +0200
+diff -NurpP --minimal linux-3.7/mm/slab_vs.h linux-3.7-vs2.3.5.1/mm/slab_vs.h
+--- linux-3.7/mm/slab_vs.h     1970-01-01 00:00:00.000000000 +0000
++++ linux-3.7-vs2.3.5.1/mm/slab_vs.h   2012-12-11 15:56:33.000000000 +0000
 @@ -0,0 +1,29 @@
 +
 +#include <linux/vserver/context.h>
@@ -24100,9 +23940,9 @@ diff -NurpP --minimal linux-3.6.10/mm/slab_vs.h linux-3.6.10-vs2.3.4.5/mm/slab_v
 +      atomic_sub(cachep->size, &vxi->cacct.slab[what]);
 +}
 +
-diff -NurpP --minimal linux-3.6.10/mm/swapfile.c linux-3.6.10-vs2.3.4.5/mm/swapfile.c
---- linux-3.6.10/mm/swapfile.c 2012-10-04 15:27:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/mm/swapfile.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/mm/swapfile.c linux-3.7-vs2.3.5.1/mm/swapfile.c
+--- linux-3.7/mm/swapfile.c    2012-12-11 15:47:52.000000000 +0000
++++ linux-3.7-vs2.3.5.1/mm/swapfile.c  2012-12-11 15:56:33.000000000 +0000
 @@ -39,6 +39,7 @@
  #include <asm/tlbflush.h>
  #include <linux/swapops.h>
@@ -24111,7 +23951,7 @@ diff -NurpP --minimal linux-3.6.10/mm/swapfile.c linux-3.6.10-vs2.3.4.5/mm/swapf
  
  static bool swap_count_continued(struct swap_info_struct *, pgoff_t,
                                 unsigned char);
-@@ -1686,6 +1687,16 @@ static int swap_show(struct seq_file *sw
+@@ -1685,6 +1686,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");
@@ -24128,7 +23968,7 @@ diff -NurpP --minimal linux-3.6.10/mm/swapfile.c linux-3.6.10-vs2.3.4.5/mm/swapf
                return 0;
        }
  
-@@ -2113,6 +2124,8 @@ void si_swapinfo(struct sysinfo *val)
+@@ -2112,6 +2123,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);
@@ -24137,9 +23977,9 @@ diff -NurpP --minimal linux-3.6.10/mm/swapfile.c linux-3.6.10-vs2.3.4.5/mm/swapf
  }
  
  /*
-diff -NurpP --minimal linux-3.6.10/net/bridge/br_multicast.c linux-3.6.10-vs2.3.4.5/net/bridge/br_multicast.c
---- linux-3.6.10/net/bridge/br_multicast.c     2012-10-04 15:27:49.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/bridge/br_multicast.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/bridge/br_multicast.c linux-3.7-vs2.3.5.1/net/bridge/br_multicast.c
+--- linux-3.7/net/bridge/br_multicast.c        2012-10-04 13:27:49.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/bridge/br_multicast.c      2012-12-11 15:56:33.000000000 +0000
 @@ -447,7 +447,7 @@ static struct sk_buff *br_ip6_multicast_
        ip6h->hop_limit = 1;
        ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1));
@@ -24149,9 +23989,9 @@ diff -NurpP --minimal linux-3.6.10/net/bridge/br_multicast.c linux-3.6.10-vs2.3.
                kfree_skb(skb);
                return NULL;
        }
-diff -NurpP --minimal linux-3.6.10/net/core/dev.c linux-3.6.10-vs2.3.4.5/net/core/dev.c
---- linux-3.6.10/net/core/dev.c        2012-12-11 12:37:03.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/core/dev.c      2012-12-08 01:36:33.000000000 +0100
+diff -NurpP --minimal linux-3.7/net/core/dev.c linux-3.7-vs2.3.5.1/net/core/dev.c
+--- linux-3.7/net/core/dev.c   2012-12-11 15:47:53.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/core/dev.c 2012-12-11 15:56:33.000000000 +0000
 @@ -126,6 +126,7 @@
  #include <linux/in.h>
  #include <linux/jhash.h>
@@ -24249,7 +24089,7 @@ diff -NurpP --minimal linux-3.6.10/net/core/dev.c linux-3.6.10-vs2.3.4.5/net/cor
  
                        /*  avoid cases where sscanf is not exact inverse of printf */
                        snprintf(buf, IFNAMSIZ, name, i);
-@@ -4076,6 +4095,8 @@ static int dev_ifconf(struct net *net, c
+@@ -4129,6 +4148,8 @@ static int dev_ifconf(struct net *net, c
  
        total = 0;
        for_each_netdev(net, dev) {
@@ -24258,7 +24098,7 @@ diff -NurpP --minimal linux-3.6.10/net/core/dev.c linux-3.6.10-vs2.3.4.5/net/cor
                for (i = 0; i < NPROTO; i++) {
                        if (gifconf_list[i]) {
                                int done;
-@@ -4178,6 +4199,10 @@ static void dev_seq_printf_stats(struct 
+@@ -4231,6 +4252,10 @@ static void dev_seq_printf_stats(struct
        struct rtnl_link_stats64 temp;
        const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp);
  
@@ -24269,9 +24109,9 @@ diff -NurpP --minimal linux-3.6.10/net/core/dev.c linux-3.6.10-vs2.3.4.5/net/cor
        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.6.10/net/core/rtnetlink.c linux-3.6.10-vs2.3.4.5/net/core/rtnetlink.c
---- linux-3.6.10/net/core/rtnetlink.c  2012-10-04 15:27:49.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/core/rtnetlink.c        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/core/rtnetlink.c linux-3.7-vs2.3.5.1/net/core/rtnetlink.c
+--- linux-3.7/net/core/rtnetlink.c     2012-12-11 15:47:53.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/core/rtnetlink.c   2012-12-11 15:56:33.000000000 +0000
 @@ -1080,6 +1080,8 @@ static int rtnl_dump_ifinfo(struct sk_bu
                hlist_for_each_entry_rcu(dev, node, head, index_hlist) {
                        if (idx < s_idx)
@@ -24279,9 +24119,9 @@ diff -NurpP --minimal linux-3.6.10/net/core/rtnetlink.c linux-3.6.10-vs2.3.4.5/n
 +                      if (!nx_dev_visible(skb->sk->sk_nx_info, dev))
 +                              continue;
                        if (rtnl_fill_ifinfo(skb, dev, RTM_NEWLINK,
-                                            NETLINK_CB(cb->skb).pid,
+                                            NETLINK_CB(cb->skb).portid,
                                             cb->nlh->nlmsg_seq, 0,
-@@ -1969,6 +1971,9 @@ void rtmsg_ifinfo(int type, struct net_d
+@@ -1971,6 +1973,9 @@ void rtmsg_ifinfo(int type, struct net_d
        int err = -ENOBUFS;
        size_t if_info_size;
  
@@ -24291,9 +24131,9 @@ diff -NurpP --minimal linux-3.6.10/net/core/rtnetlink.c linux-3.6.10-vs2.3.4.5/n
        skb = nlmsg_new((if_info_size = if_nlmsg_size(dev, 0)), GFP_KERNEL);
        if (skb == NULL)
                goto errout;
-diff -NurpP --minimal linux-3.6.10/net/core/sock.c linux-3.6.10-vs2.3.4.5/net/core/sock.c
---- linux-3.6.10/net/core/sock.c       2012-10-04 15:27:49.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/core/sock.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/core/sock.c linux-3.7-vs2.3.5.1/net/core/sock.c
+--- linux-3.7/net/core/sock.c  2012-12-11 15:47:53.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/core/sock.c        2012-12-11 15:56:33.000000000 +0000
 @@ -132,6 +132,10 @@
  #include <net/netprio_cgroup.h>
  
@@ -24305,7 +24145,7 @@ diff -NurpP --minimal linux-3.6.10/net/core/sock.c linux-3.6.10-vs2.3.4.5/net/co
  
  #include <trace/events/sock.h>
  
-@@ -1194,6 +1198,8 @@ static struct sock *sk_prot_alloc(struct
+@@ -1183,6 +1187,8 @@ static struct sock *sk_prot_alloc(struct
                        goto out_free_sec;
                sk_tx_queue_clear(sk);
        }
@@ -24314,7 +24154,7 @@ diff -NurpP --minimal linux-3.6.10/net/core/sock.c linux-3.6.10-vs2.3.4.5/net/co
  
        return sk;
  
-@@ -1302,6 +1308,11 @@ static void __sk_free(struct sock *sk)
+@@ -1295,6 +1301,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));
@@ -24326,7 +24166,7 @@ diff -NurpP --minimal linux-3.6.10/net/core/sock.c linux-3.6.10-vs2.3.4.5/net/co
        sk_prot_free(sk->sk_prot_creator, sk);
  }
  
-@@ -1362,6 +1373,8 @@ struct sock *sk_clone_lock(const struct 
+@@ -1355,6 +1366,8 @@ struct sock *sk_clone_lock(const struct
  
                /* SANITY */
                get_net(sock_net(newsk));
@@ -24335,7 +24175,7 @@ diff -NurpP --minimal linux-3.6.10/net/core/sock.c linux-3.6.10-vs2.3.4.5/net/co
                sk_node_init(&newsk->sk_node);
                sock_lock_init(newsk);
                bh_lock_sock(newsk);
-@@ -1418,6 +1431,12 @@ struct sock *sk_clone_lock(const struct 
+@@ -1411,6 +1424,12 @@ struct sock *sk_clone_lock(const struct
                smp_wmb();
                atomic_set(&newsk->sk_refcnt, 2);
  
@@ -24348,7 +24188,7 @@ diff -NurpP --minimal linux-3.6.10/net/core/sock.c linux-3.6.10-vs2.3.4.5/net/co
                /*
                 * Increment the counter in the same struct proto as the master
                 * sock (sk_refcnt_debug_inc uses newsk->sk_prot->socks, that
-@@ -2187,6 +2206,12 @@ void sock_init_data(struct socket *sock,
+@@ -2206,6 +2225,12 @@ void sock_init_data(struct socket *sock,
  
        sk->sk_stamp = ktime_set(-1L, 0);
  
@@ -24361,9 +24201,9 @@ diff -NurpP --minimal linux-3.6.10/net/core/sock.c linux-3.6.10-vs2.3.4.5/net/co
        /*
         * Before updating sk_refcnt, we must commit prior changes to memory
         * (Documentation/RCU/rculist_nulls.txt for details)
-diff -NurpP --minimal linux-3.6.10/net/ipv4/af_inet.c linux-3.6.10-vs2.3.4.5/net/ipv4/af_inet.c
---- linux-3.6.10/net/ipv4/af_inet.c    2012-10-04 15:27:49.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/af_inet.c  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv4/af_inet.c linux-3.7-vs2.3.5.1/net/ipv4/af_inet.c
+--- linux-3.7/net/ipv4/af_inet.c       2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/af_inet.c     2012-12-11 15:56:33.000000000 +0000
 @@ -118,6 +118,7 @@
  #ifdef CONFIG_IP_MROUTE
  #include <linux/mroute.h>
@@ -24372,7 +24212,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/af_inet.c linux-3.6.10-vs2.3.4.5/net
  
  
  /* The inetsw table contains everything that inet_create needs to
-@@ -326,9 +327,13 @@ lookup_protocol:
+@@ -346,9 +347,13 @@ lookup_protocol:
        }
  
        err = -EPERM;
@@ -24387,7 +24227,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/af_inet.c linux-3.6.10-vs2.3.4.5/net
        err = -EAFNOSUPPORT;
        if (!inet_netns_ok(net, protocol))
                goto out_rcu_unlock;
-@@ -453,6 +458,7 @@ int inet_bind(struct socket *sock, struc
+@@ -473,6 +478,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);
@@ -24395,7 +24235,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/af_inet.c linux-3.6.10-vs2.3.4.5/net
        unsigned short snum;
        int chk_addr_ret;
        int err;
-@@ -476,7 +482,11 @@ int inet_bind(struct socket *sock, struc
+@@ -496,7 +502,11 @@ int inet_bind(struct socket *sock, struc
                        goto out;
        }
  
@@ -24408,7 +24248,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/af_inet.c linux-3.6.10-vs2.3.4.5/net
  
        /* Not specified by any standard per-se, however it breaks too
         * many applications when removed.  It is unfortunate since
-@@ -488,7 +498,7 @@ int inet_bind(struct socket *sock, struc
+@@ -508,7 +518,7 @@ int inet_bind(struct socket *sock, struc
        err = -EADDRNOTAVAIL;
        if (!sysctl_ip_nonlocal_bind &&
            !(inet->freebind || inet->transparent) &&
@@ -24417,7 +24257,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/af_inet.c linux-3.6.10-vs2.3.4.5/net
            chk_addr_ret != RTN_LOCAL &&
            chk_addr_ret != RTN_MULTICAST &&
            chk_addr_ret != RTN_BROADCAST)
-@@ -513,7 +523,7 @@ int inet_bind(struct socket *sock, struc
+@@ -533,7 +543,7 @@ int inet_bind(struct socket *sock, struc
        if (sk->sk_state != TCP_CLOSE || inet->inet_num)
                goto out_release_sock;
  
@@ -24426,7 +24266,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/af_inet.c linux-3.6.10-vs2.3.4.5/net
        if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST)
                inet->inet_saddr = 0;  /* Use device */
  
-@@ -731,11 +741,13 @@ int inet_getname(struct socket *sock, st
+@@ -752,11 +762,13 @@ int inet_getname(struct socket *sock, st
                     peer == 1))
                        return -ENOTCONN;
                sin->sin_port = inet->inet_dport;
@@ -24441,9 +24281,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/af_inet.c linux-3.6.10-vs2.3.4.5/net
                sin->sin_port = inet->inet_sport;
                sin->sin_addr.s_addr = addr;
        }
-diff -NurpP --minimal linux-3.6.10/net/ipv4/arp.c linux-3.6.10-vs2.3.4.5/net/ipv4/arp.c
---- linux-3.6.10/net/ipv4/arp.c        2012-10-04 15:27:49.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/arp.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv4/arp.c linux-3.7-vs2.3.5.1/net/ipv4/arp.c
+--- linux-3.7/net/ipv4/arp.c   2012-10-04 13:27:49.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/arp.c 2012-12-11 15:56:33.000000000 +0000
 @@ -1318,6 +1318,7 @@ static void arp_format_neigh_entry(struc
        struct net_device *dev = n->dev;
        int hatype = dev->type;
@@ -24460,10 +24300,10 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/arp.c linux-3.6.10-vs2.3.4.5/net/ipv
        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.6.10/net/ipv4/devinet.c linux-3.6.10-vs2.3.4.5/net/ipv4/devinet.c
---- linux-3.6.10/net/ipv4/devinet.c    2012-10-04 15:27:49.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/devinet.c  2012-10-04 18:47:00.000000000 +0200
-@@ -516,6 +516,7 @@ struct in_device *inetdev_by_index(struc
+diff -NurpP --minimal linux-3.7/net/ipv4/devinet.c linux-3.7-vs2.3.5.1/net/ipv4/devinet.c
+--- linux-3.7/net/ipv4/devinet.c       2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/devinet.c     2012-12-11 15:56:33.000000000 +0000
+@@ -513,6 +513,7 @@ struct in_device *inetdev_by_index(struc
  }
  EXPORT_SYMBOL(inetdev_by_index);
  
@@ -24471,7 +24311,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/devinet.c linux-3.6.10-vs2.3.4.5/net
  /* Called only from RTNL semaphored context. No locks. */
  
  struct in_ifaddr *inet_ifa_byprefix(struct in_device *in_dev, __be32 prefix,
-@@ -757,6 +758,8 @@ int devinet_ioctl(struct net *net, unsig
+@@ -754,6 +755,8 @@ int devinet_ioctl(struct net *net, unsig
  
        in_dev = __in_dev_get_rtnl(dev);
        if (in_dev) {
@@ -24480,7 +24320,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/devinet.c linux-3.6.10-vs2.3.4.5/net
                if (tryaddrmatch) {
                        /* Matthias Andree */
                        /* compare label and address (4.4BSD style) */
-@@ -765,6 +768,8 @@ int devinet_ioctl(struct net *net, unsig
+@@ -762,6 +765,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) {
@@ -24489,7 +24329,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/devinet.c linux-3.6.10-vs2.3.4.5/net
                                if (!strcmp(ifr.ifr_name, ifa->ifa_label) &&
                                    sin_orig.sin_addr.s_addr ==
                                                        ifa->ifa_local) {
-@@ -777,9 +782,12 @@ int devinet_ioctl(struct net *net, unsig
+@@ -774,9 +779,12 @@ int devinet_ioctl(struct net *net, unsig
                   comparing just the label */
                if (!ifa) {
                        for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL;
@@ -24503,7 +24343,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/devinet.c linux-3.6.10-vs2.3.4.5/net
                }
        }
  
-@@ -932,6 +940,8 @@ static int inet_gifconf(struct net_devic
+@@ -929,6 +937,8 @@ static int inet_gifconf(struct net_devic
                goto out;
  
        for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) {
@@ -24512,7 +24352,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/devinet.c linux-3.6.10-vs2.3.4.5/net
                if (!buf) {
                        done += sizeof(ifr);
                        continue;
-@@ -1291,6 +1301,7 @@ static int inet_dump_ifaddr(struct sk_bu
+@@ -1288,6 +1298,7 @@ static int inet_dump_ifaddr(struct sk_bu
        struct net_device *dev;
        struct in_device *in_dev;
        struct in_ifaddr *ifa;
@@ -24520,7 +24360,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/devinet.c linux-3.6.10-vs2.3.4.5/net
        struct hlist_head *head;
        struct hlist_node *node;
  
-@@ -1313,6 +1324,8 @@ static int inet_dump_ifaddr(struct sk_bu
+@@ -1310,6 +1321,8 @@ static int inet_dump_ifaddr(struct sk_bu
  
                        for (ifa = in_dev->ifa_list, ip_idx = 0; ifa;
                             ifa = ifa->ifa_next, ip_idx++) {
@@ -24529,10 +24369,10 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/devinet.c linux-3.6.10-vs2.3.4.5/net
                                if (ip_idx < s_ip_idx)
                                        continue;
                                if (inet_fill_ifaddr(skb, ifa,
-diff -NurpP --minimal linux-3.6.10/net/ipv4/fib_trie.c linux-3.6.10-vs2.3.4.5/net/ipv4/fib_trie.c
---- linux-3.6.10/net/ipv4/fib_trie.c   2012-10-04 15:27:49.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/fib_trie.c 2012-10-04 18:47:00.000000000 +0200
-@@ -2554,6 +2554,7 @@ static int fib_route_seq_show(struct seq
+diff -NurpP --minimal linux-3.7/net/ipv4/fib_trie.c linux-3.7-vs2.3.5.1/net/ipv4/fib_trie.c
+--- linux-3.7/net/ipv4/fib_trie.c      2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/fib_trie.c    2012-12-11 15:56:33.000000000 +0000
+@@ -2557,6 +2557,7 @@ static int fib_route_seq_show(struct seq
                            || fa->fa_type == RTN_MULTICAST)
                                continue;
  
@@ -24540,9 +24380,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/fib_trie.c linux-3.6.10-vs2.3.4.5/ne
                        if (fi)
                                seq_printf(seq,
                                         "%s\t%08X\t%08X\t%04X\t%d\t%u\t"
-diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_connection_sock.c linux-3.6.10-vs2.3.4.5/net/ipv4/inet_connection_sock.c
---- linux-3.6.10/net/ipv4/inet_connection_sock.c       2012-12-11 12:37:03.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/inet_connection_sock.c     2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/net/ipv4/inet_connection_sock.c linux-3.7-vs2.3.5.1/net/ipv4/inet_connection_sock.c
+--- linux-3.7/net/ipv4/inet_connection_sock.c  2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/inet_connection_sock.c        2012-12-11 15:56:33.000000000 +0000
 @@ -53,6 +53,37 @@ void inet_get_local_port_range(int *low,
  }
  EXPORT_SYMBOL(inet_get_local_port_range);
@@ -24581,7 +24421,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_connection_sock.c linux-3.6.10-
  int inet_csk_bind_conflict(const struct sock *sk,
                           const struct inet_bind_bucket *tb, bool relax)
  {
-@@ -75,9 +106,7 @@ int inet_csk_bind_conflict(const struct 
+@@ -75,9 +106,7 @@ int inet_csk_bind_conflict(const struct
                     sk->sk_bound_dev_if == sk2->sk_bound_dev_if)) {
                        if (!reuse || !sk2->sk_reuse ||
                            sk2->sk_state == TCP_LISTEN) {
@@ -24592,9 +24432,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_connection_sock.c linux-3.6.10-
                                        break;
                        }
                        if (!relax && reuse && sk2->sk_reuse &&
-diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_diag.c linux-3.6.10-vs2.3.4.5/net/ipv4/inet_diag.c
---- linux-3.6.10/net/ipv4/inet_diag.c  2012-12-11 12:37:03.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/inet_diag.c        2012-12-08 01:36:33.000000000 +0100
+diff -NurpP --minimal linux-3.7/net/ipv4/inet_diag.c linux-3.7-vs2.3.5.1/net/ipv4/inet_diag.c
+--- linux-3.7/net/ipv4/inet_diag.c     2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/inet_diag.c   2012-12-11 17:05:58.000000000 +0000
 @@ -31,6 +31,8 @@
  
  #include <linux/inet.h>
@@ -24604,7 +24444,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_diag.c linux-3.6.10-vs2.3.4.5/n
  
  #include <linux/inet_diag.h>
  #include <linux/sock_diag.h>
-@@ -101,8 +103,10 @@ int inet_sk_diag_fill(struct sock *sk, s
+@@ -106,8 +108,10 @@ int inet_sk_diag_fill(struct sock *sk, s
  
        r->id.idiag_sport = inet->inet_sport;
        r->id.idiag_dport = inet->inet_dport;
@@ -24617,7 +24457,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_diag.c linux-3.6.10-vs2.3.4.5/n
  
        /* IPv6 dual-stack sockets use inet->tos for IPv4 connections,
         * hence this needs to be included regardless of socket family.
-@@ -233,8 +237,8 @@ static int inet_twsk_diag_fill(struct in
+@@ -239,8 +243,8 @@ static int inet_twsk_diag_fill(struct in
        sock_diag_save_cookie(tw, r->id.idiag_cookie);
        r->id.idiag_sport     = tw->tw_sport;
        r->id.idiag_dport     = tw->tw_dport;
@@ -24628,7 +24468,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_diag.c linux-3.6.10-vs2.3.4.5/n
        r->idiag_state        = tw->tw_substate;
        r->idiag_timer        = 3;
        r->idiag_expires      = DIV_ROUND_UP(tmo * 1000, HZ);
-@@ -276,12 +280,14 @@ int inet_diag_dump_one_icsk(struct inet_
+@@ -284,12 +288,14 @@ int inet_diag_dump_one_icsk(struct inet_
  
        err = -EINVAL;
        if (req->sdiag_family == AF_INET) {
@@ -24643,7 +24483,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_diag.c linux-3.6.10-vs2.3.4.5/n
                sk = inet6_lookup(net, hashinfo,
                                  (struct in6_addr *)req->id.idiag_dst,
                                  req->id.idiag_dport,
-@@ -476,6 +482,7 @@ int inet_diag_bc_sk(const struct nlattr 
+@@ -491,6 +497,7 @@ int inet_diag_bc_sk(const struct nlattr
        } else
  #endif
        {
@@ -24651,7 +24491,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_diag.c linux-3.6.10-vs2.3.4.5/n
                entry.saddr = &inet->inet_rcv_saddr;
                entry.daddr = &inet->inet_daddr;
        }
-@@ -574,6 +581,7 @@ static int inet_twsk_diag_dump(struct in
+@@ -649,6 +656,7 @@ static int inet_twsk_diag_dump(struct in
                } else
  #endif
                {
@@ -24659,7 +24499,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_diag.c linux-3.6.10-vs2.3.4.5/n
                        entry.saddr = &tw->tw_rcv_saddr;
                        entry.daddr = &tw->tw_daddr;
                }
-@@ -620,8 +628,8 @@ static int inet_diag_fill_req(struct sk_
+@@ -727,8 +735,8 @@ static int inet_diag_fill_req(struct sk_
  
        r->id.idiag_sport = inet->inet_sport;
        r->id.idiag_dport = ireq->rmt_port;
@@ -24670,15 +24510,15 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_diag.c linux-3.6.10-vs2.3.4.5/n
        r->idiag_expires = jiffies_to_msecs(tmo);
        r->idiag_rqueue = 0;
        r->idiag_wqueue = 0;
-@@ -683,6 +691,7 @@ static int inet_diag_dump_reqs(struct sk
+@@ -791,6 +799,7 @@ static int inet_diag_dump_reqs(struct sk
+                           r->id.idiag_dport)
                                continue;
  
++                      /* TODO: lback */
                        if (bc) {
-+                              /* TODO: lback */
-                               entry.saddr =
- #if IS_ENABLED(CONFIG_IPV6)
-                                       (entry.family == AF_INET6) ?
-@@ -748,6 +757,8 @@ void inet_diag_dump_icsk(struct inet_has
+                               inet_diag_req_addrs(sk, req, &entry);
+                               entry.dport = ntohs(ireq->rmt_port);
+@@ -847,6 +856,8 @@ void inet_diag_dump_icsk(struct inet_has
                                if (!net_eq(sock_net(sk), net))
                                        continue;
  
@@ -24687,7 +24527,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_diag.c linux-3.6.10-vs2.3.4.5/n
                                if (num < s_num) {
                                        num++;
                                        continue;
-@@ -820,6 +831,8 @@ skip_listen_ht:
+@@ -919,6 +930,8 @@ skip_listen_ht:
  
                        if (!net_eq(sock_net(sk), net))
                                continue;
@@ -24696,7 +24536,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_diag.c linux-3.6.10-vs2.3.4.5/n
                        if (num < s_num)
                                goto next_normal;
                        if (!(r->idiag_states & (1 << sk->sk_state)))
-@@ -848,7 +861,8 @@ next_normal:
+@@ -947,7 +960,8 @@ next_normal:
                                    &head->twchain) {
                                if (!net_eq(twsk_net(tw), net))
                                        continue;
@@ -24706,9 +24546,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_diag.c linux-3.6.10-vs2.3.4.5/n
                                if (num < s_num)
                                        goto next_dying;
                                if (r->sdiag_family != AF_UNSPEC &&
-diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_hashtables.c linux-3.6.10-vs2.3.4.5/net/ipv4/inet_hashtables.c
---- linux-3.6.10/net/ipv4/inet_hashtables.c    2012-07-22 23:39:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/inet_hashtables.c  2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv4/inet_hashtables.c linux-3.7-vs2.3.5.1/net/ipv4/inet_hashtables.c
+--- linux-3.7/net/ipv4/inet_hashtables.c       2012-07-22 21:39:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/inet_hashtables.c     2012-12-11 15:56:33.000000000 +0000
 @@ -22,6 +22,7 @@
  #include <net/inet_connection_sock.h>
  #include <net/inet_hashtables.h>
@@ -24745,20 +24585,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/inet_hashtables.c linux-3.6.10-vs2.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.6.10/net/ipv4/netfilter/nf_nat_helper.c linux-3.6.10-vs2.3.4.5/net/ipv4/netfilter/nf_nat_helper.c
---- linux-3.6.10/net/ipv4/netfilter/nf_nat_helper.c    2012-10-04 15:27:50.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/netfilter/nf_nat_helper.c  2012-10-04 18:47:00.000000000 +0200
-@@ -20,6 +20,7 @@
- #include <net/route.h>
- #include <linux/netfilter_ipv4.h>
-+#include <net/route.h>
- #include <net/netfilter/nf_conntrack.h>
- #include <net/netfilter/nf_conntrack_helper.h>
- #include <net/netfilter/nf_conntrack_ecache.h>
-diff -NurpP --minimal linux-3.6.10/net/ipv4/netfilter.c linux-3.6.10-vs2.3.4.5/net/ipv4/netfilter.c
---- linux-3.6.10/net/ipv4/netfilter.c  2012-07-22 23:39:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/netfilter.c        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv4/netfilter.c linux-3.7-vs2.3.5.1/net/ipv4/netfilter.c
+--- linux-3.7/net/ipv4/netfilter.c     2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/netfilter.c   2012-12-11 15:56:33.000000000 +0000
 @@ -6,7 +6,7 @@
  #include <linux/skbuff.h>
  #include <linux/gfp.h>
@@ -24768,9 +24597,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/netfilter.c linux-3.6.10-vs2.3.4.5/n
  #include <net/xfrm.h>
  #include <net/ip.h>
  #include <net/netfilter/nf_queue.h>
-diff -NurpP --minimal linux-3.6.10/net/ipv4/raw.c linux-3.6.10-vs2.3.4.5/net/ipv4/raw.c
---- linux-3.6.10/net/ipv4/raw.c        2012-10-04 15:27:50.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/raw.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv4/raw.c linux-3.7-vs2.3.5.1/net/ipv4/raw.c
+--- linux-3.7/net/ipv4/raw.c   2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/raw.c 2012-12-11 15:56:33.000000000 +0000
 @@ -118,7 +118,7 @@ static struct sock *__raw_v4_lookup(stru
  
                if (net_eq(sock_net(sk), net) && inet->inet_num == num  &&
@@ -24853,7 +24682,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/raw.c linux-3.6.10-vs2.3.4.5/net/ipv
                                goto found;
        }
        sk = NULL;
-@@ -932,7 +952,8 @@ static struct sock *raw_get_next(struct 
+@@ -932,7 +952,8 @@ static struct sock *raw_get_next(struct
                sk = sk_next(sk);
  try_again:
                ;
@@ -24863,10 +24692,10 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/raw.c linux-3.6.10-vs2.3.4.5/net/ipv
  
        if (!sk && ++state->bucket < RAW_HTABLE_SIZE) {
                sk = sk_head(&state->h->ht[state->bucket]);
-diff -NurpP --minimal linux-3.6.10/net/ipv4/route.c linux-3.6.10-vs2.3.4.5/net/ipv4/route.c
---- linux-3.6.10/net/ipv4/route.c      2012-12-11 12:37:03.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/route.c    2012-12-08 01:36:33.000000000 +0100
-@@ -1949,7 +1949,7 @@ struct rtable *__ip_route_output_key(str
+diff -NurpP --minimal linux-3.7/net/ipv4/route.c linux-3.7-vs2.3.5.1/net/ipv4/route.c
+--- linux-3.7/net/ipv4/route.c 2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/route.c       2012-12-11 15:56:33.000000000 +0000
+@@ -1952,7 +1952,7 @@ struct rtable *__ip_route_output_key(str
  
  
        if (fl4->flowi4_oif) {
@@ -24875,9 +24704,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/route.c linux-3.6.10-vs2.3.4.5/net/i
                rth = ERR_PTR(-ENODEV);
                if (dev_out == NULL)
                        goto out;
-diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp.c linux-3.6.10-vs2.3.4.5/net/ipv4/tcp.c
---- linux-3.6.10/net/ipv4/tcp.c        2012-12-11 12:37:03.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/tcp.c      2012-12-08 01:36:33.000000000 +0100
+diff -NurpP --minimal linux-3.7/net/ipv4/tcp.c linux-3.7-vs2.3.5.1/net/ipv4/tcp.c
+--- linux-3.7/net/ipv4/tcp.c   2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/tcp.c 2012-12-11 15:56:33.000000000 +0000
 @@ -268,6 +268,7 @@
  #include <linux/crypto.h>
  #include <linux/time.h>
@@ -24886,10 +24715,10 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp.c linux-3.6.10-vs2.3.4.5/net/ipv
  
  #include <net/icmp.h>
  #include <net/inet_common.h>
-diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_ipv4.c linux-3.6.10-vs2.3.4.5/net/ipv4/tcp_ipv4.c
---- linux-3.6.10/net/ipv4/tcp_ipv4.c   2012-12-11 12:37:03.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/tcp_ipv4.c 2012-11-06 18:43:41.000000000 +0100
-@@ -2034,6 +2034,12 @@ static void *listening_get_next(struct s
+diff -NurpP --minimal linux-3.7/net/ipv4/tcp_ipv4.c linux-3.7-vs2.3.5.1/net/ipv4/tcp_ipv4.c
+--- linux-3.7/net/ipv4/tcp_ipv4.c      2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/tcp_ipv4.c    2012-12-11 17:07:07.000000000 +0000
+@@ -2264,6 +2264,12 @@ static void *listening_get_next(struct s
                req = req->dl_next;
                while (1) {
                        while (req) {
@@ -24902,7 +24731,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_ipv4.c linux-3.6.10-vs2.3.4.5/ne
                                if (req->rsk_ops->family == st->family) {
                                        cur = req;
                                        goto out;
-@@ -2058,6 +2064,10 @@ get_req:
+@@ -2288,6 +2294,10 @@ get_req:
        }
  get_sk:
        sk_nulls_for_each_from(sk, node) {
@@ -24913,7 +24742,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_ipv4.c linux-3.6.10-vs2.3.4.5/ne
                if (!net_eq(sock_net(sk), net))
                        continue;
                if (sk->sk_family == st->family) {
-@@ -2134,6 +2144,11 @@ static void *established_get_first(struc
+@@ -2364,6 +2374,11 @@ static void *established_get_first(struc
  
                spin_lock_bh(lock);
                sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[st->bucket].chain) {
@@ -24925,7 +24754,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_ipv4.c linux-3.6.10-vs2.3.4.5/ne
                        if (sk->sk_family != st->family ||
                            !net_eq(sock_net(sk), net)) {
                                continue;
-@@ -2144,6 +2159,11 @@ static void *established_get_first(struc
+@@ -2374,6 +2389,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) {
@@ -24937,7 +24766,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_ipv4.c linux-3.6.10-vs2.3.4.5/ne
                        if (tw->tw_family != st->family ||
                            !net_eq(twsk_net(tw), net)) {
                                continue;
-@@ -2173,7 +2193,9 @@ static void *established_get_next(struct
+@@ -2403,7 +2423,9 @@ static void *established_get_next(struct
                tw = cur;
                tw = tw_next(tw);
  get_tw:
@@ -24948,7 +24777,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_ipv4.c linux-3.6.10-vs2.3.4.5/ne
                        tw = tw_next(tw);
                }
                if (tw) {
-@@ -2197,6 +2219,11 @@ get_tw:
+@@ -2427,6 +2449,11 @@ get_tw:
                sk = sk_nulls_next(sk);
  
        sk_nulls_for_each_from(sk, node) {
@@ -24960,7 +24789,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_ipv4.c linux-3.6.10-vs2.3.4.5/ne
                if (sk->sk_family == st->family && net_eq(sock_net(sk), net))
                        goto found;
        }
-@@ -2402,9 +2429,9 @@ static void get_openreq4(const struct so
+@@ -2632,9 +2659,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,
@@ -24972,10 +24801,10 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_ipv4.c linux-3.6.10-vs2.3.4.5/ne
                ntohs(ireq->rmt_port),
                TCP_SYN_RECV,
                0, 0, /* could print option size, but that is af dependent. */
-@@ -2426,8 +2453,8 @@ static void get_tcp4_sock(struct sock *s
-       const struct tcp_sock *tp = tcp_sk(sk);
+@@ -2657,8 +2684,8 @@ static void get_tcp4_sock(struct sock *s
        const struct inet_connection_sock *icsk = inet_csk(sk);
        const struct inet_sock *inet = inet_sk(sk);
+       struct fastopen_queue *fastopenq = icsk->icsk_accept_queue.fastopenq;
 -      __be32 dest = inet->inet_daddr;
 -      __be32 src = inet->inet_rcv_saddr;
 +      __be32 dest = nx_map_sock_lback(current_nx_info(), inet->inet_daddr);
@@ -24983,9 +24812,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_ipv4.c linux-3.6.10-vs2.3.4.5/ne
        __u16 destp = ntohs(inet->inet_dport);
        __u16 srcp = ntohs(inet->inet_sport);
        int rx_queue;
-@@ -2484,8 +2511,8 @@ static void get_timewait4_sock(const str
-       if (ttd < 0)
-               ttd = 0;
+@@ -2714,8 +2741,8 @@ static void get_timewait4_sock(const str
+       __u16 destp, srcp;
+       long delta = tw->tw_ttd - jiffies;
  
 -      dest  = tw->tw_daddr;
 -      src   = tw->tw_rcv_saddr;
@@ -24994,9 +24823,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_ipv4.c linux-3.6.10-vs2.3.4.5/ne
        destp = ntohs(tw->tw_dport);
        srcp  = ntohs(tw->tw_sport);
  
-diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_minisocks.c linux-3.6.10-vs2.3.4.5/net/ipv4/tcp_minisocks.c
---- linux-3.6.10/net/ipv4/tcp_minisocks.c      2012-10-04 15:27:50.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/tcp_minisocks.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv4/tcp_minisocks.c linux-3.7-vs2.3.5.1/net/ipv4/tcp_minisocks.c
+--- linux-3.7/net/ipv4/tcp_minisocks.c 2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/tcp_minisocks.c       2012-12-11 15:56:33.000000000 +0000
 @@ -23,6 +23,9 @@
  #include <linux/slab.h>
  #include <linux/sysctl.h>
@@ -25007,7 +24836,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_minisocks.c linux-3.6.10-vs2.3.4
  #include <net/tcp.h>
  #include <net/inet_common.h>
  #include <net/xfrm.h>
-@@ -287,6 +290,11 @@ void tcp_time_wait(struct sock *sk, int 
+@@ -289,6 +292,11 @@ void tcp_time_wait(struct sock *sk, int
                tcptw->tw_ts_recent     = tp->rx_opt.ts_recent;
                tcptw->tw_ts_recent_stamp = tp->rx_opt.ts_recent_stamp;
  
@@ -25019,9 +24848,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/tcp_minisocks.c linux-3.6.10-vs2.3.4
  #if IS_ENABLED(CONFIG_IPV6)
                if (tw->tw_family == PF_INET6) {
                        struct ipv6_pinfo *np = inet6_sk(sk);
-diff -NurpP --minimal linux-3.6.10/net/ipv4/udp.c linux-3.6.10-vs2.3.4.5/net/ipv4/udp.c
---- linux-3.6.10/net/ipv4/udp.c        2012-10-04 15:27:50.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv4/udp.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv4/udp.c linux-3.7-vs2.3.5.1/net/ipv4/udp.c
+--- linux-3.7/net/ipv4/udp.c   2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv4/udp.c 2012-12-11 15:56:33.000000000 +0000
 @@ -300,14 +300,7 @@ fail:
  }
  EXPORT_SYMBOL(udp_lib_get_port);
@@ -25132,7 +24961,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/udp.c linux-3.6.10-vs2.3.4.5/net/ipv
                        if (sk->sk_family == state->family)
                                goto found;
                }
-@@ -2009,7 +2027,9 @@ static struct sock *udp_get_next(struct 
+@@ -2009,7 +2027,9 @@ static struct sock *udp_get_next(struct
  
        do {
                sk = sk_nulls_next(sk);
@@ -25154,9 +24983,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv4/udp.c linux-3.6.10-vs2.3.4.5/net/ipv
        __u16 destp       = ntohs(inet->inet_dport);
        __u16 srcp        = ntohs(inet->inet_sport);
  
-diff -NurpP --minimal linux-3.6.10/net/ipv6/Kconfig linux-3.6.10-vs2.3.4.5/net/ipv6/Kconfig
---- linux-3.6.10/net/ipv6/Kconfig      2012-07-22 23:39:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/Kconfig    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv6/Kconfig linux-3.7-vs2.3.5.1/net/ipv6/Kconfig
+--- linux-3.7/net/ipv6/Kconfig 2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/Kconfig       2012-12-11 15:56:33.000000000 +0000
 @@ -4,8 +4,8 @@
  
  #   IPv6 as module will cause a CRASH if you try to unload it
@@ -25168,9 +24997,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/Kconfig linux-3.6.10-vs2.3.4.5/net/i
        ---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.6.10/net/ipv6/addrconf.c linux-3.6.10-vs2.3.4.5/net/ipv6/addrconf.c
---- linux-3.6.10/net/ipv6/addrconf.c   2012-12-11 12:37:04.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/addrconf.c 2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/net/ipv6/addrconf.c linux-3.7-vs2.3.5.1/net/ipv6/addrconf.c
+--- linux-3.7/net/ipv6/addrconf.c      2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/addrconf.c    2012-12-11 15:56:33.000000000 +0000
 @@ -92,6 +92,8 @@
  #include <linux/proc_fs.h>
  #include <linux/seq_file.h>
@@ -25180,16 +25009,16 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/addrconf.c linux-3.6.10-vs2.3.4.5/ne
  
  /* Set to 3 to get tracing... */
  #define ACONF_DEBUG 2
-@@ -1101,7 +1103,7 @@ out:
+@@ -1094,7 +1096,7 @@ out:
  
- int ipv6_dev_get_saddr(struct net *net, struct net_device *dst_dev,
+ int ipv6_dev_get_saddr(struct net *net, const struct net_device *dst_dev,
                       const struct in6_addr *daddr, unsigned int prefs,
 -                     struct in6_addr *saddr)
 +                     struct in6_addr *saddr, struct nx_info *nxi)
  {
        struct ipv6_saddr_score scores[2],
                                *score = &scores[0], *hiscore = &scores[1];
-@@ -1173,6 +1175,8 @@ int ipv6_dev_get_saddr(struct net *net, 
+@@ -1166,6 +1168,8 @@ int ipv6_dev_get_saddr(struct net *net,
                                               dev->name);
                                continue;
                        }
@@ -25198,7 +25027,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/addrconf.c linux-3.6.10-vs2.3.4.5/ne
  
                        score->rule = -1;
                        bitmap_zero(score->scorebits, IPV6_SADDR_RULE_MAX);
-@@ -3159,7 +3163,10 @@ static void if6_seq_stop(struct seq_file
+@@ -3135,7 +3139,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;
@@ -25210,7 +25039,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/addrconf.c linux-3.6.10-vs2.3.4.5/ne
                   &ifp->addr,
                   ifp->idev->dev->ifindex,
                   ifp->prefix_len,
-@@ -3665,6 +3672,11 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3641,6 +3648,11 @@ static int in6_dump_addrs(struct inet6_d
        struct ifacaddr6 *ifaca;
        int err = 1;
        int ip_idx = *p_ip_idx;
@@ -25222,34 +25051,34 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/addrconf.c linux-3.6.10-vs2.3.4.5/ne
  
        read_lock_bh(&idev->lock);
        switch (type) {
-@@ -3675,6 +3687,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3651,6 +3663,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;
 +                              if (!v6_addr_in_nx_info(nxi, &ifa->addr, -1))
 +                                      continue;
                        err = inet6_fill_ifaddr(skb, ifa,
-                                               NETLINK_CB(cb->skb).pid,
+                                               NETLINK_CB(cb->skb).portid,
                                                cb->nlh->nlmsg_seq,
-@@ -3691,6 +3705,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3667,6 +3681,8 @@ static int in6_dump_addrs(struct inet6_d
                     ifmca = ifmca->next, ip_idx++) {
                        if (ip_idx < s_ip_idx)
                                continue;
 +                              if (!v6_addr_in_nx_info(nxi, &ifmca->mca_addr, -1))
 +                                      continue;
                        err = inet6_fill_ifmcaddr(skb, ifmca,
-                                                 NETLINK_CB(cb->skb).pid,
+                                                 NETLINK_CB(cb->skb).portid,
                                                  cb->nlh->nlmsg_seq,
-@@ -3706,6 +3722,8 @@ static int in6_dump_addrs(struct inet6_d
+@@ -3682,6 +3698,8 @@ static int in6_dump_addrs(struct inet6_d
                     ifaca = ifaca->aca_next, ip_idx++) {
                        if (ip_idx < s_ip_idx)
                                continue;
 +                              if (!v6_addr_in_nx_info(nxi, &ifaca->aca_addr, -1))
 +                                      continue;
                        err = inet6_fill_ifacaddr(skb, ifaca,
-                                                 NETLINK_CB(cb->skb).pid,
+                                                 NETLINK_CB(cb->skb).portid,
                                                  cb->nlh->nlmsg_seq,
-@@ -4089,6 +4107,11 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -4065,6 +4083,11 @@ static int inet6_dump_ifinfo(struct sk_b
        struct inet6_dev *idev;
        struct hlist_head *head;
        struct hlist_node *node;
@@ -25261,7 +25090,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/addrconf.c linux-3.6.10-vs2.3.4.5/ne
  
        s_h = cb->args[0];
        s_idx = cb->args[1];
-@@ -4100,6 +4123,8 @@ static int inet6_dump_ifinfo(struct sk_b
+@@ -4076,6 +4099,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;
@@ -25270,9 +25099,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/addrconf.c linux-3.6.10-vs2.3.4.5/ne
                        idev = __in6_dev_get(dev);
                        if (!idev)
                                goto cont;
-diff -NurpP --minimal linux-3.6.10/net/ipv6/af_inet6.c linux-3.6.10-vs2.3.4.5/net/ipv6/af_inet6.c
---- linux-3.6.10/net/ipv6/af_inet6.c   2012-12-11 12:37:04.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/af_inet6.c 2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/net/ipv6/af_inet6.c linux-3.7-vs2.3.5.1/net/ipv6/af_inet6.c
+--- linux-3.7/net/ipv6/af_inet6.c      2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/af_inet6.c    2012-12-11 15:56:33.000000000 +0000
 @@ -43,6 +43,8 @@
  #include <linux/netdevice.h>
  #include <linux/icmpv6.h>
@@ -25368,9 +25197,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/af_inet6.c linux-3.6.10-vs2.3.4.5/ne
                if (ipv6_addr_any(&np->rcv_saddr))
                        sin->sin6_addr = np->saddr;
                else
-diff -NurpP --minimal linux-3.6.10/net/ipv6/datagram.c linux-3.6.10-vs2.3.4.5/net/ipv6/datagram.c
---- linux-3.6.10/net/ipv6/datagram.c   2012-07-22 23:39:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/datagram.c 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv6/datagram.c linux-3.7-vs2.3.5.1/net/ipv6/datagram.c
+--- linux-3.7/net/ipv6/datagram.c      2012-07-22 21:39:48.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/datagram.c    2012-12-11 15:56:33.000000000 +0000
 @@ -645,7 +645,7 @@ int datagram_send_ctl(struct net *net, s
  
                        rcu_read_lock();
@@ -25380,9 +25209,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/datagram.c linux-3.6.10-vs2.3.4.5/ne
                                if (!dev) {
                                        rcu_read_unlock();
                                        return -ENODEV;
-diff -NurpP --minimal linux-3.6.10/net/ipv6/fib6_rules.c linux-3.6.10-vs2.3.4.5/net/ipv6/fib6_rules.c
---- linux-3.6.10/net/ipv6/fib6_rules.c 2012-07-22 23:39:48.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/fib6_rules.c       2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv6/fib6_rules.c linux-3.7-vs2.3.5.1/net/ipv6/fib6_rules.c
+--- linux-3.7/net/ipv6/fib6_rules.c    2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/fib6_rules.c  2012-12-11 15:56:33.000000000 +0000
 @@ -90,7 +90,7 @@ static int fib6_rule_action(struct fib_r
                                               ip6_dst_idev(&rt->dst)->dev,
                                               &flp6->daddr,
@@ -25392,9 +25221,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/fib6_rules.c linux-3.6.10-vs2.3.4.5/
                                goto again;
                        if (!ipv6_prefix_equal(&saddr, &r->src.addr,
                                               r->src.plen))
-diff -NurpP --minimal linux-3.6.10/net/ipv6/inet6_hashtables.c linux-3.6.10-vs2.3.4.5/net/ipv6/inet6_hashtables.c
---- linux-3.6.10/net/ipv6/inet6_hashtables.c   2011-10-24 18:45:34.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/inet6_hashtables.c 2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv6/inet6_hashtables.c linux-3.7-vs2.3.5.1/net/ipv6/inet6_hashtables.c
+--- linux-3.7/net/ipv6/inet6_hashtables.c      2011-10-24 16:45:34.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/inet6_hashtables.c    2012-12-11 15:56:33.000000000 +0000
 @@ -16,6 +16,7 @@
  
  #include <linux/module.h>
@@ -25430,10 +25259,10 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/inet6_hashtables.c linux-3.6.10-vs2.
                }
                if (sk->sk_bound_dev_if) {
                        if (sk->sk_bound_dev_if != dif)
-diff -NurpP --minimal linux-3.6.10/net/ipv6/ip6_output.c linux-3.6.10-vs2.3.4.5/net/ipv6/ip6_output.c
---- linux-3.6.10/net/ipv6/ip6_output.c 2012-10-04 15:27:50.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/ip6_output.c       2012-10-04 18:47:00.000000000 +0200
-@@ -966,7 +966,8 @@ static int ip6_dst_lookup_tail(struct so
+diff -NurpP --minimal linux-3.7/net/ipv6/ip6_output.c linux-3.7-vs2.3.5.1/net/ipv6/ip6_output.c
+--- linux-3.7/net/ipv6/ip6_output.c    2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/ip6_output.c  2012-12-11 15:56:33.000000000 +0000
+@@ -964,7 +964,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,
@@ -25443,9 +25272,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/ip6_output.c linux-3.6.10-vs2.3.4.5/
                if (err)
                        goto out_err_release;
        }
-diff -NurpP --minimal linux-3.6.10/net/ipv6/ndisc.c linux-3.6.10-vs2.3.4.5/net/ipv6/ndisc.c
---- linux-3.6.10/net/ipv6/ndisc.c      2012-12-11 12:37:04.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/ndisc.c    2012-12-08 01:36:33.000000000 +0100
+diff -NurpP --minimal linux-3.7/net/ipv6/ndisc.c linux-3.7-vs2.3.5.1/net/ipv6/ndisc.c
+--- linux-3.7/net/ipv6/ndisc.c 2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/ndisc.c       2012-12-11 15:56:33.000000000 +0000
 @@ -517,7 +517,7 @@ static void ndisc_send_na(struct net_dev
        } else {
                if (ipv6_dev_get_saddr(dev_net(dev), dev, daddr,
@@ -25455,9 +25284,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/ndisc.c linux-3.6.10-vs2.3.4.5/net/i
                        return;
                src_addr = &tmpaddr;
        }
-diff -NurpP --minimal linux-3.6.10/net/ipv6/raw.c linux-3.6.10-vs2.3.4.5/net/ipv6/raw.c
---- linux-3.6.10/net/ipv6/raw.c        2012-10-04 15:27:50.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/raw.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv6/raw.c linux-3.7-vs2.3.5.1/net/ipv6/raw.c
+--- linux-3.7/net/ipv6/raw.c   2012-12-11 15:47:54.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/raw.c 2012-12-11 15:56:33.000000000 +0000
 @@ -30,6 +30,7 @@
  #include <linux/icmpv6.h>
  #include <linux/netfilter.h>
@@ -25480,9 +25309,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/raw.c linux-3.6.10-vs2.3.4.5/net/ipv
                /* ipv4 addr of the socket is invalid.  Only the
                 * unspecified and mapped address have a v4 equivalent.
                 */
-diff -NurpP --minimal linux-3.6.10/net/ipv6/route.c linux-3.6.10-vs2.3.4.5/net/ipv6/route.c
---- linux-3.6.10/net/ipv6/route.c      2012-12-11 12:37:04.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/route.c    2012-12-08 01:36:33.000000000 +0100
+diff -NurpP --minimal linux-3.7/net/ipv6/route.c linux-3.7-vs2.3.5.1/net/ipv6/route.c
+--- linux-3.7/net/ipv6/route.c 2012-12-11 15:47:55.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/route.c       2012-12-11 15:56:33.000000000 +0000
 @@ -57,6 +57,7 @@
  #include <net/xfrm.h>
  #include <net/netevent.h>
@@ -25491,7 +25320,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/route.c linux-3.6.10-vs2.3.4.5/net/i
  
  #include <asm/uaccess.h>
  
-@@ -2112,15 +2113,17 @@ int ip6_route_get_saddr(struct net *net,
+@@ -2116,15 +2117,17 @@ int ip6_route_get_saddr(struct net *net,
                        struct rt6_info *rt,
                        const struct in6_addr *daddr,
                        unsigned int prefs,
@@ -25512,7 +25341,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/route.c linux-3.6.10-vs2.3.4.5/net/i
        return err;
  }
  
-@@ -2456,7 +2459,8 @@ static int rt6_fill_node(struct net *net
+@@ -2478,7 +2481,8 @@ static int rt6_fill_node(struct net *net
                                goto nla_put_failure;
        } else if (dst) {
                struct in6_addr saddr_buf;
@@ -25522,7 +25351,7 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/route.c linux-3.6.10-vs2.3.4.5/net/i
                    nla_put(skb, RTA_PREFSRC, 16, &saddr_buf))
                        goto nla_put_failure;
        }
-@@ -2674,6 +2678,7 @@ static int rt6_info_route(struct rt6_inf
+@@ -2692,6 +2696,7 @@ static int rt6_info_route(struct rt6_inf
        struct seq_file *m = p_arg;
        struct neighbour *n;
  
@@ -25530,9 +25359,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/route.c linux-3.6.10-vs2.3.4.5/net/i
        seq_printf(m, "%pi6 %02x ", &rt->rt6i_dst.addr, rt->rt6i_dst.plen);
  
  #ifdef CONFIG_IPV6_SUBTREES
-diff -NurpP --minimal linux-3.6.10/net/ipv6/tcp_ipv6.c linux-3.6.10-vs2.3.4.5/net/ipv6/tcp_ipv6.c
---- linux-3.6.10/net/ipv6/tcp_ipv6.c   2012-12-11 12:37:04.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/tcp_ipv6.c 2012-11-06 18:43:41.000000000 +0100
+diff -NurpP --minimal linux-3.7/net/ipv6/tcp_ipv6.c linux-3.7-vs2.3.5.1/net/ipv6/tcp_ipv6.c
+--- linux-3.7/net/ipv6/tcp_ipv6.c      2012-12-11 15:47:55.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/tcp_ipv6.c    2012-12-11 15:56:33.000000000 +0000
 @@ -71,6 +71,7 @@
  
  #include <linux/crypto.h>
@@ -25559,9 +25388,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/tcp_ipv6.c linux-3.6.10-vs2.3.4.5/ne
  
        addr_type = ipv6_addr_type(&usin->sin6_addr);
  
-diff -NurpP --minimal linux-3.6.10/net/ipv6/udp.c linux-3.6.10-vs2.3.4.5/net/ipv6/udp.c
---- linux-3.6.10/net/ipv6/udp.c        2012-10-04 15:27:50.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/udp.c      2012-10-04 18:56:03.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv6/udp.c linux-3.7-vs2.3.5.1/net/ipv6/udp.c
+--- linux-3.7/net/ipv6/udp.c   2012-12-11 15:47:55.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/udp.c 2012-12-11 15:56:33.000000000 +0000
 @@ -45,42 +45,68 @@
  #include <net/tcp_states.h>
  #include <net/ip6_checksum.h>
@@ -25655,9 +25484,9 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/udp.c linux-3.6.10-vs2.3.4.5/net/ipv
                }
                if (!ipv6_addr_any(&np->daddr)) {
                        if (!ipv6_addr_equal(&np->daddr, saddr))
-diff -NurpP --minimal linux-3.6.10/net/ipv6/xfrm6_policy.c linux-3.6.10-vs2.3.4.5/net/ipv6/xfrm6_policy.c
---- linux-3.6.10/net/ipv6/xfrm6_policy.c       2012-10-04 15:27:50.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/ipv6/xfrm6_policy.c     2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/ipv6/xfrm6_policy.c linux-3.7-vs2.3.5.1/net/ipv6/xfrm6_policy.c
+--- linux-3.7/net/ipv6/xfrm6_policy.c  2012-10-04 13:27:50.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/ipv6/xfrm6_policy.c        2012-12-11 15:56:33.000000000 +0000
 @@ -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,
@@ -25667,10 +25496,10 @@ diff -NurpP --minimal linux-3.6.10/net/ipv6/xfrm6_policy.c linux-3.6.10-vs2.3.4.
        dst_release(dst);
        return 0;
  }
-diff -NurpP --minimal linux-3.6.10/net/netfilter/ipvs/ip_vs_xmit.c linux-3.6.10-vs2.3.4.5/net/netfilter/ipvs/ip_vs_xmit.c
---- linux-3.6.10/net/netfilter/ipvs/ip_vs_xmit.c       2012-12-11 12:37:04.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/netfilter/ipvs/ip_vs_xmit.c     2012-11-06 18:43:41.000000000 +0100
-@@ -231,7 +231,7 @@ __ip_vs_route_output_v6(struct net *net,
+diff -NurpP --minimal linux-3.7/net/netfilter/ipvs/ip_vs_xmit.c linux-3.7-vs2.3.5.1/net/netfilter/ipvs/ip_vs_xmit.c
+--- linux-3.7/net/netfilter/ipvs/ip_vs_xmit.c  2012-12-11 15:47:55.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/netfilter/ipvs/ip_vs_xmit.c        2012-12-11 15:56:33.000000000 +0000
+@@ -273,7 +273,7 @@ __ip_vs_route_output_v6(struct net *net,
                return dst;
        if (ipv6_addr_any(&fl6.saddr) &&
            ipv6_dev_get_saddr(net, ip6_dst_idev(dst)->dev,
@@ -25679,9 +25508,9 @@ diff -NurpP --minimal linux-3.6.10/net/netfilter/ipvs/ip_vs_xmit.c linux-3.6.10-
                goto out_err;
        if (do_xfrm) {
                dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0);
-diff -NurpP --minimal linux-3.6.10/net/netlink/af_netlink.c linux-3.6.10-vs2.3.4.5/net/netlink/af_netlink.c
---- linux-3.6.10/net/netlink/af_netlink.c      2012-12-11 12:37:04.000000000 +0100
-+++ linux-3.6.10-vs2.3.4.5/net/netlink/af_netlink.c    2012-12-08 01:36:33.000000000 +0100
+diff -NurpP --minimal linux-3.7/net/netlink/af_netlink.c linux-3.7-vs2.3.5.1/net/netlink/af_netlink.c
+--- linux-3.7/net/netlink/af_netlink.c 2012-12-11 15:47:56.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/netlink/af_netlink.c       2012-12-11 15:56:33.000000000 +0000
 @@ -55,6 +55,9 @@
  #include <linux/types.h>
  #include <linux/audit.h>
@@ -25692,7 +25521,7 @@ diff -NurpP --minimal linux-3.6.10/net/netlink/af_netlink.c linux-3.6.10-vs2.3.4
  
  #include <net/net_namespace.h>
  #include <net/sock.h>
-@@ -1983,6 +1986,8 @@ static struct sock *netlink_seq_socket_i
+@@ -1981,6 +1984,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;
@@ -25701,7 +25530,7 @@ diff -NurpP --minimal linux-3.6.10/net/netlink/af_netlink.c linux-3.6.10-vs2.3.4
                                if (off == pos) {
                                        iter->link = i;
                                        iter->hash_idx = j;
-@@ -2017,7 +2022,8 @@ static void *netlink_seq_next(struct seq
+@@ -2015,7 +2020,8 @@ static void *netlink_seq_next(struct seq
        s = v;
        do {
                s = sk_next(s);
@@ -25711,7 +25540,7 @@ diff -NurpP --minimal linux-3.6.10/net/netlink/af_netlink.c linux-3.6.10-vs2.3.4
        if (s)
                return s;
  
-@@ -2029,7 +2035,8 @@ static void *netlink_seq_next(struct seq
+@@ -2027,7 +2033,8 @@ static void *netlink_seq_next(struct seq
  
                for (; j <= hash->mask; j++) {
                        s = sk_head(&hash->table[j]);
@@ -25721,10 +25550,10 @@ diff -NurpP --minimal linux-3.6.10/net/netlink/af_netlink.c linux-3.6.10-vs2.3.4
                                s = sk_next(s);
                        if (s) {
                                iter->link = i;
-diff -NurpP --minimal linux-3.6.10/net/socket.c linux-3.6.10-vs2.3.4.5/net/socket.c
---- linux-3.6.10/net/socket.c  2012-10-04 15:27:51.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/socket.c        2012-10-04 18:47:00.000000000 +0200
-@@ -98,6 +98,10 @@
+diff -NurpP --minimal linux-3.7/net/socket.c linux-3.7-vs2.3.5.1/net/socket.c
+--- linux-3.7/net/socket.c     2012-12-11 15:47:57.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/socket.c   2012-12-11 15:56:33.000000000 +0000
+@@ -99,6 +99,10 @@
  
  #include <net/sock.h>
  #include <linux/netfilter.h>
@@ -25735,7 +25564,7 @@ diff -NurpP --minimal linux-3.6.10/net/socket.c linux-3.6.10-vs2.3.4.5/net/socke
  
  #include <linux/if_tun.h>
  #include <linux/ipv6_route.h>
-@@ -552,6 +556,7 @@ static inline int __sock_sendmsg_nosec(s
+@@ -619,6 +623,7 @@ static inline int __sock_sendmsg_nosec(s
                                       struct msghdr *msg, size_t size)
  {
        struct sock_iocb *si = kiocb_to_siocb(iocb);
@@ -25743,7 +25572,7 @@ diff -NurpP --minimal linux-3.6.10/net/socket.c linux-3.6.10-vs2.3.4.5/net/socke
  
        sock_update_classid(sock->sk);
  
-@@ -560,7 +565,22 @@ static inline int __sock_sendmsg_nosec(s
+@@ -627,7 +632,22 @@ static inline int __sock_sendmsg_nosec(s
        si->msg = msg;
        si->size = size;
  
@@ -25767,7 +25596,7 @@ diff -NurpP --minimal linux-3.6.10/net/socket.c linux-3.6.10-vs2.3.4.5/net/socke
  }
  
  static inline int __sock_sendmsg(struct kiocb *iocb, struct socket *sock,
-@@ -716,6 +736,7 @@ static inline int __sock_recvmsg_nosec(s
+@@ -783,6 +803,7 @@ static inline int __sock_recvmsg_nosec(s
                                       struct msghdr *msg, size_t size, int flags)
  {
        struct sock_iocb *si = kiocb_to_siocb(iocb);
@@ -25775,7 +25604,7 @@ diff -NurpP --minimal linux-3.6.10/net/socket.c linux-3.6.10-vs2.3.4.5/net/socke
  
        sock_update_classid(sock->sk);
  
-@@ -725,7 +746,18 @@ static inline int __sock_recvmsg_nosec(s
+@@ -792,7 +813,18 @@ static inline int __sock_recvmsg_nosec(s
        si->size = size;
        si->flags = flags;
  
@@ -25795,7 +25624,7 @@ diff -NurpP --minimal linux-3.6.10/net/socket.c linux-3.6.10-vs2.3.4.5/net/socke
  }
  
  static inline int __sock_recvmsg(struct kiocb *iocb, struct socket *sock,
-@@ -1210,6 +1242,13 @@ int __sock_create(struct net *net, int f
+@@ -1277,6 +1309,13 @@ int __sock_create(struct net *net, int f
        if (type < 0 || type >= SOCK_MAX)
                return -EINVAL;
  
@@ -25809,7 +25638,7 @@ diff -NurpP --minimal linux-3.6.10/net/socket.c linux-3.6.10-vs2.3.4.5/net/socke
        /* Compatibility.
  
           This uglymoron is moved from INET layer to here to avoid
-@@ -1344,6 +1383,7 @@ SYSCALL_DEFINE3(socket, int, family, int
+@@ -1411,6 +1450,7 @@ SYSCALL_DEFINE3(socket, int, family, int
        if (retval < 0)
                goto out;
  
@@ -25817,7 +25646,7 @@ diff -NurpP --minimal linux-3.6.10/net/socket.c linux-3.6.10-vs2.3.4.5/net/socke
        retval = sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK));
        if (retval < 0)
                goto out_release;
-@@ -1385,10 +1425,12 @@ SYSCALL_DEFINE4(socketpair, int, family,
+@@ -1452,10 +1492,12 @@ SYSCALL_DEFINE4(socketpair, int, family,
        err = sock_create(family, type, protocol, &sock1);
        if (err < 0)
                goto out;
@@ -25830,9 +25659,9 @@ diff -NurpP --minimal linux-3.6.10/net/socket.c linux-3.6.10-vs2.3.4.5/net/socke
  
        err = sock1->ops->socketpair(sock1, sock2);
        if (err < 0)
-diff -NurpP --minimal linux-3.6.10/net/sunrpc/auth.c linux-3.6.10-vs2.3.4.5/net/sunrpc/auth.c
---- linux-3.6.10/net/sunrpc/auth.c     2012-10-04 15:27:51.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/sunrpc/auth.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/sunrpc/auth.c linux-3.7-vs2.3.5.1/net/sunrpc/auth.c
+--- linux-3.7/net/sunrpc/auth.c        2012-10-04 13:27:51.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/sunrpc/auth.c      2012-12-11 15:56:33.000000000 +0000
 @@ -15,6 +15,7 @@
  #include <linux/sunrpc/clnt.h>
  #include <linux/sunrpc/gss_api.h>
@@ -25857,9 +25686,9 @@ diff -NurpP --minimal linux-3.6.10/net/sunrpc/auth.c linux-3.6.10-vs2.3.4.5/net/
        };
  
        dprintk("RPC: %5u looking up %s cred\n",
-diff -NurpP --minimal linux-3.6.10/net/sunrpc/auth_unix.c linux-3.6.10-vs2.3.4.5/net/sunrpc/auth_unix.c
---- linux-3.6.10/net/sunrpc/auth_unix.c        2012-07-22 23:39:49.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/sunrpc/auth_unix.c      2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/sunrpc/auth_unix.c linux-3.7-vs2.3.5.1/net/sunrpc/auth_unix.c
+--- linux-3.7/net/sunrpc/auth_unix.c   2012-07-22 21:39:49.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/sunrpc/auth_unix.c 2012-12-11 15:56:33.000000000 +0000
 @@ -13,11 +13,13 @@
  #include <linux/sunrpc/clnt.h>
  #include <linux/sunrpc/auth.h>
@@ -25917,9 +25746,9 @@ diff -NurpP --minimal linux-3.6.10/net/sunrpc/auth_unix.c linux-3.6.10-vs2.3.4.5
        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.6.10/net/sunrpc/clnt.c linux-3.6.10-vs2.3.4.5/net/sunrpc/clnt.c
---- linux-3.6.10/net/sunrpc/clnt.c     2012-10-04 15:27:51.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/sunrpc/clnt.c   2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/sunrpc/clnt.c linux-3.7-vs2.3.5.1/net/sunrpc/clnt.c
+--- linux-3.7/net/sunrpc/clnt.c        2012-12-11 15:47:57.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/sunrpc/clnt.c      2012-12-11 15:56:33.000000000 +0000
 @@ -31,6 +31,7 @@
  #include <linux/in6.h>
  #include <linux/un.h>
@@ -25938,9 +25767,9 @@ diff -NurpP --minimal linux-3.6.10/net/sunrpc/clnt.c linux-3.6.10-vs2.3.4.5/net/
        return clnt;
  }
  EXPORT_SYMBOL_GPL(rpc_create);
-diff -NurpP --minimal linux-3.6.10/net/unix/af_unix.c linux-3.6.10-vs2.3.4.5/net/unix/af_unix.c
---- linux-3.6.10/net/unix/af_unix.c    2012-10-04 15:27:51.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/net/unix/af_unix.c  2012-10-04 18:59:36.000000000 +0200
+diff -NurpP --minimal linux-3.7/net/unix/af_unix.c linux-3.7-vs2.3.5.1/net/unix/af_unix.c
+--- linux-3.7/net/unix/af_unix.c       2012-12-11 15:47:57.000000000 +0000
++++ linux-3.7-vs2.3.5.1/net/unix/af_unix.c     2012-12-11 15:56:33.000000000 +0000
 @@ -114,6 +114,8 @@
  #include <linux/mount.h>
  #include <net/checksum.h>
@@ -25959,7 +25788,7 @@ diff -NurpP --minimal linux-3.6.10/net/unix/af_unix.c linux-3.6.10-vs2.3.4.5/net
                if (u->addr->len == len &&
                    !memcmp(u->addr->name, sunname, len))
                        goto found;
-@@ -2258,6 +2262,8 @@ static struct sock *unix_from_bucket(str
+@@ -2259,6 +2263,8 @@ static struct sock *unix_from_bucket(str
        for (sk = sk_head(&unix_socket_table[bucket]); sk; sk = sk_next(sk)) {
                if (sock_net(sk) != seq_file_net(seq))
                        continue;
@@ -25968,7 +25797,7 @@ diff -NurpP --minimal linux-3.6.10/net/unix/af_unix.c linux-3.6.10-vs2.3.4.5/net
                if (++count == offset)
                        break;
        }
-@@ -2275,6 +2281,8 @@ static struct sock *unix_next_socket(str
+@@ -2276,6 +2282,8 @@ static struct sock *unix_next_socket(str
                sk = sk_next(sk);
                if (!sk)
                        goto next_bucket;
@@ -25977,9 +25806,9 @@ diff -NurpP --minimal linux-3.6.10/net/unix/af_unix.c linux-3.6.10-vs2.3.4.5/net
                if (sock_net(sk) == seq_file_net(seq))
                        return sk;
        }
-diff -NurpP --minimal linux-3.6.10/scripts/checksyscalls.sh linux-3.6.10-vs2.3.4.5/scripts/checksyscalls.sh
---- linux-3.6.10/scripts/checksyscalls.sh      2012-10-04 15:27:51.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/scripts/checksyscalls.sh    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/scripts/checksyscalls.sh linux-3.7-vs2.3.5.1/scripts/checksyscalls.sh
+--- linux-3.7/scripts/checksyscalls.sh 2012-10-04 13:27:51.000000000 +0000
++++ linux-3.7-vs2.3.5.1/scripts/checksyscalls.sh       2012-12-11 15:56:33.000000000 +0000
 @@ -193,7 +193,6 @@ cat << EOF
  #define __IGNORE_afs_syscall
  #define __IGNORE_getpmsg
@@ -25988,9 +25817,9 @@ diff -NurpP --minimal linux-3.6.10/scripts/checksyscalls.sh linux-3.6.10-vs2.3.4
  EOF
  }
  
-diff -NurpP --minimal linux-3.6.10/security/commoncap.c linux-3.6.10-vs2.3.4.5/security/commoncap.c
---- linux-3.6.10/security/commoncap.c  2012-07-22 23:39:51.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/security/commoncap.c        2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/security/commoncap.c linux-3.7-vs2.3.5.1/security/commoncap.c
+--- linux-3.7/security/commoncap.c     2012-07-22 21:39:51.000000000 +0000
++++ linux-3.7-vs2.3.5.1/security/commoncap.c   2012-12-11 15:56:33.000000000 +0000
 @@ -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)
@@ -26023,7 +25852,7 @@ diff -NurpP --minimal linux-3.6.10/security/commoncap.c linux-3.6.10-vs2.3.4.5/s
                return -EPERM;
        return 0;
  }
-@@ -645,7 +651,7 @@ int cap_inode_removexattr(struct dentry 
+@@ -645,7 +651,7 @@ int cap_inode_removexattr(struct dentry
  
        if (!strncmp(name, XATTR_SECURITY_PREFIX,
                     sizeof(XATTR_SECURITY_PREFIX) - 1) &&
@@ -26032,9 +25861,9 @@ diff -NurpP --minimal linux-3.6.10/security/commoncap.c linux-3.6.10-vs2.3.4.5/s
                return -EPERM;
        return 0;
  }
-diff -NurpP --minimal linux-3.6.10/security/selinux/hooks.c linux-3.6.10-vs2.3.4.5/security/selinux/hooks.c
---- linux-3.6.10/security/selinux/hooks.c      2012-10-04 15:27:53.000000000 +0200
-+++ linux-3.6.10-vs2.3.4.5/security/selinux/hooks.c    2012-10-04 18:47:00.000000000 +0200
+diff -NurpP --minimal linux-3.7/security/selinux/hooks.c linux-3.7-vs2.3.5.1/security/selinux/hooks.c
+--- linux-3.7/security/selinux/hooks.c 2012-12-11 15:48:01.000000000 +0000
++++ linux-3.7-vs2.3.5.1/security/selinux/hooks.c       2012-12-11 15:56:33.000000000 +0000
 @@ -66,7 +66,6 @@
  #include <linux/dccp.h>
  #include <linux/quota.h>
@@ -26043,3 +25872,285 @@ diff -NurpP --minimal linux-3.6.10/security/selinux/hooks.c linux-3.6.10-vs2.3.4
  #include <linux/parser.h>
  #include <linux/nfs_mount.h>
  #include <net/ipv6.h>
+diff -NurpP linux-3.7-vs2.3.5.1/kernel/vserver/network.c linux-3.7-vs2.3.5.1.1/kernel/vserver/network.c
+--- linux-3.7-vs2.3.5.1/kernel/vserver/network.c       2012-12-11 15:56:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1.1/kernel/vserver/network.c     2012-12-13 13:48:35.000000000 +0000
+@@ -162,6 +163,9 @@ static void __dealloc_nx_info(struct nx_
+       BUG_ON(atomic_read(&nxi->nx_tasks));
+       __dealloc_nx_addr_v4_all(nxi->v4.next);
++#ifdef CONFIG_IPV6
++      __dealloc_nx_addr_v6_all(nxi->v6.next);
++#endif
+       nxi->nx_state |= NXS_RELEASED;
+       kfree(nxi);
+diff -NurpP linux-3.7-vs2.3.5.1/include/linux/vs_inet.h linux-3.7-vs2.3.5.1.1/include/linux/vs_inet.h
+--- linux-3.7-vs2.3.5.1/include/linux/vs_inet.h        2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.1/include/linux/vs_inet.h      2012-12-13 12:52:33.000000000 +0000
+@@ -81,12 +81,15 @@ int v4_addr_in_nx_info(struct nx_info *n
+               (nxi->v4_bcast.s_addr == addr))
+               goto out;
+       ret = 5;
++
+       /* check for v4 addresses */
++      spin_lock(&nxi->addr_lock);
+       for (nxa = &nxi->v4; nxa; nxa = nxa->next)
+               if (v4_addr_match(nxa, addr, tmask))
+                       goto out;
+       ret = 0;
+ out:
++      spin_unlock(&nxi->addr_lock);
+       vxdprintk(VXD_CBIT(net, 0),
+               "v4_addr_in_nx_info(%p[#%u]," NIPQUAD_FMT ",%04x) = %d",
+               nxi, nxi ? nxi->nx_id : 0, NIPQUAD(addr), tmask, ret);
+@@ -104,11 +107,16 @@ static inline
+ int v4_nx_addr_in_nx_info(struct nx_info *nxi, struct nx_addr_v4 *nxa, uint16_t mask)
+ {
+       struct nx_addr_v4 *ptr;
++      int ret = 1;
++      spin_lock(&nxi->addr_lock);
+       for (ptr = &nxi->v4; ptr; ptr = ptr->next)
+               if (v4_nx_addr_match(ptr, nxa, mask))
+-                      return 1;
+-      return 0;
++                      goto out;
++      ret = 0;
++out:
++      spin_unlock(&nxi->addr_lock);
++      return ret;
+ }
+ #include <net/inet_sock.h>
+diff -NurpP linux-3.7-vs2.3.5.1/include/linux/vs_inet6.h linux-3.7-vs2.3.5.1.1/include/linux/vs_inet6.h
+--- linux-3.7-vs2.3.5.1/include/linux/vs_inet6.h       2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.1/include/linux/vs_inet6.h     2012-12-13 12:52:39.000000000 +0000
+@@ -45,11 +45,14 @@ int v6_addr_in_nx_info(struct nx_info *n
+       if (!nxi)
+               goto out;
++
++      spin_lock(&nxi->addr_lock);
+       for (nxa = &nxi->v6; nxa; nxa = nxa->next)
+               if (v6_addr_match(nxa, addr, mask))
+                       goto out;
+       ret = 0;
+ out:
++      spin_unlock(&nxi->addr_lock);
+       vxdprintk(VXD_CBIT(net, 0),
+               "v6_addr_in_nx_info(%p[#%u],%pI6,%04x) = %d",
+               nxi, nxi ? nxi->nx_id : 0, addr, mask, ret);
+@@ -67,11 +70,16 @@ static inline
+ int v6_nx_addr_in_nx_info(struct nx_info *nxi, struct nx_addr_v6 *nxa, uint16_t mask)
+ {
+       struct nx_addr_v6 *ptr;
++      int ret = 1;
++      spin_lock(&nxi->addr_lock);
+       for (ptr = &nxi->v6; ptr; ptr = ptr->next)
+               if (v6_nx_addr_match(ptr, nxa, mask))
+-                      return 1;
+-      return 0;
++                      goto out;
++      ret = 0;
++out:
++      spin_unlock(&nxi->addr_lock);
++      return ret;
+ }
+diff -NurpP linux-3.7-vs2.3.5.1/include/linux/vserver/network.h linux-3.7-vs2.3.5.1.1/include/linux/vserver/network.h
+--- linux-3.7-vs2.3.5.1/include/linux/vserver/network.h        2012-12-11 15:56:32.000000000 +0000
++++ linux-3.7-vs2.3.5.1.1/include/linux/vserver/network.h      2012-12-13 13:40:52.000000000 +0000
+@@ -109,6 +109,7 @@ struct nx_info {
+       uint64_t nx_flags;              /* network flag word */
+       uint64_t nx_ncaps;              /* network capabilities */
++      spinlock_t addr_lock;           /* protect address changes */
+       struct in_addr v4_lback;        /* Loopback address */
+       struct in_addr v4_bcast;        /* Broadcast address */
+       struct nx_addr_v4 v4;           /* First/Single ipv4 address */
+diff -NurpP linux-3.7-vs2.3.5.1/kernel/vserver/network.c linux-3.7-vs2.3.5.1.1/kernel/vserver/network.c
+--- linux-3.7-vs2.3.5.1/kernel/vserver/network.c       2012-12-11 15:56:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1.1/kernel/vserver/network.c     2012-12-13 13:48:35.000000000 +0000
+@@ -131,6 +131,7 @@ static struct nx_info *__alloc_nx_info(n
+       INIT_HLIST_NODE(&new->nx_hlist);
+       atomic_set(&new->nx_usecnt, 0);
+       atomic_set(&new->nx_tasks, 0);
++      spin_lock_init(&new->addr_lock);
+       new->nx_state = 0;
+       new->nx_flags = NXF_INIT_SET;
+@@ -593,26 +597,31 @@ int do_add_v4_addr(struct nx_info *nxi,
+       uint16_t type, uint16_t flags)
+ {
+       struct nx_addr_v4 *nxa = &nxi->v4;
++      struct nx_addr_v4 *new = __alloc_nx_addr_v4();
++
++      if (IS_ERR(new))
++              return PTR_ERR(new);
++      spin_lock(&nxi->addr_lock);
+       if (NX_IPV4(nxi)) {
+               /* locate last entry */
+               for (; nxa->next; nxa = nxa->next);
+-              nxa->next = __alloc_nx_addr_v4();
+-              nxa = nxa->next;
+-
+-              if (IS_ERR(nxa))
+-                      return PTR_ERR(nxa);
+-      }
++              nxa->next = new;
++              nxa = new;
++              new = NULL;
+-      if (nxi->v4.next)
+               /* remove single ip for ip list */
+               nxi->nx_flags &= ~NXF_SINGLE_IP;
++      }
+       nxa->ip[0].s_addr = ip;
+       nxa->ip[1].s_addr = ip2;
+       nxa->mask.s_addr = mask;
+       nxa->type = type;
+       nxa->flags = flags;
++      spin_unlock(&nxi->addr_lock);
++      if (new)
++              __dealloc_nx_addr_v4(new);
+       return 0;
+ }
+@@ -620,20 +629,25 @@ int do_remove_v4_addr(struct nx_info *nx
+       uint16_t type, uint16_t flags)
+ {
+       struct nx_addr_v4 *nxa = &nxi->v4;
++      struct nx_addr_v4 *old = NULL;
++      int ret = 0;
++      spin_lock(&nxi->addr_lock);
+       switch (type) {
+ /*    case NXA_TYPE_ADDR:
+               break;          */
+       case NXA_TYPE_ANY:
+-              __dealloc_nx_addr_v4_all(xchg(&nxa->next, NULL));
++              old = xchg(&nxa->next, NULL);
+               memset(nxa, 0, sizeof(*nxa));
+               break;
+       default:
+-              return -EINVAL;
++              ret = -EINVAL;
+       }
+-      return 0;
++      spin_unlock(&nxi->addr_lock);
++      __dealloc_nx_addr_v4_all(old);
++      return ret;
+ }
+@@ -687,10 +701,7 @@ int vc_net_remove(struct nx_info *nxi, v
+       switch (vc_data.type) {
+       case NXA_TYPE_ANY:
+-              __dealloc_nx_addr_v4_all(xchg(&nxi->v4.next, NULL));
+-              memset(&nxi->v4, 0, sizeof(nxi->v4));
+-              break;
+-
++              return do_remove_v4_addr(nxi, 0, 0, 0, vc_data.type, 0);
+       default:
+               return -EINVAL;
+       }
+@@ -782,15 +793,18 @@ int do_add_v6_addr(struct nx_info *nxi,
+       uint32_t prefix, uint16_t type, uint16_t flags)
+ {
+       struct nx_addr_v6 *nxa = &nxi->v6;
++      struct nx_addr_v6 *new = __alloc_nx_addr_v6();
++      if (IS_ERR(new))
++              return PTR_ERR(new);
++
++      spin_lock(&nxi->addr_lock);
+       if (NX_IPV6(nxi)) {
+               /* locate last entry */
+               for (; nxa->next; nxa = nxa->next);
+-              nxa->next = __alloc_nx_addr_v6();
+-              nxa = nxa->next;
+-
+-              if (IS_ERR(nxa))
+-                      return PTR_ERR(nxa);
++              nxa->next = new;
++              nxa = new;
++              new = NULL;
+       }
+       nxa->ip = *ip;
+@@ -798,6 +812,9 @@ int do_add_v6_addr(struct nx_info *nxi,
+       nxa->prefix = prefix;
+       nxa->type = type;
+       nxa->flags = flags;
++      spin_unlock(&nxi->addr_lock);
++      if (new)
++              __dealloc_nx_addr_v6(new);
+       return 0;
+ }
+diff -NurpP linux-3.7-vs2.3.5.1/kernel/vserver/network.c linux-3.7-vs2.3.5.1.1/kernel/vserver/network.c
+--- linux-3.7-vs2.3.5.1/kernel/vserver/network.c       2012-12-11 15:56:33.000000000 +0000
++++ linux-3.7-vs2.3.5.1.1/kernel/vserver/network.c     2012-12-13 13:48:35.000000000 +0000
+@@ -804,6 +818,31 @@ int do_add_v6_addr(struct nx_info *nxi,
+       return 0;
+ }
++int do_remove_v6_addr(struct nx_info *nxi,
++      struct in6_addr *ip, struct in6_addr *mask, 
++      uint32_t prefix, uint16_t type, uint16_t flags)
++{
++      struct nx_addr_v6 *nxa = &nxi->v6;
++      struct nx_addr_v6 *old = NULL;
++      int ret = 0;
++
++      spin_lock(&nxi->addr_lock);
++      switch (type) {
++/*    case NXA_TYPE_ADDR:
++              break;          */
++
++      case NXA_TYPE_ANY:
++              old = xchg(&nxa->next, NULL);
++              memset(nxa, 0, sizeof(*nxa));
++              break;
++
++      default:
++              ret = -EINVAL;
++      }
++      spin_unlock(&nxi->addr_lock);
++      __dealloc_nx_addr_v6_all(old);
++      return ret;
++}
+ int vc_net_add_ipv6(struct nx_info *nxi, void __user *data)
+ {
+@@ -831,10 +873,8 @@ int vc_net_remove_ipv6(struct nx_info *n
+       switch (vc_data.type) {
+       case NXA_TYPE_ANY:
+-              __dealloc_nx_addr_v6_all(xchg(&nxi->v6.next, NULL));
+-              memset(&nxi->v6, 0, sizeof(nxi->v6));
++              do_remove_v6_addr(nxi, NULL, NULL, 0, vc_data.type, 0);
+               break;
+-
+       default:
+               return -EINVAL;
+       }
+--- linux-3.7/net/ipv6/netfilter/ip6t_MASQUERADE.c~    2012-12-11 04:30:57.000000000 +0100
++++ linux-3.7/net/ipv6/netfilter/ip6t_MASQUERADE.c     2012-12-13 21:09:30.741602424 +0100
+@@ -34,7 +34,7 @@
+                           ctinfo == IP_CT_RELATED_REPLY));
+       if (ipv6_dev_get_saddr(dev_net(par->out), par->out,
+-                             &ipv6_hdr(skb)->daddr, 0, &src) < 0)
++                             &ipv6_hdr(skb)->daddr, 0, &src, NULL) < 0)
+               return NF_DROP;
+       nfct_nat(ct)->masq_index = par->out->ifindex;
index 8a5f68a2efc6c8bb700d57d11fb08bed672a8f53..b998b59567cfe96a03e6ff3ec93380ab996e326d 100644 (file)
@@ -1,14 +1,3 @@
-Missing header for routes patch, caused vs2.3 route.h mixing
---- a/net/ipv4/netfilter/nf_nat_core.c~        2008-01-24 23:58:37.000000000 +0100
-+++ a/net/ipv4/netfilter/nf_nat_core.c 2008-03-30 21:00:19.349593833 +0200
-@@ -15,6 +15,7 @@
- #include <net/checksum.h>
- #include <net/icmp.h>
- #include <net/ip.h>
-+#include <net/route.h>
- #include <net/tcp.h>  /* For tcp_prot in getorigdst */
- #include <linux/icmp.h>
- #include <linux/udp.h>
 --- linux-2.6.33/arch/x86/kernel/process.c~    2010-02-24 19:52:17.000000000 +0100
 +++ linux-2.6.33/arch/x86/kernel/process.c     2010-02-25 23:44:56.487156216 +0100
 @@ -147,8 +147,8 @@ void show_regs_common(void)
index f7c75a9fc5f9e513f2fa4d7f67a55141b3a5ac95..f84348c68f8d0c06ab82ec36765d81e2be67af22 100644 (file)
@@ -32,7 +32,6 @@ SCHED_OMIT_FRAME_POINTER i386=y x86_64=y
 PARAVIRT_GUEST x86=y
 PARAVIRT_TIME_ACCOUNTING x86=y
 #- file arch/x86/xen/Kconfig goes here
-KVM_CLOCK x86=y
 KVM_GUEST x86=y
 #- file arch/x86/lguest/Kconfig goes here
 PARAVIRT x86=y
@@ -50,7 +49,6 @@ MAXSMP i386=n x86_64=n
 NR_CPUS x86=32
 SCHED_SMT x86=y
 SCHED_MC x86=y
-IRQ_TIME_ACCOUNTING x86=n
 #- file kernel/Kconfig.preempt goes here
 X86_UP_APIC i386=y
 X86_UP_IOAPIC i386=y
@@ -141,6 +139,7 @@ X86_X32 all=n
 #- file drivers/firmware/Kconfig goes here
 #- file fs/Kconfig goes here
 #- file arch/x86/Kconfig.debug goes here
+#- file kernel/vserver/Kconfig goes here
 #- file security/Kconfig goes here
 #- file crypto/Kconfig goes here
 #- file arch/x86/kvm/Kconfig goes here
@@ -232,6 +231,7 @@ XEN_DEBUG_FS x86=n
 #-
 X86_PCC_CPUFREQ x86=m x86_64=m
 X86_ACPI_CPUFREQ x86=m
+X86_ACPI_CPUFREQ_CPB all=y
 X86_POWERNOW_K6 i386=m
 X86_POWERNOW_K7 i386=m
 X86_POWERNOW_K8 x86=m
@@ -254,6 +254,17 @@ X86_SPEEDSTEP_RELAXED_CAP_CHECK i386=y
 AMD_IOMMU x86_64=y
 AMD_IOMMU_STATS x86_64=n
 
+#-
+#- *** FILE: init/Kconfig ***
+#-
+#- file kernel/irq/Kconfig goes here
+#- file kernel/time/Kconfig goes here
+IRQ_TIME_ACCOUNTING x86=n
+#- file usr/Kconfig goes here
+#- file arch/Kconfig goes here
+#- file block/Kconfig goes here
+#- file kernel/Kconfig.locks goes here
+
 #-
 #- *** FILE: kernel/irq/Kconfig ***
 #-
@@ -274,5 +285,6 @@ DEBUG_PER_CPU_MAPS x86=n
 #- *** PROBABLY REMOVED OPTIONS ***
 #-
 EARLY_PRINTK_MRST x86=n
+KVM_CLOCK x86=y
 MCA i386=y
 X86_MRST i386=y
index e8c8363f4fcf22dedbfbada2c7050d7edf06be0c..6527719a0db0b790fef81b36cd72a303d1038a4b 100644 (file)
@@ -70,6 +70,6 @@ diff -Nur linux-2.6.26.3/net/ipv4/tcp_input.c linux-2.6.26.3-zph/net/ipv4/tcp_in
 +               */
 +              inet->zph_tos = iph->tos;
 +
-               tp->snd_wl1 = TCP_SKB_CB(skb)->seq;
+               tcp_init_wl(tp, TCP_SKB_CB(skb)->seq);
                tcp_ack(sk, skb, FLAG_SLOWPATH);
  
index 66e7a03a0e1ed33a88aebfa9d8210d415ade404b..a2aca5f85d1433e7debb67741f3ba66a46a94a5b 100644 (file)
@@ -66,9 +66,9 @@
 %define                have_pcmcia     0
 %endif
 
-%define                rel             2
-%define                basever         3.6
-%define                postver         .10
+%define                rel             0.1
+%define                basever         3.7
+%define                postver         .0
 
 # __alt_kernel is list of features, empty string if none set
 # _alt kernel is defined as: %{nil}%{?alt_kernel:-%{?alt_kernel}} (defined in rpm.macros)
@@ -108,10 +108,10 @@ Epoch:            3
 License:       GPL v2
 Group:         Base/Kernel
 Source0:       http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz
-# Source0-md5: 1a1760420eac802c541a20ab51a093d1
+# Source0-md5: 21223369d682bcf44bcdfe1521095983
 %if "%{postver}" != ".0"
 Patch0:                http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2
-# Patch0-md5:  d6a71df35d568dfa7e829a6780056960
+# Patch0-md5:  588a17953c84168285116823be669af3
 %endif
 
 Source3:       kernel-autoconf.h
@@ -182,7 +182,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.6.9-vs2.3.4.4.diff
+# http://vserver.13thfloor.at/Experimental/patch-3.7-vs2.3.5.1.diff
 Patch100:      kernel-vserver-2.3.patch
 Patch101:      kernel-vserver-fixes.patch
 
@@ -206,7 +206,7 @@ Patch122:   ovl13-overlayfs-copy-up-i_uid-i_gid-from-the-underlying-in.patch
 # Patch creation:
 # git clone git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git
 # cd aufs3-standalone
-# git checkout -b aufs3.6 origin/aufs3.6
+# git checkout -b aufs3.7 origin/aufs3.7
 # cat aufs3-kbuild.patch aufs3-base.patch aufs3-standalone.patch > ~/rpm/packages/kernel/kernel-aufs3.patch
 # mkdir linux
 # cp -a Documentation fs include linux
This page took 1.099641 seconds and 4 git commands to generate.