diff --git a/features/aufs/aufs-import-aufs-3.x.patch b/features/aufs/aufs-import-aufs-3.x.patch
index 05efb9a1ccefcde02e4c3df84d9a67cf1cf785a5..07e7bac443735063fbbec2e367639c549949650b 100644
--- a/features/aufs/aufs-import-aufs-3.x.patch
+++ b/features/aufs/aufs-import-aufs-3.x.patch
@@ -1,4 +1,4 @@
-From 85b6f34614e5af493c9faa9512beac35d3e1df51 Mon Sep 17 00:00:00 2001
+From 775a7316e5de64745792bea489e60d01d8ccbc63 Mon Sep 17 00:00:00 2001
 From: Bruce Ashfield <bruce.ashfield@windriver.com>
 Date: Fri, 7 Sep 2012 15:12:38 -0400
 Subject: [PATCH] aufs: import aufs 3.x
@@ -102,7 +102,7 @@ Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
  fs/proc/nommu.c                                    |    4 +
  fs/proc/task_mmu.c                                 |    6 +
  fs/proc/task_nommu.c                               |    4 +
- fs/splice.c                                        |    2 +
+ fs/splice.c                                        |   14 +-
  include/linux/Kbuild                               |    1 +
  include/linux/aufs_type.h                          |  233 +++
  include/linux/fs.h                                 |    1 +
@@ -115,7 +115,7 @@ Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
  security/commoncap.c                               |    2 +
  security/device_cgroup.c                           |    2 +
  security/security.c                                |   10 +
- 106 files changed, 29876 insertions(+), 1 deletions(-)
+ 106 files changed, 29882 insertions(+), 7 deletions(-)
  create mode 100644 Documentation/ABI/testing/debugfs-aufs
  create mode 100644 Documentation/ABI/testing/sysfs-aufs
  create mode 100644 Documentation/filesystems/aufs/README
@@ -1608,10 +1608,10 @@ index 0000000..1b5a7260
 +/new.
 +Otherwise from /new.
 diff --git a/fs/Kconfig b/fs/Kconfig
-index 37c50ff..1ef46cf 100644
+index f19f343..b9e0fa0 100644
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
-@@ -222,6 +222,7 @@ source "fs/pstore/Kconfig"
+@@ -221,6 +221,7 @@ source "fs/pstore/Kconfig"
  source "fs/sysv/Kconfig"
  source "fs/ufs/Kconfig"
  source "fs/exofs/Kconfig"
@@ -1620,10 +1620,10 @@ index 37c50ff..1ef46cf 100644
  endif # MISC_FILESYSTEMS
  
 diff --git a/fs/Makefile b/fs/Makefile
-index d094e94..73b9b8c 100644
+index 79b94eb..72d4adc 100644
 --- a/fs/Makefile
 +++ b/fs/Makefile
-@@ -127,3 +127,4 @@ obj-y				+= exofs/ # Multiple modules
+@@ -126,3 +126,4 @@ obj-y				+= exofs/ # Multiple modules
  obj-$(CONFIG_CEPH_FS)		+= ceph/
  obj-$(CONFIG_PSTORE)		+= pstore/
  obj-$(CONFIG_YAFFS_FS)		+= yaffs2/
@@ -30476,25 +30476,60 @@ index 1ccfa53..c39acb5 100644
  		ino = inode->i_ino;
  		pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
 diff --git a/fs/splice.c b/fs/splice.c
-index aae192a..2e651e6 100644
+index 41514dd..e083432 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
-@@ -1087,6 +1087,7 @@ ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, struct file *out,
+@@ -1087,14 +1087,13 @@ ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, struct file *out,
  {
  	return splice_from_pipe(pipe, out, ppos, len, flags, pipe_to_sendpage);
  }
+-
+ EXPORT_SYMBOL(generic_splice_sendpage);
+ 
+ /*
+  * Attempt to initiate a splice from pipe to file.
+  */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+-			   loff_t *ppos, size_t len, unsigned int flags)
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++		    loff_t *ppos, size_t len, unsigned int flags)
+ {
+ 	ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+ 				loff_t *, size_t, unsigned int);
+@@ -1117,13 +1116,14 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ 
+ 	return splice_write(pipe, out, ppos, len, flags);
+ }
 +EXPORT_SYMBOL(do_splice_from);
  
- EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+  * Attempt to initiate a splice from a file to a pipe.
+  */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+-			 struct pipe_inode_info *pipe, size_t len,
+-			 unsigned int flags)
++long do_splice_to(struct file *in, loff_t *ppos,
++		  struct pipe_inode_info *pipe, size_t len,
++		  unsigned int flags)
+ {
+ 	ssize_t (*splice_read)(struct file *, loff_t *,
+ 			       struct pipe_inode_info *, size_t, unsigned int);
+@@ -1143,6 +1143,7 @@ static long do_splice_to(struct file *in, loff_t *ppos,
  
-@@ -1276,6 +1277,7 @@ static int direct_splice_actor(struct pipe_inode_info *pipe,
- 	return vfs_splice_from(pipe, file, &file->f_pos, sd->total_len,
- 			       sd->flags);
+ 	return splice_read(in, ppos, pipe, len, flags);
  }
 +EXPORT_SYMBOL(do_splice_to);
  
+ /**
+  * splice_direct_to_actor - splices data directly between two non-pipes
+@@ -1275,6 +1276,7 @@ static int direct_splice_actor(struct pipe_inode_info *pipe,
+ 			      sd->flags);
+ }
+ 
++
  /**
   * do_splice_direct - splices data directly between two files
+  * @in:		file to splice from
 diff --git a/include/linux/Kbuild b/include/linux/Kbuild
 index fa21760..ee029e3 100644
 --- a/include/linux/Kbuild
@@ -30779,19 +30814,19 @@ index bf78672..cac65b6 100644
  
  #ifndef CONFIG_MMU
 diff --git a/include/linux/splice.h b/include/linux/splice.h
-index ebe231a..486d467 100644
+index 09a545a..5b1bb98 100644
 --- a/include/linux/splice.h
 +++ b/include/linux/splice.h
-@@ -96,4 +96,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
+@@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
  extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
  
  extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
 +
-+extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
-+			   loff_t *ppos, size_t len, unsigned int flags);
-+extern long do_splice_to(struct file *in, loff_t *ppos,
-+			 struct pipe_inode_info *pipe, size_t len,
-+			 unsigned int flags);
++long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++		    loff_t *ppos, size_t len, unsigned int flags);
++long do_splice_to(struct file *in, loff_t *ppos,
++		  struct pipe_inode_info *pipe, size_t len,
++		  unsigned int flags);
  #endif
 diff --git a/kernel/fork.c b/kernel/fork.c
 index 2c8857e..3709356 100644
@@ -30950,7 +30985,7 @@ index 442204c..e644a1c 100644
  int devcgroup_inode_mknod(int mode, dev_t dev)
  {
 diff --git a/security/security.c b/security/security.c
-index efe2b05..af0a81b 100644
+index 860aeb3..e4cce2b 100644
 --- a/security/security.c
 +++ b/security/security.c
 @@ -384,6 +384,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
@@ -31017,7 +31052,7 @@ index efe2b05..af0a81b 100644
  
  int security_inode_permission(struct inode *inode, int mask)
  {
-@@ -646,6 +654,7 @@ int security_file_permission(struct file *file, int mask)
+@@ -645,6 +653,7 @@ int security_file_permission(struct file *file, int mask)
  
  	return fsnotify_perm(file, mask);
  }
@@ -31025,7 +31060,7 @@ index efe2b05..af0a81b 100644
  
  int security_file_alloc(struct file *file)
  {
-@@ -706,6 +715,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
+@@ -705,6 +714,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
  		return ret;
  	return ima_file_mmap(file, prot);
  }
diff --git a/features/vfat/FAT-Added-FAT_NO_83NAME.patch b/features/vfat/FAT-Added-FAT_NO_83NAME.patch
index b24b912d379cf17c9bf6e5f50b41bf57f05c24d6..2e49544ac5858d1102c57065c1988d1769cba859 100644
--- a/features/vfat/FAT-Added-FAT_NO_83NAME.patch
+++ b/features/vfat/FAT-Added-FAT_NO_83NAME.patch
@@ -1,7 +1,7 @@
-From da16ce3a6f2e32253b2b8d0fc1164c13ddc2730a Mon Sep 17 00:00:00 2001
+From 2fa9e7a7528b6e2b765daaab6e76c0f3162f169d Mon Sep 17 00:00:00 2001
 From: Andrew Tridgell <tridge@samba.org>
 Date: Thu, 16 Jul 2009 12:47:15 +1000
-Subject: [PATCH 3/3] FAT: Added FAT_NO_83NAME
+Subject: [PATCH] FAT: Added FAT_NO_83NAME
 
 This patch adds a new flag field 'FAT_NO_83NAME' for FAT files. When
 this flag is set on an 8.3 FAT entry, both the MSDOS and VFAT
@@ -10,27 +10,39 @@ inaccessible. For VFAT it makes the file only accessible by the long
 filename.
 
 Signed-off-by: Andrew Tridgell <tridge@samba.org>
+---
+ fs/fat/dir.c             |   17 ++++++++++++++++-
+ include/linux/msdos_fs.h |    1 +
+ 2 files changed, 17 insertions(+), 1 deletions(-)
+
 diff --git a/fs/fat/dir.c b/fs/fat/dir.c
-index dc49ed2..43ffba1 100644
+index dc49ed2..99ce0d0 100644
 --- a/fs/fat/dir.c
 +++ b/fs/fat/dir.c
-@@ -368,7 +368,15 @@ static int fat_parse_short(struct super_block *sb,
+@@ -368,7 +368,8 @@ static int fat_parse_short(struct super_block *sb,
  		dotoffset = 1;
  	}
  
 -	memcpy(work, de->name, sizeof(work));
-+	/*
-+	 * The FAT_NO_83NAME flag is used to mark files
-+	 * created with no 8.3 short name
-+	 */
-+	if (de->lcase & FAT_NO_83NAME)
-+		goto compare_longname;
-+
 +	memcpy(work, de->name, sizeof(de->name));
 +
  	/* see namei.c, msdos_format_name */
  	if (work[0] == 0x05)
  		work[0] = 0xE5;
+@@ -499,6 +500,13 @@ parse_record:
+ 				goto end_of_dir;
+ 		}
+ 
++		/*
++		 * The FAT_NO_83NAME flag is used to mark files
++		 * created with no 8.3 short name
++		 */
++		if (de->lcase & FAT_NO_83NAME)
++			goto compare_longname;
++
+ 		/* Never prepend '.' to hidden files here.
+ 		 * That is done only for msdos mounts (and only when
+ 		 * 'dotsOK=yes'); if we are executing here, it is in the
 @@ -512,6 +520,7 @@ parse_record:
  		if (fat_name_match(sbi, name, name_len, bufname, len))
  			goto found;
@@ -71,3 +83,6 @@ index 11cc2ac..0e3c229 100644
  
  #define DELETED_FLAG	0xe5	/* marks file as deleted when in name[0] */
  #define IS_FREE(n)	(!*(n) || *(n) == DELETED_FLAG)
+-- 
+1.7.5.4
+
diff --git a/ktypes/standard/standard-nocfg.scc b/ktypes/standard/standard-nocfg.scc
index 4e857262c5b48add943eb0037efd80b07a1d4012..fecea52a43eaac6f08f18ca3c91456b3b9628be9 100644
--- a/ktypes/standard/standard-nocfg.scc
+++ b/ktypes/standard/standard-nocfg.scc
@@ -47,7 +47,7 @@ include patches/patches.scc
 include features/initramfs/initramfs.scc
 
 include features/yaffs2/yaffs2.scc
-include features/unionfs/unionfs.scc
+include features/aufs/aufs.scc
 
 # update / "is it useful" pending
 #include features/bsdjail/bsdjail
diff --git a/patches/boot/NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch b/patches/boot/NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch
index abad650d4a150f58c16e7f96b12bce5570779b83..f85bee268bf27bc1e5fa39dad18359d2ac3d11f8 100644
--- a/patches/boot/NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch
+++ b/patches/boot/NFS-allow-nfs-root-mount-to-use-alternate-rpc-ports.patch
@@ -1,4 +1,4 @@
-From c101a9affebb4273a6a4154788ba88d7e0080b49 Mon Sep 17 00:00:00 2001
+From 0d4c28fa31bf368cd30b0907cacf739b885c668c Mon Sep 17 00:00:00 2001
 From: Jason Wessel <jason.wessel@windriver.com>
 Date: Wed, 7 Jan 2009 00:59:33 -0500
 Subject: [PATCH] NFS: allow nfs root mount to use alternate rpc ports
@@ -8,26 +8,28 @@ Allow an nfs root mount to use alternate RPC ports for mountd and nfsd.
 Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
 [forward port to 2.6.33+]
 Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
+---
+ fs/nfs/client.c           |   12 ++++++++++--
+ fs/nfs/internal.h         |    7 +++++--
+ fs/nfs/mount_clnt.c       |    7 ++++---
+ fs/nfs/super.c            |   33 ++++++++++++++++++++++++++++++++-
+ include/linux/nfs_fs_sb.h |    3 +++
+ include/linux/nfs_mount.h |    4 +++-
+ 6 files changed, 57 insertions(+), 9 deletions(-)
+
 diff --git a/fs/nfs/client.c b/fs/nfs/client.c
-index 9969444..0742c9e 100644
+index 9969444..f95789b 100644
 --- a/fs/nfs/client.c
 +++ b/fs/nfs/client.c
-@@ -7,7 +7,14 @@
-  * modify it under the terms of the GNU General Public License
-  * as published by the Free Software Foundation; either version
+@@ -9,7 +9,6 @@
   * 2 of the License, or (at your option) any later version.
-+<<<<<<<
   */
-+|||||||
-+};
-+=======
-+	int nfs_prog;
-+};
-+>>>>>>>
- 
  
+-
  #include <linux/module.h>
-@@ -70,7 +77,7 @@ static const struct rpc_version *nfs_version[5] = {
+ #include <linux/init.h>
+ #include <linux/sched.h>
+@@ -70,7 +69,7 @@ static const struct rpc_version *nfs_version[5] = {
  	[4] = NULL,
  };
  
@@ -36,7 +38,7 @@ index 9969444..0742c9e 100644
  	.name			= "nfs",
  	.number			= NFS_PROGRAM,
  	.nrvers			= ARRAY_SIZE(nfs_version),
-@@ -161,6 +168,7 @@ struct nfs_client *nfs_alloc_client(const struct nfs_client_initdata *cl_init)
+@@ -161,6 +160,7 @@ struct nfs_client *nfs_alloc_client(const struct nfs_client_initdata *cl_init)
  	try_module_get(clp->cl_nfs_mod->owner);
  
  	clp->rpc_ops = clp->cl_nfs_mod->rpc_ops;
@@ -44,7 +46,7 @@ index 9969444..0742c9e 100644
  
  	atomic_set(&clp->cl_count, 1);
  	clp->cl_cons_state = NFS_CS_INITING;
-@@ -419,6 +427,9 @@ static struct nfs_client *nfs_match_client(const struct nfs_client_initdata *dat
+@@ -419,6 +419,9 @@ static struct nfs_client *nfs_match_client(const struct nfs_client_initdata *dat
  		/* Match nfsv4 minorversion */
  		if (clp->cl_minorversion != data->minorversion)
  			continue;
@@ -54,7 +56,7 @@ index 9969444..0742c9e 100644
  		/* Match the full socket address */
  		if (!nfs_sockaddr_cmp(sap, clap))
  			continue;
-@@ -597,6 +608,10 @@ int nfs_create_rpc_client(struct nfs_client *clp,
+@@ -597,6 +600,10 @@ int nfs_create_rpc_client(struct nfs_client *clp,
  	if (!IS_ERR(clp->cl_rpcclient))
  		return 0;
  
@@ -65,7 +67,7 @@ index 9969444..0742c9e 100644
  	clnt = rpc_create(&args);
  	if (IS_ERR(clnt)) {
  		dprintk("%s: cannot create RPC client. Error = %ld\n",
-@@ -750,6 +765,7 @@ static int nfs_init_server(struct nfs_server *server,
+@@ -750,6 +757,7 @@ static int nfs_init_server(struct nfs_server *server,
  		.nfs_mod = nfs_mod,
  		.proto = data->nfs_server.protocol,
  		.net = data->net,
@@ -284,3 +286,6 @@ index 576bddd..9541d71 100644
  };
  
  /* bits in the flags field visible to user space */
+-- 
+1.7.5.4
+