aufs: Update to aufs3.x-rcN-20140714 and reenable
svn path=/dists/trunk/linux/; revision=21549
This commit is contained in:
parent
8166c80631
commit
8c0bc75762
|
@ -1,7 +1,25 @@
|
|||
linux (3.16~rc5-1~exp1) UNRELEASED; urgency=medium
|
||||
|
||||
[ maximilian attems ]
|
||||
* New upstream rc
|
||||
|
||||
[ Ben Hutchings ]
|
||||
* aufs: Update to aufs3.x-rcN-20140714:
|
||||
- tiny, no msg in spinlock regeion
|
||||
- minor bugfix, correct error value in link(2)
|
||||
- O_TMPFILE support
|
||||
- bugfix, handling an error in opening a FIFO
|
||||
- propagate aufs file references to new vmas created by remap_file_pages()
|
||||
- begin supporting fallocate(2)
|
||||
- linux-3.16, convert iovec into iov_iter
|
||||
- allow an unprivileged mount under user_ns (enabled by module parameter)
|
||||
- simply handing attribute string
|
||||
- add mount option for copy-up on open
|
||||
- add mount option for move-up on open
|
||||
- add dirperm1 mount option
|
||||
- mvdown, return a subset of statfs(2) optionally
|
||||
- mvdown, tell about the branch is at the bottom
|
||||
|
||||
-- maximilian attems <maks@debian.org> Thu, 10 Jul 2014 16:02:29 +0200
|
||||
|
||||
linux (3.15.5-1~exp1) experimental; urgency=medium
|
||||
|
|
|
@ -4225,7 +4225,6 @@ CONFIG_AUFS_BRANCH_MAX_127=y
|
|||
# CONFIG_AUFS_HNOTIFY is not set
|
||||
CONFIG_AUFS_EXPORT=y
|
||||
# CONFIG_AUFS_RDU is not set
|
||||
# CONFIG_AUFS_SP_IATTR is not set
|
||||
# CONFIG_AUFS_SHWH is not set
|
||||
# CONFIG_AUFS_BR_RAMFS is not set
|
||||
# CONFIG_AUFS_BR_FUSE is not set
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,15 +1,15 @@
|
|||
From: J. R. Okajima <hooanon05@yahoo.co.jp>
|
||||
Date: Tue Apr 15 12:26:44 2014 +0900
|
||||
Date: Mon Jun 30 09:36:40 2014 +0900
|
||||
Subject: aufs3.x-rcN base patch
|
||||
Origin: http://sourceforge.net/p/aufs/aufs3-standalone/ci/8803c2d8d64effad56733f141431af5a2491b19f/tree/
|
||||
Bug-Debian: http://bugs.debian.org/541828
|
||||
Origin: http://sourceforge.net/p/aufs/aufs3-standalone/ci/501539c2f9478ef69fa42acfb43ef1420d9bb524/tree/
|
||||
Bug-Debian: https://bugs.debian.org/541828
|
||||
|
||||
Patch headers added by debian/patches/features/all/aufs3/gen-patch
|
||||
|
||||
aufs3.x-rcN base patch
|
||||
|
||||
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
|
||||
index f70a230..138104b 100644
|
||||
index 6cb1beb..30efd68 100644
|
||||
--- a/drivers/block/loop.c
|
||||
+++ b/drivers/block/loop.c
|
||||
@@ -692,6 +692,24 @@ static inline int is_loop_device(struct file *file)
|
||||
|
@ -38,7 +38,7 @@ index f70a230..138104b 100644
|
|||
|
||||
static ssize_t loop_attr_show(struct device *dev, char *page,
|
||||
diff --git a/fs/inode.c b/fs/inode.c
|
||||
index f96d2a6..2d72083 100644
|
||||
index 6eecb7f..b225c0f 100644
|
||||
--- a/fs/inode.c
|
||||
+++ b/fs/inode.c
|
||||
@@ -1496,7 +1496,7 @@ static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
|
||||
|
@ -51,10 +51,10 @@ index f96d2a6..2d72083 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 9bc07d2..897bde2 100644
|
||||
index f5cb9ba..9ba380c 100644
|
||||
--- a/fs/splice.c
|
||||
+++ b/fs/splice.c
|
||||
@@ -1103,8 +1103,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
|
||||
@@ -1114,8 +1114,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
|
||||
/*
|
||||
* Attempt to initiate a splice from pipe to file.
|
||||
*/
|
||||
|
@ -65,7 +65,7 @@ index 9bc07d2..897bde2 100644
|
|||
{
|
||||
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
|
||||
loff_t *, size_t, unsigned int);
|
||||
@@ -1120,9 +1120,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
|
||||
@@ -1131,9 +1131,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
|
||||
/*
|
||||
* Attempt to initiate a splice from a file to a pipe.
|
||||
*/
|
||||
|
@ -79,10 +79,10 @@ index 9bc07d2..897bde2 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 7a9c5bc..ab5e957 100644
|
||||
index e11d60c..2f32b35 100644
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -2606,6 +2606,7 @@ extern int inode_change_ok(const struct inode *, struct iattr *);
|
||||
@@ -2618,6 +2618,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);
|
||||
|
||||
|
@ -91,10 +91,10 @@ index 7a9c5bc..ab5e957 100644
|
|||
|
||||
extern int generic_show_options(struct seq_file *m, struct dentry *root);
|
||||
diff --git a/include/linux/splice.h b/include/linux/splice.h
|
||||
index 0e43906..304169e 100644
|
||||
index da2751d..2e0fca6 100644
|
||||
--- a/include/linux/splice.h
|
||||
+++ b/include/linux/splice.h
|
||||
@@ -93,4 +93,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
|
||||
@@ -83,4 +83,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;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
From: J. R. Okajima <hooanon05@yahoo.co.jp>
|
||||
Date: Thu Apr 10 21:15:16 2014 +0900
|
||||
Date: Sun Jun 15 19:47:55 2014 +0900
|
||||
Subject: aufs3.x-rcN kbuild patch
|
||||
Origin: http://sourceforge.net/p/aufs/aufs3-standalone/ci/8803c2d8d64effad56733f141431af5a2491b19f/tree/
|
||||
Bug-Debian: http://bugs.debian.org/541828
|
||||
Origin: http://sourceforge.net/p/aufs/aufs3-standalone/ci/501539c2f9478ef69fa42acfb43ef1420d9bb524/tree/
|
||||
Bug-Debian: https://bugs.debian.org/541828
|
||||
|
||||
Patch headers added by debian/patches/features/all/aufs3/gen-patch
|
||||
|
||||
|
@ -21,16 +21,16 @@ index 312393f..78632ed 100644
|
|||
endif # MISC_FILESYSTEMS
|
||||
|
||||
diff --git a/fs/Makefile b/fs/Makefile
|
||||
index f9cb987..a0c580f 100644
|
||||
index 4030cbf..5bd169a 100644
|
||||
--- a/fs/Makefile
|
||||
+++ b/fs/Makefile
|
||||
@@ -126,3 +126,4 @@ obj-y += exofs/ # Multiple modules
|
||||
@@ -125,3 +125,4 @@ obj-y += exofs/ # Multiple modules
|
||||
obj-$(CONFIG_CEPH_FS) += ceph/
|
||||
obj-$(CONFIG_PSTORE) += pstore/
|
||||
obj-$(CONFIG_EFIVAR_FS) += efivarfs/
|
||||
+obj-$(CONFIG_AUFS_FS) += aufs/
|
||||
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
|
||||
index 6929571..351ca48 100644
|
||||
index 24e9033..fe9a8d4 100644
|
||||
--- a/include/uapi/linux/Kbuild
|
||||
+++ b/include/uapi/linux/Kbuild
|
||||
@@ -56,6 +56,7 @@ header-y += atmppp.h
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
From: J. R. Okajima <hooanon05@yahoo.co.jp>
|
||||
Date: Tue Apr 15 12:26:44 2014 +0900
|
||||
Date: Thu Jul 10 02:32:20 2014 +0900
|
||||
Subject: aufs3.x-rcN mmap patch
|
||||
Origin: http://sourceforge.net/p/aufs/aufs3-standalone/ci/8803c2d8d64effad56733f141431af5a2491b19f/tree/
|
||||
Bug-Debian: http://bugs.debian.org/541828
|
||||
Origin: http://sourceforge.net/p/aufs/aufs3-standalone/ci/501539c2f9478ef69fa42acfb43ef1420d9bb524/tree/
|
||||
Bug-Debian: https://bugs.debian.org/541828
|
||||
|
||||
Patch headers added by debian/patches/features/all/aufs3/gen-patch
|
||||
|
||||
aufs3.x-rcN mmap patch
|
||||
|
||||
diff --git a/fs/buffer.c b/fs/buffer.c
|
||||
index 9ddb9fc..1059a0b 100644
|
||||
index eba6e4f..31f0b2d 100644
|
||||
--- a/fs/buffer.c
|
||||
+++ b/fs/buffer.c
|
||||
@@ -2448,7 +2448,7 @@ int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
|
||||
@@ -2460,7 +2460,7 @@ int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
|
||||
* Update file times before taking page lock. We may end up failing the
|
||||
* fault so this update may be superfluous but who really cares...
|
||||
*/
|
||||
|
@ -22,60 +22,64 @@ index 9ddb9fc..1059a0b 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 d4a3574..e44a744 100644
|
||||
index d4a3574..1397181 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)
|
||||
@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
|
||||
file = region->vm_file;
|
||||
|
||||
if (file) {
|
||||
- struct inode *inode = file_inode(region->vm_file);
|
||||
+ struct inode *inode;
|
||||
+
|
||||
+ file = vmr_pr_or_file(region);
|
||||
+ inode = file_inode(file);
|
||||
dev = inode->i_sb->s_dev;
|
||||
ino = inode->i_ino;
|
||||
}
|
||||
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
|
||||
index 442177b..2fd6081d 100644
|
||||
index cfa63ee..bf4919e 100644
|
||||
--- a/fs/proc/task_mmu.c
|
||||
+++ b/fs/proc/task_mmu.c
|
||||
@@ -265,7 +265,9 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
|
||||
@@ -265,7 +265,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
|
||||
const char *name = NULL;
|
||||
|
||||
if (file) {
|
||||
- struct inode *inode = file_inode(vma->vm_file);
|
||||
+ struct inode *inode;
|
||||
+
|
||||
+ file = vma_pr_or_file(vma);
|
||||
+ inode = file_inode(file);
|
||||
dev = inode->i_sb->s_dev;
|
||||
ino = inode->i_ino;
|
||||
pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
|
||||
@@ -1408,6 +1410,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) {
|
||||
+ file = vma_pr_or_file(vma);
|
||||
seq_printf(m, " file=");
|
||||
seq_path(m, &file->f_path, "\n\t= ");
|
||||
} else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
|
||||
@@ -1390,7 +1393,7 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
|
||||
struct proc_maps_private *proc_priv = &numa_priv->proc_maps;
|
||||
struct vm_area_struct *vma = v;
|
||||
struct numa_maps *md = &numa_priv->md;
|
||||
- struct file *file = vma->vm_file;
|
||||
+ struct file *file = vma_pr_or_file(vma);
|
||||
struct task_struct *task = proc_priv->task;
|
||||
struct mm_struct *mm = vma->vm_mm;
|
||||
struct mm_walk walk = {};
|
||||
diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
|
||||
index 678455d..ad0ce45 100644
|
||||
index 678455d..0ef7ef4 100644
|
||||
--- a/fs/proc/task_nommu.c
|
||||
+++ b/fs/proc/task_nommu.c
|
||||
@@ -141,7 +141,9 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
|
||||
@@ -141,7 +141,10 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
|
||||
file = vma->vm_file;
|
||||
|
||||
if (file) {
|
||||
- struct inode *inode = file_inode(vma->vm_file);
|
||||
+ struct inode *inode;
|
||||
+
|
||||
+ file = vma_pr_or_file(file);
|
||||
+ inode = file_inode(file);
|
||||
dev = inode->i_sb->s_dev;
|
||||
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 bf9811e..3c727c8 100644
|
||||
index e03dd29..f849643 100644
|
||||
--- a/include/linux/mm.h
|
||||
+++ b/include/linux/mm.h
|
||||
@@ -18,6 +18,9 @@
|
||||
|
@ -88,7 +92,7 @@ index bf9811e..3c727c8 100644
|
|||
|
||||
struct mempolicy;
|
||||
struct anon_vma;
|
||||
@@ -1171,6 +1174,87 @@ static inline int fixup_user_fault(struct task_struct *tsk,
|
||||
@@ -1184,6 +1187,93 @@ static inline int fixup_user_fault(struct task_struct *tsk,
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -111,6 +115,7 @@ index bf9811e..3c727c8 100644
|
|||
+ const char func[], int line)
|
||||
+{
|
||||
+ struct file *f = region->vm_file, *pr = region->vm_prfile;
|
||||
+
|
||||
+ aufs_trace(f, pr, func, line, __func__);
|
||||
+ return (f && pr) ? pr : f;
|
||||
+}
|
||||
|
@ -119,6 +124,7 @@ index bf9811e..3c727c8 100644
|
|||
+ const char func[], int line)
|
||||
+{
|
||||
+ struct file *f = region->vm_file, *pr = region->vm_prfile;
|
||||
+
|
||||
+ aufs_trace(f, pr, func, line, __func__);
|
||||
+ fput(f);
|
||||
+ if (f && pr)
|
||||
|
@ -129,6 +135,7 @@ index bf9811e..3c727c8 100644
|
|||
+ const char func[], int line)
|
||||
+{
|
||||
+ struct file *f = vma->vm_file, *pr = vma->vm_prfile;
|
||||
+
|
||||
+ aufs_trace(f, pr, func, line, __func__);
|
||||
+ file_update_time(f);
|
||||
+ if (f && pr)
|
||||
|
@ -139,6 +146,7 @@ index bf9811e..3c727c8 100644
|
|||
+ const char func[], int line)
|
||||
+{
|
||||
+ struct file *f = vma->vm_file, *pr = vma->vm_prfile;
|
||||
+
|
||||
+ aufs_trace(f, pr, func, line, __func__);
|
||||
+ return (f && pr) ? pr : f;
|
||||
+}
|
||||
|
@ -147,6 +155,7 @@ index bf9811e..3c727c8 100644
|
|||
+ const char func[], int line)
|
||||
+{
|
||||
+ struct file *f = vma->vm_file, *pr = vma->vm_prfile;
|
||||
+
|
||||
+ aufs_trace(f, pr, func, line, __func__);
|
||||
+ get_file(f);
|
||||
+ if (f && pr)
|
||||
|
@ -157,6 +166,7 @@ index bf9811e..3c727c8 100644
|
|||
+ const char func[], int line)
|
||||
+{
|
||||
+ struct file *f = vma->vm_file, *pr = vma->vm_prfile;
|
||||
+
|
||||
+ aufs_trace(f, pr, func, line, __func__);
|
||||
+ fput(f);
|
||||
+ if (f && pr)
|
||||
|
@ -177,7 +187,7 @@ index bf9811e..3c727c8 100644
|
|||
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 8967e20..a57b589 100644
|
||||
index 96c5750..a087ecd 100644
|
||||
--- a/include/linux/mm_types.h
|
||||
+++ b/include/linux/mm_types.h
|
||||
@@ -232,6 +232,7 @@ struct vm_region {
|
||||
|
@ -197,7 +207,7 @@ index 8967e20..a57b589 100644
|
|||
|
||||
#ifndef CONFIG_MMU
|
||||
diff --git a/kernel/fork.c b/kernel/fork.c
|
||||
index 54a8d26..dcf08b6 100644
|
||||
index 6a13c46..714302c 100644
|
||||
--- a/kernel/fork.c
|
||||
+++ b/kernel/fork.c
|
||||
@@ -416,7 +416,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
|
||||
|
@ -210,10 +220,10 @@ index 54a8d26..dcf08b6 100644
|
|||
atomic_dec(&inode->i_writecount);
|
||||
mutex_lock(&mapping->i_mmap_mutex);
|
||||
diff --git a/mm/filemap.c b/mm/filemap.c
|
||||
index a82fbe4..f7e38b6 100644
|
||||
index dafb06f..f8c0ba3 100644
|
||||
--- a/mm/filemap.c
|
||||
+++ b/mm/filemap.c
|
||||
@@ -2082,7 +2082,7 @@ int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||
@@ -2037,7 +2037,7 @@ int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||
int ret = VM_FAULT_LOCKED;
|
||||
|
||||
sb_start_pagefault(inode->i_sb);
|
||||
|
@ -223,21 +233,42 @@ index a82fbe4..f7e38b6 100644
|
|||
if (page->mapping != inode->i_mapping) {
|
||||
unlock_page(page);
|
||||
diff --git a/mm/fremap.c b/mm/fremap.c
|
||||
index 34feba6..d857364 100644
|
||||
index 72b8fa3..a00bbf0 100644
|
||||
--- a/mm/fremap.c
|
||||
+++ b/mm/fremap.c
|
||||
@@ -227,7 +227,9 @@ get_write_lock:
|
||||
@@ -224,16 +224,28 @@ 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,
|
||||
+ *prfile = vma->vm_prfile;
|
||||
+
|
||||
/* mmap_region may free vma; grab the info now */
|
||||
vm_flags = vma->vm_flags;
|
||||
|
||||
+ vma_get_file(vma);
|
||||
addr = mmap_region(file, start, size, vm_flags, pgoff);
|
||||
- fput(file);
|
||||
+ vma_fput(vma);
|
||||
fput(file);
|
||||
if (IS_ERR_VALUE(addr)) {
|
||||
err = addr;
|
||||
} else {
|
||||
BUG_ON(addr != start);
|
||||
+ if (prfile) {
|
||||
+ struct vm_area_struct *new_vma;
|
||||
+
|
||||
+ new_vma = find_vma(mm, addr);
|
||||
+ if (!new_vma->vm_prfile)
|
||||
+ new_vma->vm_prfile = prfile;
|
||||
+ if (new_vma != vma)
|
||||
+ get_file(prfile);
|
||||
+ }
|
||||
err = 0;
|
||||
}
|
||||
goto out_freed;
|
||||
diff --git a/mm/madvise.c b/mm/madvise.c
|
||||
index 539eeb9..5e700b1 100644
|
||||
index a402f8f..134e15d 100644
|
||||
--- a/mm/madvise.c
|
||||
+++ b/mm/madvise.c
|
||||
@@ -327,12 +327,12 @@ static long madvise_remove(struct vm_area_struct *vma,
|
||||
|
@ -256,10 +287,10 @@ index 539eeb9..5e700b1 100644
|
|||
return error;
|
||||
}
|
||||
diff --git a/mm/memory.c b/mm/memory.c
|
||||
index d0f0bef..1293484 100644
|
||||
index d67fd9f..aa1e55d 100644
|
||||
--- a/mm/memory.c
|
||||
+++ b/mm/memory.c
|
||||
@@ -2785,7 +2785,7 @@ reuse:
|
||||
@@ -2161,7 +2161,7 @@ reuse:
|
||||
set_page_dirty_balance(dirty_page);
|
||||
/* file_update_time outside page_lock */
|
||||
if (vma->vm_file)
|
||||
|
@ -269,10 +300,10 @@ index d0f0bef..1293484 100644
|
|||
put_page(dirty_page);
|
||||
if (page_mkwrite) {
|
||||
diff --git a/mm/mmap.c b/mm/mmap.c
|
||||
index b1202cf..40dd067 100644
|
||||
index 129b847..869d1d7 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)
|
||||
@@ -253,7 +253,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)
|
||||
|
@ -281,7 +312,7 @@ index b1202cf..40dd067 100644
|
|||
mpol_put(vma_policy(vma));
|
||||
kmem_cache_free(vm_area_cachep, vma);
|
||||
return next;
|
||||
@@ -861,7 +861,7 @@ again: remove_next = 1 + (end > next->vm_end);
|
||||
@@ -863,7 +863,7 @@ again: remove_next = 1 + (end > next->vm_end);
|
||||
if (remove_next) {
|
||||
if (file) {
|
||||
uprobe_munmap(next, next->vm_start, next->vm_end);
|
||||
|
@ -290,7 +321,7 @@ index b1202cf..40dd067 100644
|
|||
}
|
||||
if (next->anon_vma)
|
||||
anon_vma_merge(vma, next);
|
||||
@@ -1641,8 +1641,8 @@ out:
|
||||
@@ -1643,8 +1643,8 @@ out:
|
||||
unmap_and_free_vma:
|
||||
if (vm_flags & VM_DENYWRITE)
|
||||
allow_write_access(file);
|
||||
|
@ -300,7 +331,7 @@ index b1202cf..40dd067 100644
|
|||
|
||||
/* Undo any partial mapping done by a device driver. */
|
||||
unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
|
||||
@@ -2432,7 +2432,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
|
||||
@@ -2434,7 +2434,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
|
||||
goto out_free_mpol;
|
||||
|
||||
if (new->vm_file)
|
||||
|
@ -309,7 +340,7 @@ index b1202cf..40dd067 100644
|
|||
|
||||
if (new->vm_ops && new->vm_ops->open)
|
||||
new->vm_ops->open(new);
|
||||
@@ -2451,7 +2451,7 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
|
||||
@@ -2453,7 +2453,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)
|
||||
|
@ -318,7 +349,7 @@ index b1202cf..40dd067 100644
|
|||
unlink_anon_vmas(new);
|
||||
out_free_mpol:
|
||||
mpol_put(vma_policy(new));
|
||||
@@ -2840,7 +2840,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
|
||||
@@ -2842,7 +2842,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)
|
||||
|
@ -328,27 +359,30 @@ index b1202cf..40dd067 100644
|
|||
new_vma->vm_ops->open(new_vma);
|
||||
vma_link(mm, new_vma, prev, rb_link, rb_parent);
|
||||
diff --git a/mm/msync.c b/mm/msync.c
|
||||
index 632df45..02d770e 100644
|
||||
index 992a167..ce1915b 100644
|
||||
--- a/mm/msync.c
|
||||
+++ b/mm/msync.c
|
||||
@@ -80,10 +80,10 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags)
|
||||
@@ -84,13 +84,13 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags)
|
||||
start = vma->vm_end;
|
||||
if ((flags & MS_SYNC) && file &&
|
||||
(vma->vm_flags & VM_SHARED)) {
|
||||
- get_file(file);
|
||||
+ vma_get_file(vma);
|
||||
up_read(&mm->mmap_sem);
|
||||
error = vfs_fsync(file, 0);
|
||||
if (vma->vm_flags & VM_NONLINEAR)
|
||||
error = vfs_fsync(file, 1);
|
||||
else
|
||||
error = vfs_fsync_range(file, fstart, fend, 1);
|
||||
- fput(file);
|
||||
+ vma_fput(vma);
|
||||
if (error || start >= end)
|
||||
goto out;
|
||||
down_read(&mm->mmap_sem);
|
||||
diff --git a/mm/nommu.c b/mm/nommu.c
|
||||
index 85f8d66..9f471fa 100644
|
||||
index 4a852f6..b369644 100644
|
||||
--- a/mm/nommu.c
|
||||
+++ b/mm/nommu.c
|
||||
@@ -655,7 +655,7 @@ static void __put_nommu_region(struct vm_region *region)
|
||||
@@ -658,7 +658,7 @@ static void __put_nommu_region(struct vm_region *region)
|
||||
up_write(&nommu_region_sem);
|
||||
|
||||
if (region->vm_file)
|
||||
|
@ -357,7 +391,7 @@ index 85f8d66..9f471fa 100644
|
|||
|
||||
/* IO memory and memory shared directly out of the pagecache
|
||||
* from ramfs/tmpfs mustn't be released here */
|
||||
@@ -820,7 +820,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
|
||||
@@ -823,7 +823,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma)
|
||||
if (vma->vm_ops && vma->vm_ops->close)
|
||||
vma->vm_ops->close(vma);
|
||||
if (vma->vm_file)
|
||||
|
@ -366,7 +400,7 @@ index 85f8d66..9f471fa 100644
|
|||
put_nommu_region(vma->vm_region);
|
||||
kmem_cache_free(vm_area_cachep, vma);
|
||||
}
|
||||
@@ -1382,7 +1382,7 @@ unsigned long do_mmap_pgoff(struct file *file,
|
||||
@@ -1385,7 +1385,7 @@ unsigned long do_mmap_pgoff(struct file *file,
|
||||
goto error_just_free;
|
||||
}
|
||||
}
|
||||
|
@ -375,7 +409,7 @@ index 85f8d66..9f471fa 100644
|
|||
kmem_cache_free(vm_region_jar, region);
|
||||
region = pregion;
|
||||
result = start;
|
||||
@@ -1458,10 +1458,10 @@ error_just_free:
|
||||
@@ -1461,10 +1461,10 @@ error_just_free:
|
||||
up_write(&nommu_region_sem);
|
||||
error:
|
||||
if (region->vm_file)
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
From: J. R. Okajima <hooanon05@yahoo.co.jp>
|
||||
Date: Tue Apr 15 12:26:44 2014 +0900
|
||||
Date: Fri Jun 20 09:25:26 2014 +0900
|
||||
Subject: aufs3.x-rcN standalone patch
|
||||
Origin: http://sourceforge.net/p/aufs/aufs3-standalone/ci/8803c2d8d64effad56733f141431af5a2491b19f/tree/
|
||||
Bug-Debian: http://bugs.debian.org/541828
|
||||
Origin: http://sourceforge.net/p/aufs/aufs3-standalone/ci/501539c2f9478ef69fa42acfb43ef1420d9bb524/tree/
|
||||
Bug-Debian: https://bugs.debian.org/541828
|
||||
|
||||
Patch headers added by debian/patches/features/all/aufs3/gen-patch
|
||||
|
||||
aufs3.x-rcN standalone patch
|
||||
|
||||
diff --git a/fs/inode.c b/fs/inode.c
|
||||
index 2d72083..30b69da 100644
|
||||
index b225c0f..73259c8 100644
|
||||
--- a/fs/inode.c
|
||||
+++ b/fs/inode.c
|
||||
@@ -57,6 +57,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
|
||||
|
@ -85,7 +85,7 @@ index ad19959..adf290d 100644
|
|||
int fsnotify_fasync(int fd, struct file *file, int on)
|
||||
{
|
||||
diff --git a/fs/notify/mark.c b/fs/notify/mark.c
|
||||
index 923fe4a..176b435 100644
|
||||
index d90deaa..60b4239 100644
|
||||
--- a/fs/notify/mark.c
|
||||
+++ b/fs/notify/mark.c
|
||||
@@ -109,6 +109,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
|
||||
|
@ -121,7 +121,7 @@ index 923fe4a..176b435 100644
|
|||
static int fsnotify_mark_destroy(void *ignored)
|
||||
{
|
||||
diff --git a/fs/open.c b/fs/open.c
|
||||
index 3d30eb1..311c320 100644
|
||||
index 36662d0..9a7e1e0 100644
|
||||
--- a/fs/open.c
|
||||
+++ b/fs/open.c
|
||||
@@ -62,6 +62,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
|
||||
|
@ -132,11 +132,19 @@ index 3d30eb1..311c320 100644
|
|||
|
||||
long vfs_truncate(struct path *path, loff_t length)
|
||||
{
|
||||
@@ -299,6 +300,7 @@ int do_fallocate(struct file *file, int mode, loff_t offset, loff_t len)
|
||||
sb_end_write(inode->i_sb);
|
||||
return ret;
|
||||
}
|
||||
+EXPORT_SYMBOL_GPL(do_fallocate);
|
||||
|
||||
SYSCALL_DEFINE4(fallocate, int, fd, int, mode, loff_t, offset, loff_t, len)
|
||||
{
|
||||
diff --git a/fs/splice.c b/fs/splice.c
|
||||
index 897bde2..ecf04e0 100644
|
||||
index 9ba380c..3419932 100644
|
||||
--- a/fs/splice.c
|
||||
+++ b/fs/splice.c
|
||||
@@ -1116,6 +1116,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
|
||||
@@ -1127,6 +1127,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
|
||||
|
||||
return splice_write(pipe, out, ppos, len, flags);
|
||||
}
|
||||
|
@ -144,7 +152,7 @@ index 897bde2..ecf04e0 100644
|
|||
|
||||
/*
|
||||
* Attempt to initiate a splice from a file to a pipe.
|
||||
@@ -1142,6 +1143,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
|
||||
@@ -1153,6 +1154,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
|
||||
|
||||
return splice_read(in, ppos, pipe, len, flags);
|
||||
}
|
||||
|
@ -169,7 +177,7 @@ index b9d613e..ba3b618 100644
|
|||
}
|
||||
+EXPORT_SYMBOL_GPL(cap_mmap_file);
|
||||
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
|
||||
index 8365909..20b0098 100644
|
||||
index d9d69e6..3f6f471 100644
|
||||
--- a/security/device_cgroup.c
|
||||
+++ b/security/device_cgroup.c
|
||||
@@ -7,6 +7,7 @@
|
||||
|
@ -180,7 +188,7 @@ index 8365909..20b0098 100644
|
|||
#include <linux/list.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/seq_file.h>
|
||||
@@ -740,6 +741,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
|
||||
@@ -849,6 +850,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
|
||||
return __devcgroup_check_permission(type, imajor(inode), iminor(inode),
|
||||
access);
|
||||
}
|
||||
|
@ -189,7 +197,7 @@ index 8365909..20b0098 100644
|
|||
int devcgroup_inode_mknod(int mode, dev_t dev)
|
||||
{
|
||||
diff --git a/security/security.c b/security/security.c
|
||||
index 8b774f3..e3190b9 100644
|
||||
index 31614e9..b223a66 100644
|
||||
--- a/security/security.c
|
||||
+++ b/security/security.c
|
||||
@@ -407,6 +407,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
|
||||
|
|
|
@ -19,13 +19,13 @@ bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch
|
|||
|
||||
# Patches and source files from aufs3 repository, imported with
|
||||
# debian/patches/features/all/aufs3/gen-patch.
|
||||
#features/all/aufs3/aufs3-kbuild.patch
|
||||
#features/all/aufs3/aufs3-base.patch
|
||||
#features/all/aufs3/aufs3-mmap.patch
|
||||
#features/all/aufs3/aufs3-standalone.patch
|
||||
#features/all/aufs3/aufs3-add.patch
|
||||
features/all/aufs3/aufs3-kbuild.patch
|
||||
features/all/aufs3/aufs3-base.patch
|
||||
features/all/aufs3/aufs3-mmap.patch
|
||||
features/all/aufs3/aufs3-standalone.patch
|
||||
features/all/aufs3/aufs3-add.patch
|
||||
# Debian-specific changes
|
||||
#debian/aufs3-mark-as-staging.patch
|
||||
debian/aufs3-mark-as-staging.patch
|
||||
|
||||
# Change some defaults for security reasons
|
||||
debian/af_802154-Disable-auto-loading-as-mitigation-against.patch
|
||||
|
|
Loading…
Reference in New Issue