1. Moises Henriquez
  2. m0e-vabs

Commits

Uelsk8s  committed 7f9de3f

add kernel-3.13

  • Participants
  • Parent commits 28336fa
  • Branches veclinux-7.1

Comments (0)

Files changed (7)

File var/vabs/kernel-3.13/src/kernel-3.13.SlackBuild

View file
  • Ignore whitespace
 cp $CURDIR/patches/aufs3-kbuild.patch .
 patch -p1 <aufs3-kbuild.patch || exit 1
 eecho "Patch5"
-cp $CURDIR/patches/aufs3.12-20132911.patch .
-patch -p1 <aufs3.12-20132911.patch || exit 1
+cp $CURDIR/patches/aufs3.13-20142001.patch .
+patch -p1 <aufs3.13-20142001.patch || exit 1
 #cp $CURDIR/patches/current-tuxonice-for-2.6.37.1.patch_0 .
 #if [ -e current-tuxonice-for-2.6.37.1.patch_0 ]; then
 #patch -p1 <current-tuxonice-for-2.6.37.1.patch_0  || exit 1

File var/vabs/kernel-3.13/src/patches/aufs3-base.patch

View file
  • Ignore whitespace
-aufs3.12 base patch
+aufs3.x-rcN base patch
 
 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 40e7155..6e43ab0 100644
+index c8dac73..2e229ac 100644
 --- a/drivers/block/loop.c
 +++ b/drivers/block/loop.c
 @@ -691,6 +691,24 @@ static inline int is_loop_device(struct file *file)
  /* loop sysfs attributes */
  
  static ssize_t loop_attr_show(struct device *dev, char *page,
-diff --git a/fs/file_table.c b/fs/file_table.c
-index e900ca5..ccd02ee 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;
-@@ -360,7 +360,7 @@ static inline int file_list_cpu(struct file *file)
- }
- 
- /* helper for file_sb_list_add to reduce ifdefs */
--static inline void __file_sb_list_add(struct file *file, struct super_block *sb)
-+inline void __file_sb_list_add(struct file *file, struct super_block *sb)
- {
- 	struct list_head *list;
- #ifdef CONFIG_SMP
-@@ -373,6 +373,7 @@ static inline void __file_sb_list_add(struct file *file, struct super_block *sb)
- #endif
- 	list_add(&file->f_u.fu_list, list);
- }
-+EXPORT_SYMBOL(__file_sb_list_add);
- 
- /**
-  * file_sb_list_add - add a file to the sb's file list
 diff --git a/fs/inode.c b/fs/inode.c
-index b33ba8e..9b24434 100644
+index 4bcdad3..bc83168 100644
 --- a/fs/inode.c
 +++ b/fs/inode.c
-@@ -1469,7 +1469,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
+@@ -1497,7 +1497,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
   * This does the actual work of updating an inodes time or version.  Must have
   * had called mnt_want_write() before calling this.
   */
  	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 3b7ee65..e147583 100644
+index 46a08f7..719ca3e 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -1093,8 +1093,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
  	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 3f40547..36b235e 100644
+index 121f11f..39bf86d 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -2594,6 +2594,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
+@@ -2657,6 +2657,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);
  

File var/vabs/kernel-3.13/src/patches/aufs3-kbuild.patch

View file
  • Ignore whitespace
-aufs3.12 kbuild patch
+aufs3.x-rcN kbuild patch
 
 diff --git a/fs/Kconfig b/fs/Kconfig
 index c229f82..397b473 100644
  obj-$(CONFIG_EFIVAR_FS)		+= efivarfs/
 +obj-$(CONFIG_AUFS_FS)           += aufs/
 diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
-index 115add2..ce305b3 100644
+index 33d2b8f..b55eeb9 100644
 --- a/include/uapi/linux/Kbuild
 +++ b/include/uapi/linux/Kbuild
 @@ -56,6 +56,7 @@ header-y += atmppp.h

File var/vabs/kernel-3.13/src/patches/aufs3-loopback.patch

View file
  • Ignore whitespace
-aufs3.12 loopback patch
+aufs3.x-rcN loopback patch
 
 diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 6e43ab0..45ed62e 100644
+index 2e229ac..b1cebbe 100644
 --- a/drivers/block/loop.c
 +++ b/drivers/block/loop.c
 @@ -513,7 +513,7 @@ out:
  	lo->transfer = transfer_none;
  	lo->ioctl = NULL;
  	lo->lo_sizelimit = 0;
-@@ -954,6 +983,7 @@ out_clr:
+@@ -947,6 +976,7 @@ out_clr:
  	lo->lo_thread = NULL;
  	lo->lo_device = NULL;
  	lo->lo_backing_file = NULL;
  	lo->lo_flags = 0;
  	set_capacity(lo->lo_disk, 0);
  	invalidate_bdev(bdev);
-@@ -963,6 +993,8 @@ out_clr:
+@@ -956,6 +986,8 @@ out_clr:
  	lo->lo_state = Lo_unbound;
   out_putf:
  	fput(file);
   out:
  	/* This is safe: open() is still holding a reference. */
  	module_put(THIS_MODULE);
-@@ -1009,6 +1041,7 @@ loop_init_xfer(struct loop_device *lo, struct loop_func_table *xfer,
+@@ -1002,6 +1034,7 @@ loop_init_xfer(struct loop_device *lo, struct loop_func_table *xfer,
  static int loop_clr_fd(struct loop_device *lo)
  {
  	struct file *filp = lo->lo_backing_file;
  	gfp_t gfp = lo->old_gfp_mask;
  	struct block_device *bdev = lo->lo_device;
  
-@@ -1042,6 +1075,7 @@ static int loop_clr_fd(struct loop_device *lo)
+@@ -1035,6 +1068,7 @@ static int loop_clr_fd(struct loop_device *lo)
  
  	spin_lock_irq(&lo->lo_lock);
  	lo->lo_backing_file = NULL;
  	spin_unlock_irq(&lo->lo_lock);
  
  	loop_release_xfer(lo);
-@@ -1084,6 +1118,8 @@ static int loop_clr_fd(struct loop_device *lo)
+@@ -1077,6 +1111,8 @@ static int loop_clr_fd(struct loop_device *lo)
  	 * bd_mutex which is usually taken before lo_ctl_mutex.
  	 */
  	fput(filp);
  	unsigned	lo_blocksize;
  	void		*key_data; 
 diff --git a/fs/aufs/f_op.c b/fs/aufs/f_op.c
-index 58944dc..69dfb75 100644
+index 2e0302d..b35af58 100644
 --- a/fs/aufs/f_op.c
 +++ b/fs/aufs/f_op.c
-@@ -358,7 +358,7 @@ static ssize_t aufs_splice_read(struct file *file, loff_t *ppos,
+@@ -337,7 +337,7 @@ static ssize_t aufs_splice_read(struct file *file, loff_t *ppos,
  	err = -EINVAL;
  	h_file = au_hf_top(file);
  	get_file(h_file);
  		if (file->f_mapping != h_file->f_mapping) {
  			file->f_mapping = h_file->f_mapping;
 diff --git a/fs/aufs/loop.c b/fs/aufs/loop.c
-index f4db034..d491e45 100644
+index 3b03b52..4ab749d 100644
 --- a/fs/aufs/loop.c
 +++ b/fs/aufs/loop.c
-@@ -144,3 +144,19 @@ void au_loopback_fin(void)
+@@ -130,3 +130,19 @@ void au_loopback_fin(void)
  	symbol_put(loop_backing_file);
  	kfree(au_warn_loopback_array);
  }
 +	return f;
 +}
 diff --git a/fs/aufs/loop.h b/fs/aufs/loop.h
-index 64d1e3f..e3a32a9 100644
+index da8b756..28cb7ea 100644
 --- a/fs/aufs/loop.h
 +++ b/fs/aufs/loop.h
-@@ -39,7 +39,11 @@ void au_warn_loopback(struct super_block *h_sb);
+@@ -25,7 +25,11 @@ void au_warn_loopback(struct super_block *h_sb);
  
  int au_loopback_init(void);
  void au_loopback_fin(void);
  AuStubInt0(au_test_loopback_overlap, struct super_block *sb,
  	   struct dentry *h_adding)
  AuStubInt0(au_test_loopback_kthread, void)
-@@ -47,6 +51,8 @@ AuStubVoid(au_warn_loopback, struct super_block *h_sb)
+@@ -33,6 +37,8 @@ AuStubVoid(au_warn_loopback, struct super_block *h_sb)
  
  AuStubInt0(au_loopback_init, void)
  AuStubVoid(au_loopback_fin, void)
  
  #endif /* __KERNEL__ */
 diff --git a/fs/aufs/super.c b/fs/aufs/super.c
-index e97f900..58d7c13 100644
+index 6828e68..d8d43f9 100644
 --- a/fs/aufs/super.c
 +++ b/fs/aufs/super.c
-@@ -821,7 +821,10 @@ static const struct super_operations aufs_sop = {
+@@ -807,7 +807,10 @@ static const struct super_operations aufs_sop = {
  	.statfs		= aufs_statfs,
  	.put_super	= aufs_put_super,
  	.sync_fs	= aufs_sync_fs,
  
  /* ---------------------------------------------------------------------- */
 diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 36b235e..3efee0b 100644
+index 39bf86d..f10f4ab 100644
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -1626,6 +1626,10 @@ struct super_operations {
+@@ -1621,6 +1621,10 @@ struct super_operations {
  	int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
  	long (*nr_cached_objects)(struct super_block *, int);
  	long (*free_cached_objects)(struct super_block *, long, int);

File var/vabs/kernel-3.13/src/patches/aufs3-mmap.patch

View file
  • Ignore whitespace
-aufs3.12 mmap patch
+aufs3.x-rcN mmap patch
 
 diff --git a/fs/buffer.c b/fs/buffer.c
 index 6024877..95bbf13 100644
  	ret = __block_page_mkwrite(vma, vmf, get_block);
  	sb_end_pagefault(sb);
 diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
-index ccfd99b..bca7789 100644
+index 5f9bc8a..9ea6c3a 100644
 --- a/fs/proc/nommu.c
 +++ b/fs/proc/nommu.c
 @@ -45,7 +45,9 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
  		ino = inode->i_ino;
  	}
 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index 390bdab..ad05546 100644
+index fb52b54..1aca72e 100644
 --- a/fs/proc/task_mmu.c
 +++ b/fs/proc/task_mmu.c
-@@ -272,7 +272,9 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
+@@ -264,7 +264,9 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
  	const char *name = NULL;
  
  	if (file) {
  		dev = inode->i_sb->s_dev;
  		ino = inode->i_ino;
  		pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
-@@ -1412,6 +1414,7 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
+@@ -1407,6 +1409,7 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
  	seq_printf(m, "%08lx %s", vma->vm_start, buffer);
  
  	if (file) {
  		seq_path(m, &file->f_path, "\n\t= ");
  	} else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
 diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
-index 56123a6..d19737f 100644
+index 678455d..ad0ce45 100644
 --- a/fs/proc/task_nommu.c
 +++ b/fs/proc/task_nommu.c
-@@ -149,7 +149,9 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
+@@ -141,7 +141,9 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
  	file = vma->vm_file;
  
  	if (file) {
  		ino = inode->i_ino;
  		pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
 diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 8b6e55e..1359c80 100644
+index 3552717..3c5a972 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
 @@ -17,6 +17,9 @@
  
  struct mempolicy;
  struct anon_vma;
-@@ -1017,6 +1020,87 @@ static inline int fixup_user_fault(struct task_struct *tsk,
+@@ -1101,6 +1104,87 @@ static inline int fixup_user_fault(struct task_struct *tsk,
  }
  #endif
  
  extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
  		void *buf, int len, int write);
 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index d9851ee..4bde7bf 100644
+index 290901a..c21588b 100644
 --- a/include/linux/mm_types.h
 +++ b/include/linux/mm_types.h
-@@ -213,6 +213,7 @@ struct vm_region {
+@@ -231,6 +231,7 @@ struct vm_region {
  	unsigned long	vm_top;		/* region allocated to here */
  	unsigned long	vm_pgoff;	/* the offset in vm_file corresponding to vm_start */
  	struct file	*vm_file;	/* the backing file or NULL */
  
  	int		vm_usage;	/* region usage count (access under nommu_region_sem) */
  	bool		vm_icache_flushed : 1; /* true if the icache has been flushed for
-@@ -281,6 +282,7 @@ struct vm_area_struct {
+@@ -299,6 +300,7 @@ struct vm_area_struct {
  	unsigned long vm_pgoff;		/* Offset (within vm_file) in PAGE_SIZE
  					   units, *not* PAGE_CACHE_SIZE */
  	struct file * vm_file;		/* File we map to (can be NULL). */
  
  #ifndef CONFIG_MMU
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 086fe73..003e30c 100644
+index 5721f0e..ae597af 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
 @@ -412,7 +412,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
  				atomic_dec(&inode->i_writecount);
  			mutex_lock(&mapping->i_mmap_mutex);
 diff --git a/mm/filemap.c b/mm/filemap.c
-index ae4846f..3f890ee 100644
+index b7749a9..a6693ca 100644
 --- a/mm/filemap.c
 +++ b/mm/filemap.c
 @@ -1735,7 +1735,7 @@ int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
  	if (page->mapping != inode->i_mapping) {
  		unlock_page(page);
 diff --git a/mm/fremap.c b/mm/fremap.c
-index 5bff081..246a9c7 100644
+index bbc4d66..7deee2c 100644
 --- a/mm/fremap.c
 +++ b/mm/fremap.c
-@@ -207,11 +207,12 @@ get_write_lock:
- 		 */
- 		if (mapping_cap_account_dirty(mapping)) {
- 			unsigned long addr;
--			struct file *file = get_file(vma->vm_file);
-+			struct file *file = vma->vm_file;
+@@ -211,7 +211,9 @@ get_write_lock:
+ 			/* mmap_region may free vma; grab the info now */
+ 			vm_flags = vma->vm_flags;
  
 +			vma_get_file(vma);
- 			addr = mmap_region(file, start, size,
- 					vma->vm_flags, pgoff);
--			fput(file);
+ 			addr = mmap_region(file, start, size, vm_flags, pgoff);
 +			vma_fput(vma);
+ 			fput(file);
  			if (IS_ERR_VALUE(addr)) {
  				err = addr;
- 			} else {
 diff --git a/mm/madvise.c b/mm/madvise.c
 index 539eeb9..5e700b1 100644
 --- a/mm/madvise.c
  	return error;
  }
 diff --git a/mm/memory.c b/mm/memory.c
-index d176154..49cafa9 100644
+index 6768ce9..22d2cec 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -2745,7 +2745,7 @@ reuse:
+@@ -2752,7 +2752,7 @@ reuse:
  			set_page_dirty_balance(dirty_page, page_mkwrite);
  			/* file_update_time outside page_lock */
  			if (vma->vm_file)
  		}
  		put_page(dirty_page);
  		if (page_mkwrite) {
-@@ -3456,7 +3456,7 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3463,7 +3463,7 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
  
  		/* file_update_time outside page_lock */
  		if (vma->vm_file && !page_mkwrite)
  		unlock_page(vmf.page);
  		if (anon)
 diff --git a/mm/mmap.c b/mm/mmap.c
-index 9d54851..64ae6ce 100644
+index 834b2d7..91f5699 100644
 --- a/mm/mmap.c
 +++ b/mm/mmap.c
-@@ -250,7 +250,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
+@@ -248,7 +248,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
  	if (vma->vm_ops && vma->vm_ops->close)
  		vma->vm_ops->close(vma);
  	if (vma->vm_file)
  	mpol_put(vma_policy(vma));
  	kmem_cache_free(vm_area_cachep, vma);
  	return next;
-@@ -860,7 +860,7 @@ again:			remove_next = 1 + (end > next->vm_end);
+@@ -858,7 +858,7 @@ again:			remove_next = 1 + (end > next->vm_end);
  	if (remove_next) {
  		if (file) {
  			uprobe_munmap(next, next->vm_start, next->vm_end);
  		}
  		if (next->anon_vma)
  			anon_vma_merge(vma, next);
-@@ -1622,8 +1622,8 @@ out:
+@@ -1620,8 +1620,8 @@ out:
  unmap_and_free_vma:
  	if (vm_flags & VM_DENYWRITE)
  		allow_write_access(file);
  
  	/* Undo any partial mapping done by a device driver. */
  	unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
-@@ -2412,7 +2412,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2410,7 +2410,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
  		goto out_free_mpol;
  
  	if (new->vm_file)
  
  	if (new->vm_ops && new->vm_ops->open)
  		new->vm_ops->open(new);
-@@ -2431,7 +2431,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
+@@ -2429,7 +2429,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
  	if (new->vm_ops && new->vm_ops->close)
  		new->vm_ops->close(new);
  	if (new->vm_file)
  	unlink_anon_vmas(new);
   out_free_mpol:
  	mpol_put(vma_policy(new));
-@@ -2828,7 +2828,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
+@@ -2827,7 +2827,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
  			if (anon_vma_clone(new_vma, vma))
  				goto out_free_mempol;
  			if (new_vma->vm_file)
  				goto out;
  			down_read(&mm->mmap_sem);
 diff --git a/mm/nommu.c b/mm/nommu.c
-index ecd1f15..d4306cd 100644
+index fec093a..b366e4c 100644
 --- a/mm/nommu.c
 +++ b/mm/nommu.c
 @@ -652,7 +652,7 @@ static void __put_nommu_region(struct vm_region *region)

File var/vabs/kernel-3.13/src/patches/aufs3-standalone.patch

View file
  • Ignore whitespace
-aufs3.12 standalone patch
+aufs3.x-rcN standalone patch
 
-diff --git a/fs/file_table.c b/fs/file_table.c
-index ccd02ee..710c617 100644
---- a/fs/file_table.c
-+++ b/fs/file_table.c
-@@ -37,6 +37,7 @@ struct files_stat_struct files_stat = {
- };
- 
- DEFINE_LGLOCK(files_lglock);
-+EXPORT_SYMBOL(files_lglock);
- 
- /* SLAB cache for file structures */
- static struct kmem_cache *filp_cachep __read_mostly;
-@@ -410,6 +411,8 @@ void file_sb_list_del(struct file *file)
- 	}
- }
- 
-+EXPORT_SYMBOL(file_sb_list_del);
-+
- #ifdef CONFIG_SMP
- 
- /*
 diff --git a/fs/inode.c b/fs/inode.c
-index 9b24434..6ee4b0b 100644
+index bc83168..6dd1207 100644
 --- a/fs/inode.c
 +++ b/fs/inode.c
 @@ -57,6 +57,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
  
  /*
   * Empty aops. Can be used for the cases where the user does not
-@@ -1485,6 +1486,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags)
+@@ -1513,6 +1514,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags)
  	mark_inode_dirty_sync(inode);
  	return 0;
  }
  /**
   *	touch_atime	-	update the access time
 diff --git a/fs/namespace.c b/fs/namespace.c
-index da5c494..f40ae6f 100644
+index ac2ce8a..83b0135 100644
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -54,6 +54,7 @@ EXPORT_SYMBOL_GPL(fs_kobj);
-  * tree or hash is modified or when a vfsmount structure is modified.
-  */
- DEFINE_BRLOCK(vfsmount_lock);
-+EXPORT_SYMBOL(vfsmount_lock);
- 
- static inline unsigned long hash(struct vfsmount *mnt, struct dentry *dentry)
- {
-@@ -427,6 +428,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
+@@ -425,6 +425,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
  	mnt_dec_writers(real_mount(mnt));
  	preempt_enable();
  }
  
  /**
   * mnt_drop_write - give up write access to a mount
-@@ -1480,6 +1482,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -1509,6 +1510,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
  	}
  	return 0;
  }
  static int fsnotify_mark_destroy(void *ignored)
  {
 diff --git a/fs/open.c b/fs/open.c
-index d420331..6dd3b03 100644
+index 4b3e1ed..ce49f2b 100644
 --- a/fs/open.c
 +++ b/fs/open.c
-@@ -61,6 +61,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
+@@ -62,6 +62,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
  	mutex_unlock(&dentry->d_inode->i_mutex);
  	return ret;
  }
  long vfs_truncate(struct path *path, loff_t length)
  {
 diff --git a/fs/splice.c b/fs/splice.c
-index e147583..789f6b2 100644
+index 719ca3e..6300dc8 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -1106,6 +1106,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
  }
 +EXPORT_SYMBOL(cap_mmap_file);
 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
-index c123628..efc6f68 100644
+index 7c2a0a7..a37c054 100644
 --- a/security/device_cgroup.c
 +++ b/security/device_cgroup.c
 @@ -7,6 +7,7 @@
  #include <linux/list.h>
  #include <linux/uaccess.h>
  #include <linux/seq_file.h>
-@@ -756,6 +757,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
+@@ -745,6 +746,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
  	return __devcgroup_check_permission(type, imajor(inode), iminor(inode),
  			access);
  }
  int devcgroup_inode_mknod(int mode, dev_t dev)
  {
 diff --git a/security/security.c b/security/security.c
-index 4dc31f4..1f272bc 100644
+index 15b6928..ae6eba6 100644
 --- a/security/security.c
 +++ b/security/security.c
 @@ -407,6 +407,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)