[packages/kernel] - updated
arekm
arekm at pld-linux.org
Thu Mar 2 15:38:40 CET 2017
commit a2654f7884b5e0aca54cf9f5def4b2d62195fa19
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Thu Mar 2 15:38:31 2017 +0100
- updated
kernel-aufs4.patch | 762 +++++++++++++++++++++++-------------------------
kernel-multiarch.config | 229 ++++++++++++---
2 files changed, 549 insertions(+), 442 deletions(-)
---
diff --git a/kernel-aufs4.patch b/kernel-aufs4.patch
index 6cc5ab9..cc61c35 100644
--- a/kernel-aufs4.patch
+++ b/kernel-aufs4.patch
@@ -1,10 +1,10 @@
-aufs4.9 kbuild patch
+aufs4.x-rcN kbuild patch
diff --git a/fs/Kconfig b/fs/Kconfig
-index 4bd03a2..620e01b 100644
+index 83eab52..31f16c4 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
-@@ -249,6 +249,7 @@ source "fs/pstore/Kconfig"
+@@ -248,6 +248,7 @@ source "fs/pstore/Kconfig"
source "fs/sysv/Kconfig"
source "fs/ufs/Kconfig"
source "fs/exofs/Kconfig"
@@ -13,16 +13,16 @@ index 4bd03a2..620e01b 100644
endif # MISC_FILESYSTEMS
diff --git a/fs/Makefile b/fs/Makefile
-index ed2b632..aa6d14b 100644
+index 7bbaca9..a026491 100644
--- a/fs/Makefile
+++ b/fs/Makefile
-@@ -129,3 +129,4 @@ obj-y += exofs/ # Multiple modules
+@@ -128,3 +128,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 cd2be1c..78f3c68 100644
+index f330ba4..67d88cd 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -59,6 +59,7 @@ header-y += atmsvc.h
@@ -33,13 +33,13 @@ index cd2be1c..78f3c68 100644
header-y += auto_fs4.h
header-y += auto_fs.h
header-y += auxvec.h
-aufs4.9 base patch
+aufs4.x-rcN base patch
diff --git a/MAINTAINERS b/MAINTAINERS
-index 63cefa6..d78b954 100644
+index 107c10e..dd8df20 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -2293,6 +2293,19 @@ F: include/linux/audit.h
+@@ -2308,6 +2308,19 @@ F: include/linux/audit.h
F: include/uapi/linux/audit.h
F: kernel/audit*
@@ -60,7 +60,7 @@ index 63cefa6..d78b954 100644
M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis at gmail.com>
W: http://miguelojeda.es/auxdisplay.htm
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index fa1b7a9..6ee9235 100644
+index f347285..b63f68b 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -701,6 +701,24 @@ static inline int is_loop_device(struct file *file)
@@ -89,7 +89,7 @@ index fa1b7a9..6ee9235 100644
static ssize_t loop_attr_show(struct device *dev, char *page,
diff --git a/fs/dcache.c b/fs/dcache.c
-index 5c7cc95..df0268c 100644
+index 95d71ed..8ca5f09 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1164,7 +1164,7 @@ enum d_walk_ret {
@@ -102,7 +102,7 @@ index 5c7cc95..df0268c 100644
void (*finish)(void *))
{
diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 350a2c8..6f42279 100644
+index e1c54f2..9f07008 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
@@ -29,7 +29,7 @@
@@ -127,7 +127,7 @@ diff --git a/fs/inode.c b/fs/inode.c
index 88110fd..9a9ba3a 100644
--- a/fs/inode.c
+++ b/fs/inode.c
-@@ -1642,7 +1642,7 @@ int generic_update_time(struct inode *inode, struct timespec *time, int flags)
+@@ -1642,7 +1642,7 @@ EXPORT_SYMBOL(generic_update_time);
* This does the actual work of updating an inodes time or version. Must have
* had called mnt_want_write() before calling this.
*/
@@ -137,7 +137,7 @@ index 88110fd..9a9ba3a 100644
int (*update_time)(struct inode *, struct timespec *, int);
diff --git a/fs/read_write.c b/fs/read_write.c
-index 190e0d36..4052813 100644
+index 5816d4c..670b365 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -515,6 +515,28 @@ ssize_t __vfs_write(struct file *file, const char __user *p, size_t count,
@@ -170,10 +170,10 @@ index 190e0d36..4052813 100644
{
mm_segment_t old_fs;
diff --git a/fs/splice.c b/fs/splice.c
-index 5a7750b..28160a7 100644
+index 873d831..7899532 100644
--- a/fs/splice.c
+++ b/fs/splice.c
-@@ -855,8 +855,8 @@ ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, struct file *out,
+@@ -856,8 +856,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
/*
* Attempt to initiate a splice from pipe to file.
*/
@@ -184,7 +184,7 @@ index 5a7750b..28160a7 100644
{
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
loff_t *, size_t, unsigned int);
-@@ -872,9 +872,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+@@ -873,9 +873,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.
*/
@@ -197,23 +197,36 @@ index 5a7750b..28160a7 100644
{
ssize_t (*splice_read)(struct file *, loff_t *,
struct pipe_inode_info *, size_t, unsigned int);
+diff --git a/fs/sync.c b/fs/sync.c
+index 2a54c1f..7a5fa3f 100644
+--- a/fs/sync.c
++++ b/fs/sync.c
+@@ -27,7 +27,7 @@
+ * wait == 1 case since in that case write_inode() functions do
+ * sync_dirty_buffer() and thus effectively write one block at a time.
+ */
+-static int __sync_filesystem(struct super_block *sb, int wait)
++int __sync_filesystem(struct super_block *sb, int wait)
+ {
+ if (wait)
+ sync_inodes_sb(sb);
diff --git a/include/linux/file.h b/include/linux/file.h
-index 7444f5f..bdac0be 100644
+index 61eb82c..e700888 100644
--- a/include/linux/file.h
+++ b/include/linux/file.h
-@@ -19,6 +19,7 @@
+@@ -19,6 +19,7 @@ struct dentry;
struct path;
- extern struct file *alloc_file(struct path *, fmode_t mode,
+ extern struct file *alloc_file(const struct path *, fmode_t mode,
const struct file_operations *fop);
+extern struct file *get_empty_filp(void);
static inline void fput_light(struct file *file, int fput_needed)
{
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index dc0478c..27c05e7 100644
+index 2ba0743..d1c583b 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
-@@ -1291,6 +1291,7 @@ struct fasync_struct {
+@@ -1240,6 +1240,7 @@ extern void fasync_free(struct fasync_struct *);
/* can be called from interrupts */
extern void kill_fasync(struct fasync_struct **, int, int);
@@ -221,7 +234,7 @@ index dc0478c..27c05e7 100644
extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
extern void f_setown(struct file *filp, unsigned long arg, int force);
extern void f_delown(struct file *filp);
-@@ -1715,6 +1716,7 @@ struct file_operations {
+@@ -1664,6 +1665,7 @@ struct file_operations {
ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
int (*check_flags)(int);
@@ -229,7 +242,7 @@ index dc0478c..27c05e7 100644
int (*flock) (struct file *, int, struct file_lock *);
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
-@@ -1768,6 +1770,12 @@ ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector,
+@@ -1717,6 +1719,12 @@ ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector,
struct iovec *fast_pointer,
struct iovec **ret_pointer);
@@ -242,7 +255,7 @@ index dc0478c..27c05e7 100644
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 *);
extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *);
-@@ -2140,6 +2148,7 @@ extern int iterate_mounts(int (*)(struct vfsmount *, void *), void *,
+@@ -2108,6 +2116,7 @@ extern int current_umask(void);
extern void ihold(struct inode * inode);
extern void iput(struct inode *);
extern int generic_update_time(struct inode *, struct timespec *, int);
@@ -250,11 +263,19 @@ index dc0478c..27c05e7 100644
/* /sys/fs */
extern struct kobject *fs_kobj;
+@@ -2387,6 +2396,7 @@ static inline bool sb_is_blkdev_sb(struct super_block *sb)
+ return false;
+ }
+ #endif
++extern int __sync_filesystem(struct super_block *, int);
+ extern int sync_filesystem(struct super_block *);
+ extern const struct file_operations def_blk_fops;
+ extern const struct file_operations def_chr_fops;
diff --git a/include/linux/splice.h b/include/linux/splice.h
index 00a2116..1f0a4a2 100644
--- a/include/linux/splice.h
+++ b/include/linux/splice.h
-@@ -86,4 +86,10 @@ extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
+@@ -86,4 +86,10 @@ extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
extern const struct pipe_buf_operations default_pipe_buf_ops;
@@ -265,13 +286,13 @@ index 00a2116..1f0a4a2 100644
+ struct pipe_inode_info *pipe, size_t len,
+ unsigned int flags);
#endif
-aufs4.9 mmap patch
+aufs4.x-rcN mmap patch
diff --git a/fs/proc/base.c b/fs/proc/base.c
-index ca651ac..0e8551a 100644
+index 87c9a9a..a0196f0 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
-@@ -1953,7 +1953,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
+@@ -1958,7 +1958,7 @@ static int map_files_get_link(struct dentry *dentry, struct path *path)
down_read(&mm->mmap_sem);
vma = find_exact_vma(mm, vm_start, vm_end);
if (vma && vma->vm_file) {
@@ -281,7 +302,7 @@ index ca651ac..0e8551a 100644
rc = 0;
}
diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
-index f8595e8..cb8eda0 100644
+index 7563437..7c0dc0f 100644
--- a/fs/proc/nommu.c
+++ b/fs/proc/nommu.c
@@ -45,7 +45,10 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
@@ -297,10 +318,10 @@ index f8595e8..cb8eda0 100644
ino = inode->i_ino;
}
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index 35b92d8..5b981db 100644
+index 8f96a49..0d10404 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
-@@ -291,7 +291,10 @@ static int is_stack(struct proc_maps_private *priv,
+@@ -291,7 +291,10 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
const char *name = NULL;
if (file) {
@@ -312,7 +333,7 @@ index 35b92d8..5b981db 100644
dev = inode->i_sb->s_dev;
ino = inode->i_ino;
pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
-@@ -1627,7 +1630,7 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
+@@ -1628,7 +1631,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;
@@ -338,10 +359,10 @@ index 3717562..6a328f1 100644
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 a92c8d7..1d83a2a 100644
+index b84615b..3978a35 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
-@@ -1266,6 +1266,28 @@ static inline int fixup_user_fault(struct task_struct *tsk,
+@@ -1257,6 +1257,28 @@ static inline int fixup_user_fault(struct task_struct *tsk,
}
#endif
@@ -371,7 +392,7 @@ index a92c8d7..1d83a2a 100644
unsigned int gup_flags);
extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 4a8aced..badd16b 100644
+index 808751d..66fc765 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -275,6 +275,7 @@ struct vm_region {
@@ -391,10 +412,10 @@ index 4a8aced..badd16b 100644
#ifndef CONFIG_MMU
diff --git a/kernel/fork.c b/kernel/fork.c
-index 997ac1d..4d0131b 100644
+index 11c5c8a..48e7ef7 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
-@@ -624,7 +624,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
+@@ -626,7 +626,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm,
struct inode *inode = file_inode(file);
struct address_space *mapping = file->f_mapping;
@@ -417,10 +438,10 @@ index 295bd7a..14fa1c8 100644
obj-y += init-mm.o
diff --git a/mm/filemap.c b/mm/filemap.c
-index 50b52fe..9e607f9 100644
+index 3f9afde..bb050b0 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
-@@ -2304,7 +2304,7 @@ int filemap_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
+@@ -2397,7 +2397,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);
@@ -429,21 +450,8 @@ index 50b52fe..9e607f9 100644
lock_page(page);
if (page->mapping != inode->i_mapping) {
unlock_page(page);
-diff --git a/mm/memory.c b/mm/memory.c
-index e18c57b..7be4a39 100644
---- a/mm/memory.c
-+++ b/mm/memory.c
-@@ -2117,7 +2117,7 @@ static inline int wp_page_reuse(struct fault_env *fe, pte_t orig_pte,
- }
-
- if (!page_mkwrite)
-- file_update_time(vma->vm_file);
-+ vma_file_update_time(vma);
- }
-
- /*
diff --git a/mm/mmap.c b/mm/mmap.c
-index 1af87c1..95b0ff4 100644
+index dc4291d..4b3a2aa 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -170,7 +170,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
@@ -492,7 +500,7 @@ index 1af87c1..95b0ff4 100644
unlink_anon_vmas(new);
out_free_mpol:
mpol_put(vma_policy(new));
-@@ -2703,7 +2703,7 @@ int vm_munmap(unsigned long start, size_t len)
+@@ -2703,7 +2703,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
struct vm_area_struct *vma;
unsigned long populate = 0;
unsigned long ret = -EINVAL;
@@ -501,7 +509,7 @@ index 1af87c1..95b0ff4 100644
pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/vm/remap_file_pages.txt.\n",
current->comm, current->pid);
-@@ -2778,10 +2778,27 @@ int vm_munmap(unsigned long start, size_t len)
+@@ -2778,10 +2778,27 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
}
}
@@ -540,7 +548,7 @@ index 1af87c1..95b0ff4 100644
new_vma->vm_ops->open(new_vma);
vma_link(mm, new_vma, prev, rb_link, rb_parent);
diff --git a/mm/nommu.c b/mm/nommu.c
-index 8b8faaf..5d26ed94 100644
+index 24f9f5f..ac0d37a 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -636,7 +636,7 @@ static void __put_nommu_region(struct vm_region *region)
@@ -675,10 +683,10 @@ index 0000000..b323b8a
+ fput(pr);
+}
+#endif /* !CONFIG_MMU */
-aufs4.9 standalone patch
+aufs4.x-rcN standalone patch
diff --git a/fs/dcache.c b/fs/dcache.c
-index df0268c..755fea1 100644
+index 8ca5f09..b1ff5be 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1272,6 +1272,7 @@ void d_walk(struct dentry *parent, void *data,
@@ -687,9 +695,9 @@ index df0268c..755fea1 100644
}
+EXPORT_SYMBOL_GPL(d_walk);
- /*
- * Search for at least 1 mount point in the dentry's subdirs.
-@@ -2855,6 +2856,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
+ struct check_mount {
+ struct vfsmount *mnt;
+@@ -2864,6 +2865,7 @@ void d_exchange(struct dentry *dentry1, struct dentry *dentry2)
write_sequnlock(&rename_lock);
}
@@ -698,7 +706,7 @@ index df0268c..755fea1 100644
/**
* d_ancestor - search for an ancestor
diff --git a/fs/exec.c b/fs/exec.c
-index 4e497b9..e27d323 100644
+index e579466..2566b16 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -104,6 +104,7 @@ bool path_noexec(const struct path *path)
@@ -710,7 +718,7 @@ index 4e497b9..e27d323 100644
#ifdef CONFIG_USELIB
/*
diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 6f42279..04fd33c 100644
+index 9f07008..d60b682 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
@@ -82,6 +82,7 @@ int setfl(int fd, struct file * filp, unsigned long arg)
@@ -722,7 +730,7 @@ index 6f42279..04fd33c 100644
static void f_modown(struct file *filp, struct pid *pid, enum pid_type type,
int force)
diff --git a/fs/file_table.c b/fs/file_table.c
-index ad17e05..ae9f267 100644
+index 6d982b5..9a3c6c8 100644
--- a/fs/file_table.c
+++ b/fs/file_table.c
@@ -147,6 +147,7 @@ struct file *get_empty_filp(void)
@@ -770,10 +778,10 @@ index 9a9ba3a..a3a18d8 100644
/**
* touch_atime - update the access time
diff --git a/fs/namespace.c b/fs/namespace.c
-index e6c234b..8d13f7b 100644
+index 487ba30..642069d 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
-@@ -466,6 +466,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
+@@ -462,6 +462,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
mnt_dec_writers(real_mount(mnt));
preempt_enable();
}
@@ -781,7 +789,7 @@ index e6c234b..8d13f7b 100644
/**
* mnt_drop_write - give up write access to a mount
-@@ -1823,6 +1824,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
+@@ -1872,6 +1873,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
}
return 0;
}
@@ -826,7 +834,7 @@ index fbe3cbe..bdfc61e 100644
int fsnotify_fasync(int fd, struct file *file, int on)
{
diff --git a/fs/notify/mark.c b/fs/notify/mark.c
-index d3fea0b..5fc06ad 100644
+index 6043306..fdb50e4 100644
--- a/fs/notify/mark.c
+++ b/fs/notify/mark.c
@@ -113,6 +113,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
@@ -853,7 +861,7 @@ index d3fea0b..5fc06ad 100644
int fsnotify_add_mark(struct fsnotify_mark *mark, struct fsnotify_group *group,
struct inode *inode, struct vfsmount *mnt, int allow_dups)
-@@ -533,6 +536,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
+@@ -521,6 +524,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
atomic_set(&mark->refcnt, 1);
mark->free_mark = free_mark;
}
@@ -862,7 +870,7 @@ index d3fea0b..5fc06ad 100644
/*
* Destroy all marks in destroy_list, waits for SRCU period to finish before
diff --git a/fs/open.c b/fs/open.c
-index d3ed817..20d2494 100644
+index 9921f70..80d94c0 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -64,6 +64,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
@@ -882,7 +890,7 @@ index d3ed817..20d2494 100644
static int do_dentry_open(struct file *f,
struct inode *inode,
diff --git a/fs/read_write.c b/fs/read_write.c
-index 4052813..7dfd732 100644
+index 670b365..f9f8bb1 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -525,6 +525,7 @@ vfs_readf_t vfs_readf(struct file *file)
@@ -902,10 +910,10 @@ index 4052813..7dfd732 100644
ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t *pos)
{
diff --git a/fs/splice.c b/fs/splice.c
-index 28160a7..98c1902 100644
+index 7899532..c0df111 100644
--- a/fs/splice.c
+++ b/fs/splice.c
-@@ -868,6 +868,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+@@ -869,6 +869,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
return splice_write(pipe, out, ppos, len, flags);
}
@@ -913,7 +921,7 @@ index 28160a7..98c1902 100644
/*
* Attempt to initiate a splice from a file to a pipe.
-@@ -897,6 +898,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
+@@ -898,6 +899,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
return splice_read(in, ppos, pipe, len, flags);
}
@@ -921,11 +929,23 @@ index 28160a7..98c1902 100644
/**
* splice_direct_to_actor - splices data directly between two non-pipes
+diff --git a/fs/sync.c b/fs/sync.c
+index 7a5fa3f..c9b9d46 100644
+--- a/fs/sync.c
++++ b/fs/sync.c
+@@ -38,6 +38,7 @@ int __sync_filesystem(struct super_block *sb, int wait)
+ sb->s_op->sync_fs(sb, wait);
+ return __sync_blockdev(sb->s_bdev, wait);
+ }
++EXPORT_SYMBOL_GPL(__sync_filesystem);
+
+ /*
+ * Write out and wait upon all dirty data associated with this
diff --git a/fs/xattr.c b/fs/xattr.c
-index 2d13b4e..41c2bcd 100644
+index 7e3317c..88910fe 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
-@@ -296,6 +296,7 @@ int __vfs_setxattr_noperm(struct dentry *dentry, const char *name,
+@@ -296,6 +296,7 @@ vfs_getxattr_alloc(struct dentry *dentry, const char *name, char **xattr_value,
*xattr_value = value;
return error;
}
@@ -1156,10 +1176,10 @@ 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 2016-10-09 16:55:36.479367956 +0200
++++ linux/Documentation/filesystems/aufs/design/01intro.txt 2017-03-02 14:24:13.850255360 +0100
@@ -0,0 +1,170 @@
+
-+# Copyright (C) 2005-2016 Junjiro R. Okajima
++# Copyright (C) 2005-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -1330,10 +1350,10 @@ 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 2016-10-09 16:55:36.479367956 +0200
++++ linux/Documentation/filesystems/aufs/design/02struct.txt 2017-03-02 14:24:13.850255360 +0100
@@ -0,0 +1,258 @@
+
-+# Copyright (C) 2005-2016 Junjiro R. Okajima
++# Copyright (C) 2005-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -1592,10 +1612,10 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/02struct.txt li
+For this purpose, use "aumvdown" command in aufs-util.git.
diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/03atomic_open.txt linux/Documentation/filesystems/aufs/design/03atomic_open.txt
--- /usr/share/empty/Documentation/filesystems/aufs/design/03atomic_open.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/03atomic_open.txt 2016-10-09 16:55:36.479367956 +0200
++++ linux/Documentation/filesystems/aufs/design/03atomic_open.txt 2017-03-02 14:24:13.850255360 +0100
@@ -0,0 +1,85 @@
+
-+# Copyright (C) 2015-2016 Junjiro R. Okajima
++# Copyright (C) 2015-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -1681,10 +1701,10 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/03atomic_open.t
+ be implemented in aufs, but not all I am afraid.
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 2016-10-09 16:55:36.479367956 +0200
++++ linux/Documentation/filesystems/aufs/design/03lookup.txt 2017-03-02 14:24:13.850255360 +0100
@@ -0,0 +1,113 @@
+
-+# Copyright (C) 2005-2016 Junjiro R. Okajima
++# Copyright (C) 2005-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -1798,10 +1818,10 @@ 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 2016-10-09 16:55:36.482701377 +0200
++++ linux/Documentation/filesystems/aufs/design/04branch.txt 2017-03-02 14:24:13.850255360 +0100
@@ -0,0 +1,74 @@
+
-+# Copyright (C) 2005-2016 Junjiro R. Okajima
++# Copyright (C) 2005-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -1876,10 +1896,10 @@ 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 2016-10-09 16:55:36.482701377 +0200
++++ linux/Documentation/filesystems/aufs/design/05wbr_policy.txt 2017-03-02 14:24:13.850255360 +0100
@@ -0,0 +1,64 @@
+
-+# Copyright (C) 2005-2016 Junjiro R. Okajima
++# Copyright (C) 2005-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -1944,10 +1964,10 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/05wbr_policy.tx
+ copyup policy.
diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06fhsm.txt linux/Documentation/filesystems/aufs/design/06fhsm.txt
--- /usr/share/empty/Documentation/filesystems/aufs/design/06fhsm.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/06fhsm.txt 2016-10-09 16:55:36.482701377 +0200
++++ linux/Documentation/filesystems/aufs/design/06fhsm.txt 2017-03-02 14:24:13.850255360 +0100
@@ -0,0 +1,120 @@
+
-+# Copyright (C) 2011-2016 Junjiro R. Okajima
++# Copyright (C) 2011-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -2068,10 +2088,10 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06fhsm.txt linu
+should restore the original file state after an error happens.
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 2016-10-09 16:55:36.482701377 +0200
++++ linux/Documentation/filesystems/aufs/design/06mmap.txt 2017-03-02 14:24:13.853588785 +0100
@@ -0,0 +1,72 @@
+
-+# Copyright (C) 2005-2016 Junjiro R. Okajima
++# Copyright (C) 2005-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -2144,10 +2164,10 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06mmap.txt linu
+I have to give up this "looks-smater" approach.
diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06xattr.txt linux/Documentation/filesystems/aufs/design/06xattr.txt
--- /usr/share/empty/Documentation/filesystems/aufs/design/06xattr.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/filesystems/aufs/design/06xattr.txt 2016-10-09 16:55:36.482701377 +0200
++++ linux/Documentation/filesystems/aufs/design/06xattr.txt 2017-03-02 14:24:13.853588785 +0100
@@ -0,0 +1,96 @@
+
-+# Copyright (C) 2014-2016 Junjiro R. Okajima
++# Copyright (C) 2014-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -2244,10 +2264,10 @@ diff -urN /usr/share/empty/Documentation/filesystems/aufs/design/06xattr.txt lin
+now, aufs implements the branch attributes to ignore the error.
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 2016-10-09 16:55:36.482701377 +0200
++++ linux/Documentation/filesystems/aufs/design/07export.txt 2017-03-02 14:24:13.853588785 +0100
@@ -0,0 +1,58 @@
+
-+# Copyright (C) 2005-2016 Junjiro R. Okajima
++# Copyright (C) 2005-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -2306,10 +2326,10 @@ 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 2016-10-09 16:55:36.482701377 +0200
++++ linux/Documentation/filesystems/aufs/design/08shwh.txt 2017-03-02 14:24:13.853588785 +0100
@@ -0,0 +1,52 @@
+
-+# Copyright (C) 2005-2016 Junjiro R. Okajima
++# Copyright (C) 2005-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -2362,10 +2382,10 @@ 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 2016-10-09 16:55:36.482701377 +0200
++++ linux/Documentation/filesystems/aufs/design/10dynop.txt 2017-03-02 14:24:13.853588785 +0100
@@ -0,0 +1,47 @@
+
-+# Copyright (C) 2010-2016 Junjiro R. Okajima
++# Copyright (C) 2010-2017 Junjiro R. Okajima
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
@@ -2810,10 +2830,10 @@ 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 2016-10-09 16:55:36.486034798 +0200
++++ linux/fs/aufs/aufs.h 2017-03-02 14:24:13.853588785 +0100
@@ -0,0 +1,59 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -2873,10 +2893,10 @@ 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 2016-10-09 16:55:38.886097714 +0200
++++ linux/fs/aufs/branch.c 2017-03-02 14:24:13.853588785 +0100
@@ -0,0 +1,1412 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -4289,10 +4309,10 @@ 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 2016-10-09 16:55:36.486034798 +0200
++++ linux/fs/aufs/branch.h 2017-03-02 14:24:13.853588785 +0100
@@ -0,0 +1,309 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -4644,10 +4664,10 @@ 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 2016-12-17 12:28:17.595211562 +0100
-@@ -0,0 +1,1394 @@
++++ linux/fs/aufs/cpup.c 2017-03-02 14:24:13.856922210 +0100
+@@ -0,0 +1,1388 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -5152,12 +5172,6 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
+ char *k;
+ char __user *u;
+ } sym;
-+ struct inode *h_inode = d_inode(h_src);
-+ const struct inode_operations *h_iop = h_inode->i_op;
-+
-+ err = -ENOSYS;
-+ if (unlikely(!h_iop->readlink))
-+ goto out;
+
+ err = -ENOMEM;
+ sym.k = (void *)__get_free_page(GFP_NOFS);
@@ -5167,7 +5181,7 @@ diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
+ /* unnecessary to support mmap_sem since symlink is not mmap-able */
+ old_fs = get_fs();
+ set_fs(KERNEL_DS);
-+ symlen = h_iop->readlink(h_src, sym.u, PATH_MAX);
++ symlen = vfs_readlink(h_src, sym.u, PATH_MAX);
+ err = symlen;
+ set_fs(old_fs);
+
@@ -6042,10 +6056,10 @@ 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 2016-10-09 16:55:36.486034798 +0200
++++ linux/fs/aufs/cpup.h 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,94 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -6140,10 +6154,10 @@ 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 2016-10-09 16:55:38.886097714 +0200
++++ linux/fs/aufs/dbgaufs.c 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,438 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -6582,10 +6596,10 @@ 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 2016-10-09 16:55:36.486034798 +0200
++++ linux/fs/aufs/dbgaufs.h 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,48 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -6634,10 +6648,10 @@ 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 2016-10-09 16:55:38.886097714 +0200
++++ linux/fs/aufs/dcsub.c 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,225 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -6863,10 +6877,10 @@ 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 2016-10-09 16:55:36.486034798 +0200
++++ linux/fs/aufs/dcsub.h 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,136 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -7003,10 +7017,10 @@ 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 2016-10-09 16:55:36.486034798 +0200
++++ linux/fs/aufs/debug.c 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,440 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -7447,10 +7461,10 @@ 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 2016-10-09 16:55:36.486034798 +0200
++++ linux/fs/aufs/debug.h 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,225 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -7676,10 +7690,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/dentry.c 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,1130 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -8810,10 +8824,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/dentry.h 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,255 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -9069,10 +9083,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/dinfo.c 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,553 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -9626,10 +9640,10 @@ 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 2016-10-09 16:55:36.489368218 +0200
++++ linux/fs/aufs/dir.c 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,762 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -10392,10 +10406,10 @@ 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 2016-10-09 16:55:36.489368218 +0200
++++ linux/fs/aufs/dir.h 2017-03-02 14:24:13.856922210 +0100
@@ -0,0 +1,137 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -10533,10 +10547,10 @@ 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 2016-10-09 16:55:36.489368218 +0200
++++ linux/fs/aufs/dynop.c 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,371 @@
+/*
-+ * Copyright (C) 2010-2016 Junjiro R. Okajima
++ * Copyright (C) 2010-2017 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
@@ -10908,10 +10922,10 @@ 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 2016-10-09 16:55:36.489368218 +0200
++++ linux/fs/aufs/dynop.h 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,74 @@
+/*
-+ * Copyright (C) 2010-2016 Junjiro R. Okajima
++ * Copyright (C) 2010-2017 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
@@ -10986,10 +11000,10 @@ 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 2016-12-17 12:28:17.595211562 +0100
++++ linux/fs/aufs/export.c 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,836 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -11826,10 +11840,10 @@ diff -urN /usr/share/empty/fs/aufs/export.c linux/fs/aufs/export.c
+}
diff -urN /usr/share/empty/fs/aufs/fhsm.c linux/fs/aufs/fhsm.c
--- /usr/share/empty/fs/aufs/fhsm.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/fhsm.c 2016-10-09 16:55:36.489368218 +0200
++++ linux/fs/aufs/fhsm.c 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,426 @@
+/*
-+ * Copyright (C) 2011-2016 Junjiro R. Okajima
++ * Copyright (C) 2011-2017 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
@@ -12256,10 +12270,10 @@ diff -urN /usr/share/empty/fs/aufs/fhsm.c linux/fs/aufs/fhsm.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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/file.c 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,857 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -13117,10 +13131,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/file.h 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,294 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -13415,10 +13429,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/finfo.c 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,151 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -13570,10 +13584,10 @@ 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 2016-12-17 12:28:17.595211562 +0100
++++ linux/fs/aufs/f_op.c 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,723 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -14297,10 +14311,10 @@ diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.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 2016-10-09 16:55:36.492701639 +0200
++++ linux/fs/aufs/fstype.h 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,400 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -14701,10 +14715,10 @@ 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 2016-10-09 16:55:36.492701639 +0200
++++ linux/fs/aufs/hfsnotify.c 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,287 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -14868,7 +14882,7 @@ diff -urN /usr/share/empty/fs/aufs/hfsnotify.c linux/fs/aufs/hfsnotify.c
+ struct inode *inode,
+ struct fsnotify_mark *inode_mark,
+ struct fsnotify_mark *vfsmount_mark,
-+ u32 mask, void *data, int data_type,
++ u32 mask, const void *data, int data_type,
+ const unsigned char *file_name, u32 cookie)
+{
+ int err;
@@ -14992,10 +15006,10 @@ 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 2016-10-09 16:55:36.492701639 +0200
++++ linux/fs/aufs/hfsplus.c 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,56 @@
+/*
-+ * Copyright (C) 2010-2016 Junjiro R. Okajima
++ * Copyright (C) 2010-2017 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
@@ -15052,10 +15066,10 @@ 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 2016-10-09 16:55:36.492701639 +0200
++++ linux/fs/aufs/hnotify.c 2017-03-02 14:24:13.860255635 +0100
@@ -0,0 +1,723 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -15779,10 +15793,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/iinfo.c 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,285 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -16068,10 +16082,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/inode.c 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,519 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -16591,10 +16605,10 @@ 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 2016-12-17 12:28:17.595211562 +0100
-@@ -0,0 +1,691 @@
++++ linux/fs/aufs/inode.h 2017-03-02 14:24:13.863589061 +0100
+@@ -0,0 +1,692 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -16805,7 +16819,8 @@ diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
+int au_pin_and_icpup(struct dentry *dentry, struct iattr *ia,
+ struct au_icpup_args *a);
+
-+int au_h_path_getattr(struct dentry *dentry, int force, struct path *h_path);
++int au_h_path_getattr(struct dentry *dentry, int force, struct path *h_path,
++ int locked);
+
+/* i_op_add.c */
+int au_may_add(struct dentry *dentry, aufs_bindex_t bindex,
@@ -17286,10 +17301,10 @@ 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 2016-10-09 16:55:36.492701639 +0200
++++ linux/fs/aufs/ioctl.c 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,219 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -17509,10 +17524,10 @@ 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 2016-12-17 12:28:17.595211562 +0100
++++ linux/fs/aufs/i_op_add.c 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,928 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -18441,10 +18456,10 @@ 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 2016-12-17 12:28:17.595211562 +0100
-@@ -0,0 +1,1444 @@
++++ linux/fs/aufs/i_op.c 2017-03-02 14:24:13.860255635 +0100
+@@ -0,0 +1,1448 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -19577,7 +19592,8 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ * returns zero or negative (an error).
+ * @dentry will be read-locked in success.
+ */
-+int au_h_path_getattr(struct dentry *dentry, int force, struct path *h_path)
++int au_h_path_getattr(struct dentry *dentry, int force, struct path *h_path,
++ int locked)
+{
+ int err;
+ unsigned int mnt_flags, sigen;
@@ -19594,6 +19610,9 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ mnt_flags = au_mntflags(sb);
+ udba_none = !!au_opt_test(mnt_flags, UDBA_NONE);
+
++ if (unlikely(locked))
++ goto body; /* skip locking dinfo */
++
+ /* support fstat(2) */
+ if (!d_unlinked(dentry) && !udba_none) {
+ sigen = au_sigen(sb);
@@ -19621,6 +19640,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ } else
+ di_read_lock_child(dentry, AuLock_IR);
+
++body:
+ inode = d_inode(dentry);
+ bindex = au_ibtop(inode);
+ h_path->mnt = au_sbr_mnt(sb, bindex);
@@ -19659,7 +19679,7 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
+ if (unlikely(err))
+ goto out;
-+ err = au_h_path_getattr(dentry, /*force*/0, &h_path);
++ err = au_h_path_getattr(dentry, /*force*/0, &h_path, /*locked*/0);
+ if (unlikely(err))
+ goto out_si;
+ if (unlikely(!h_path.dentry))
@@ -19837,7 +19857,6 @@ diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
+ .listxattr = aufs_listxattr,
+#endif
+
-+ .readlink = generic_readlink,
+ .get_link = aufs_get_link,
+
+ /* .update_time = aufs_update_time */
@@ -19889,10 +19908,10 @@ 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 2016-10-09 16:55:36.492701639 +0200
++++ linux/fs/aufs/i_op_del.c 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,511 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -20404,10 +20423,10 @@ 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 2016-12-17 12:28:17.595211562 +0100
++++ linux/fs/aufs/i_op_ren.c 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,1165 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -21762,10 +21781,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/loop.c 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,147 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -21913,10 +21932,10 @@ 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 2016-10-09 16:55:36.492701639 +0200
++++ linux/fs/aufs/loop.h 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,52 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -22051,10 +22070,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/module.c 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,333 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -22388,10 +22407,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/module.h 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,156 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -22548,10 +22567,10 @@ 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/mvdown.c linux/fs/aufs/mvdown.c
--- /usr/share/empty/fs/aufs/mvdown.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/mvdown.c 2016-10-09 16:55:36.492701639 +0200
++++ linux/fs/aufs/mvdown.c 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,704 @@
+/*
-+ * Copyright (C) 2011-2016 Junjiro R. Okajima
++ * Copyright (C) 2011-2017 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
@@ -23256,10 +23275,10 @@ diff -urN /usr/share/empty/fs/aufs/mvdown.c linux/fs/aufs/mvdown.c
+}
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 2016-12-17 12:28:17.598545045 +0100
-@@ -0,0 +1,1870 @@
++++ linux/fs/aufs/opts.c 2017-03-02 14:24:13.863589061 +0100
+@@ -0,0 +1,1848 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -23698,28 +23717,6 @@ diff -urN /usr/share/empty/fs/aufs/opts.c linux/fs/aufs/opts.c
+ {-1, NULL}
+};
+
-+/*
-+ * cf. linux/lib/parser.c and cmdline.c
-+ * gave up calling memparse() since it uses simple_strtoull() instead of
-+ * kstrto...().
-+ */
-+static int noinline_for_stack
-+au_match_ull(substring_t *s, unsigned long long *result)
-+{
-+ int err;
-+ unsigned int len;
-+ char a[32];
-+
-+ err = -ERANGE;
-+ len = s->to - s->from;
-+ if (len + 1 <= sizeof(a)) {
-+ memcpy(a, s->from, len);
-+ a[len] = '\0';
-+ err = kstrtoull(a, 0, result);
-+ }
-+ return err;
-+}
-+
+static int au_wbr_mfs_wmark(substring_t *arg, char *str,
+ struct au_opt_wbr_create *create)
+{
@@ -23727,7 +23724,7 @@ diff -urN /usr/share/empty/fs/aufs/opts.c linux/fs/aufs/opts.c
+ unsigned long long ull;
+
+ err = 0;
-+ if (!au_match_ull(arg, &ull))
++ if (!match_u64(arg, &ull))
+ create->mfsrr_watermark = ull;
+ else {
+ pr_err("bad integer in %s\n", str);
@@ -25130,10 +25127,10 @@ 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 2016-12-17 12:28:17.598545045 +0100
++++ linux/fs/aufs/opts.h 2017-03-02 14:24:13.863589061 +0100
@@ -0,0 +1,213 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -25347,10 +25344,10 @@ 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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/plink.c 2017-03-02 14:24:13.866922487 +0100
@@ -0,0 +1,514 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -25865,10 +25862,10 @@ 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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/poll.c 2017-03-02 14:24:13.866922487 +0100
@@ -0,0 +1,52 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -25921,10 +25918,10 @@ diff -urN /usr/share/empty/fs/aufs/poll.c linux/fs/aufs/poll.c
+}
diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c
--- /usr/share/empty/fs/aufs/posix_acl.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/posix_acl.c 2016-12-17 12:28:17.598545045 +0100
-@@ -0,0 +1,98 @@
++++ linux/fs/aufs/posix_acl.c 2017-03-02 14:24:13.866922487 +0100
+@@ -0,0 +1,102 @@
+/*
-+ * Copyright (C) 2014-2016 Junjiro R. Okajima
++ * Copyright (C) 2014-2017 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
@@ -25974,6 +25971,8 @@ diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c
+
+ /* always topmost only */
+ acl = get_acl(h_inode, type);
++ if (!IS_ERR_OR_NULL(acl))
++ set_cached_acl(inode, type, acl);
+
+out:
+ ii_read_unlock(inode);
@@ -26015,18 +26014,20 @@ diff -urN /usr/share/empty/fs/aufs/posix_acl.c linux/fs/aufs/posix_acl.c
+ ssz = au_sxattr(dentry, inode, &arg);
+ dput(dentry);
+ err = ssz;
-+ if (ssz >= 0)
++ if (ssz >= 0) {
+ err = 0;
++ set_cached_acl(inode, type, acl);
++ }
+
+out:
+ return err;
+}
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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/procfs.c 2017-03-02 14:24:13.866922487 +0100
@@ -0,0 +1,169 @@
+/*
-+ * Copyright (C) 2010-2016 Junjiro R. Okajima
++ * Copyright (C) 2010-2017 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
@@ -26196,10 +26197,10 @@ 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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/rdu.c 2017-03-02 14:24:13.866922487 +0100
@@ -0,0 +1,381 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -26581,10 +26582,10 @@ 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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/rwsem.h 2017-03-02 14:24:13.866922487 +0100
@@ -0,0 +1,198 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -26783,10 +26784,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
-@@ -0,0 +1,355 @@
++++ linux/fs/aufs/sbinfo.c 2017-03-02 14:24:13.866922487 +0100
+@@ -0,0 +1,304 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -26832,10 +26833,6 @@ diff -urN /usr/share/empty/fs/aufs/sbinfo.c linux/fs/aufs/sbinfo.c
+ au_rw_write_unlock(&sbinfo->si_rwsem);
+
+ au_delayed_kfree(sbinfo->si_branch);
-+ for (i = 0; i < AU_NPIDMAP; i++)
-+ if (sbinfo->au_si_pid.pid_bitmap[i])
-+ au_delayed_kfree(sbinfo->au_si_pid.pid_bitmap[i]);
-+ mutex_destroy(&sbinfo->au_si_pid.pid_mtx);
+ mutex_destroy(&sbinfo->si_xib_mtx);
+ AuRwDestroy(&sbinfo->si_rwsem);
+
@@ -26863,7 +26860,6 @@ diff -urN /usr/share/empty/fs/aufs/sbinfo.c linux/fs/aufs/sbinfo.c
+
+ au_nwt_init(&sbinfo->si_nowait);
+ au_rw_init_wlock(&sbinfo->si_rwsem);
-+ mutex_init(&sbinfo->au_si_pid.pid_mtx);
+
+ percpu_counter_init(&sbinfo->si_ninodes, 0, GFP_NOFS);
+ percpu_counter_init(&sbinfo->si_nfiles, 0, GFP_NOFS);
@@ -27094,58 +27090,12 @@ diff -urN /usr/share/empty/fs/aufs/sbinfo.c linux/fs/aufs/sbinfo.c
+ di_write_unlock2(d1, d2);
+ si_read_unlock(d1->d_sb);
+}
-+
-+/* ---------------------------------------------------------------------- */
-+
-+static void si_pid_alloc(struct au_si_pid *au_si_pid, int idx)
-+{
-+ unsigned long *p;
-+
-+ BUILD_BUG_ON(sizeof(unsigned long) !=
-+ sizeof(*au_si_pid->pid_bitmap));
-+
-+ mutex_lock(&au_si_pid->pid_mtx);
-+ p = au_si_pid->pid_bitmap[idx];
-+ while (!p) {
-+ /*
-+ * bad approach.
-+ * but keeping 'si_pid_set()' void is more important.
-+ */
-+ p = kcalloc(BITS_TO_LONGS(AU_PIDSTEP),
-+ sizeof(*au_si_pid->pid_bitmap),
-+ GFP_NOFS);
-+ if (p)
-+ break;
-+ cond_resched();
-+ }
-+ au_si_pid->pid_bitmap[idx] = p;
-+ mutex_unlock(&au_si_pid->pid_mtx);
-+}
-+
-+void si_pid_set(struct super_block *sb)
-+{
-+ pid_t bit;
-+ int idx;
-+ unsigned long *bitmap;
-+ struct au_si_pid *au_si_pid;
-+
-+ si_pid_idx_bit(&idx, &bit);
-+ au_si_pid = &au_sbi(sb)->au_si_pid;
-+ bitmap = au_si_pid->pid_bitmap[idx];
-+ if (!bitmap) {
-+ si_pid_alloc(au_si_pid, idx);
-+ bitmap = au_si_pid->pid_bitmap[idx];
-+ }
-+ AuDebugOn(test_bit(bit, bitmap));
-+ set_bit(bit, bitmap);
-+ /* smp_mb(); */
-+}
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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/spl.h 2017-03-02 14:24:13.866922487 +0100
@@ -0,0 +1,113 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -27259,10 +27209,10 @@ 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 2016-12-17 12:28:17.598545045 +0100
-@@ -0,0 +1,1046 @@
++++ linux/fs/aufs/super.c 2017-03-02 14:24:13.866922487 +0100
+@@ -0,0 +1,1044 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -27710,12 +27660,10 @@ diff -urN /usr/share/empty/fs/aufs/super.c linux/fs/aufs/super.c
+ 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 */
-+ }
++ e = vfsub_sync_filesystem(h_sb, wait);
++ if (unlikely(e && !err))
++ err = e;
++ /* go on even if an error happens */
+ }
+ si_read_unlock(sb);
+
@@ -28309,10 +28257,10 @@ 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 2016-12-17 12:28:17.598545045 +0100
-@@ -0,0 +1,639 @@
++++ linux/fs/aufs/super.h 2017-03-02 14:24:13.866922487 +0100
+@@ -0,0 +1,617 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -28392,13 +28340,6 @@ diff -urN /usr/share/empty/fs/aufs/super.h linux/fs/aufs/super.h
+#endif
+};
+
-+#define AU_PIDSTEP (int)(BITS_TO_LONGS(PID_MAX_DEFAULT) * BITS_PER_LONG)
-+#define AU_NPIDMAP (int)DIV_ROUND_UP(PID_MAX_LIMIT, AU_PIDSTEP)
-+struct au_si_pid {
-+ unsigned long *pid_bitmap[AU_NPIDMAP];
-+ struct mutex pid_mtx;
-+};
-+
+struct au_branch;
+struct au_sbinfo {
+ /* nowait tasks in the system-wide workqueue */
@@ -28410,9 +28351,6 @@ diff -urN /usr/share/empty/fs/aufs/super.h linux/fs/aufs/super.h
+ */
+ struct au_rwsem si_rwsem;
+
-+ /* prevent recursive locking in deleting inode */
-+ struct au_si_pid au_si_pid;
-+
+ /*
+ * dirty approach to protect sb->sb_inodes and ->s_files (gone) from
+ * remount.
@@ -28754,42 +28692,30 @@ diff -urN /usr/share/empty/fs/aufs/super.h linux/fs/aufs/super.h
+
+/* ---------------------------------------------------------------------- */
+
-+static inline void si_pid_idx_bit(int *idx, pid_t *bit)
-+{
-+ /* the origin of pid is 1, but the bitmap's is 0 */
-+ *bit = current->pid - 1;
-+ *idx = *bit / AU_PIDSTEP;
-+ *bit %= AU_PIDSTEP;
-+}
++/* current->atomic_flags */
++/* this value should never corrupt the ones defined in linux/sched.h */
++#define PFA_AUFS 7
++
++TASK_PFA_TEST(AUFS, test_aufs) /* task_test_aufs */
++TASK_PFA_SET(AUFS, aufs) /* task_set_aufs */
++TASK_PFA_CLEAR(AUFS, aufs) /* task_clear_aufs */
+
+static inline int si_pid_test(struct super_block *sb)
+{
-+ pid_t bit;
-+ int idx;
-+ unsigned long *bitmap;
-+
-+ si_pid_idx_bit(&idx, &bit);
-+ bitmap = au_sbi(sb)->au_si_pid.pid_bitmap[idx];
-+ if (bitmap)
-+ return test_bit(bit, bitmap);
-+ return 0;
++ return !!task_test_aufs(current);
+}
+
+static inline void si_pid_clr(struct super_block *sb)
+{
-+ pid_t bit;
-+ int idx;
-+ unsigned long *bitmap;
-+
-+ si_pid_idx_bit(&idx, &bit);
-+ bitmap = au_sbi(sb)->au_si_pid.pid_bitmap[idx];
-+ BUG_ON(!bitmap);
-+ AuDebugOn(!test_bit(bit, bitmap));
-+ clear_bit(bit, bitmap);
-+ /* smp_mb(); */
++ AuDebugOn(!task_test_aufs(current));
++ task_clear_aufs(current);
+}
+
-+void si_pid_set(struct super_block *sb);
++static inline void si_pid_set(struct super_block *sb)
++{
++ AuDebugOn(task_test_aufs(current));
++ task_set_aufs(current);
++}
+
+/* ---------------------------------------------------------------------- */
+
@@ -28952,10 +28878,10 @@ 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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/sysaufs.c 2017-03-02 14:24:13.866922487 +0100
@@ -0,0 +1,104 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -29060,10 +28986,10 @@ 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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/sysaufs.h 2017-03-02 14:24:13.866922487 +0100
@@ -0,0 +1,101 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -29165,10 +29091,10 @@ 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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/sysfs.c 2017-03-02 14:24:13.866922487 +0100
@@ -0,0 +1,376 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -29545,10 +29471,10 @@ 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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/sysrq.c 2017-03-02 14:24:13.866922487 +0100
@@ -0,0 +1,157 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -29706,10 +29632,10 @@ 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 2016-10-09 16:55:38.889431135 +0200
++++ linux/fs/aufs/vdir.c 2017-03-02 14:24:13.866922487 +0100
@@ -0,0 +1,900 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -30610,10 +30536,10 @@ 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 2016-12-17 12:28:17.598545045 +0100
-@@ -0,0 +1,886 @@
++++ linux/fs/aufs/vfsub.c 2017-03-02 14:24:13.870255912 +0100
+@@ -0,0 +1,899 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -30656,6 +30582,19 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.c linux/fs/aufs/vfsub.c
+}
+#endif
+
++int vfsub_sync_filesystem(struct super_block *h_sb, int wait)
++{
++ int err;
++
++ lockdep_off();
++ down_read(&h_sb->s_umount);
++ err = __sync_filesystem(h_sb, wait);
++ up_read(&h_sb->s_umount);
++ lockdep_on();
++
++ return err;
++}
++
+/* ---------------------------------------------------------------------- */
+
+int vfsub_update_h_iattr(struct path *h_path, int *did)
@@ -31500,10 +31439,10 @@ 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 2016-12-17 12:28:17.598545045 +0100
-@@ -0,0 +1,316 @@
++++ linux/fs/aufs/vfsub.h 2017-03-02 14:24:13.870255912 +0100
+@@ -0,0 +1,318 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -31587,6 +31526,8 @@ diff -urN /usr/share/empty/fs/aufs/vfsub.h linux/fs/aufs/vfsub.h
+AuStubInt0(vfsub_test_mntns, struct vfsmount *mnt, struct super_block *h_sb);
+#endif
+
++int vfsub_sync_filesystem(struct super_block *h_sb, int wait);
++
+/* ---------------------------------------------------------------------- */
+
+int vfsub_update_h_iattr(struct path *h_path, int *did);
@@ -31820,10 +31761,10 @@ 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 2016-12-17 12:28:17.598545045 +0100
++++ linux/fs/aufs/wbr_policy.c 2017-03-02 14:24:13.870255912 +0100
@@ -0,0 +1,830 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -32654,10 +32595,10 @@ 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 2016-12-17 12:28:17.598545045 +0100
++++ linux/fs/aufs/whout.c 2017-03-02 14:24:13.870255912 +0100
@@ -0,0 +1,1061 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -33719,10 +33660,10 @@ 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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/whout.h 2017-03-02 14:24:13.870255912 +0100
@@ -0,0 +1,85 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -33808,10 +33749,10 @@ 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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/wkq.c 2017-03-02 14:24:13.870255912 +0100
@@ -0,0 +1,213 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -34025,10 +33966,10 @@ 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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/wkq.h 2017-03-02 14:24:13.870255912 +0100
@@ -0,0 +1,93 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -34122,10 +34063,10 @@ 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/xattr.c linux/fs/aufs/xattr.c
--- /usr/share/empty/fs/aufs/xattr.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/xattr.c 2016-12-17 12:28:17.598545045 +0100
-@@ -0,0 +1,332 @@
++++ linux/fs/aufs/xattr.c 2017-03-02 14:24:13.870255912 +0100
+@@ -0,0 +1,357 @@
+/*
-+ * Copyright (C) 2014-2016 Junjiro R. Okajima
++ * Copyright (C) 2014-2017 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
@@ -34145,6 +34086,8 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
+ * handling xattr functions
+ */
+
++#include <linux/fs.h>
++#include <linux/posix_acl_xattr.h>
+#include <linux/xattr.h>
+#include "aufs.h"
+
@@ -34317,6 +34260,19 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
+
+/* ---------------------------------------------------------------------- */
+
++static int au_smack_reentering(struct super_block *sb)
++{
++#if IS_ENABLED(CONFIG_SECURITY_SMACK)
++ /*
++ * as a part of lookup, smack_d_instantiate() is called, and it calls
++ * i_op->getxattr(). ouch.
++ */
++ return si_pid_test(sb);
++#else
++ return 0;
++#endif
++}
++
+enum {
+ AU_XATTR_LIST,
+ AU_XATTR_GET
@@ -34340,14 +34296,18 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
+static ssize_t au_lgxattr(struct dentry *dentry, struct au_lgxattr *arg)
+{
+ ssize_t err;
++ int reenter;
+ struct path h_path;
+ struct super_block *sb;
+
+ sb = dentry->d_sb;
-+ err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
-+ if (unlikely(err))
-+ goto out;
-+ err = au_h_path_getattr(dentry, /*force*/1, &h_path);
++ reenter = au_smack_reentering(sb);
++ if (!reenter) {
++ err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
++ if (unlikely(err))
++ goto out;
++ }
++ err = au_h_path_getattr(dentry, /*force*/1, &h_path, reenter);
+ if (unlikely(err))
+ goto out_si;
+ if (unlikely(!h_path.dentry))
@@ -34369,9 +34329,11 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
+ }
+
+out_di:
-+ di_read_unlock(dentry, AuLock_IR);
++ if (!reenter)
++ di_read_unlock(dentry, AuLock_IR);
+out_si:
-+ si_read_unlock(sb);
++ if (!reenter)
++ si_read_unlock(sb);
+out:
+ AuTraceErr(err);
+ return err;
@@ -34448,7 +34410,11 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
+};
+
+static const struct xattr_handler *au_xattr_handlers[] = {
-+ &au_xattr_handler,
++#ifdef CONFIG_FS_POSIX_ACL
++ &posix_acl_access_xattr_handler,
++ &posix_acl_default_xattr_handler,
++#endif
++ &au_xattr_handler, /* must be last */
+ NULL
+};
+
@@ -34458,10 +34424,10 @@ diff -urN /usr/share/empty/fs/aufs/xattr.c linux/fs/aufs/xattr.c
+}
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 2016-10-09 16:55:36.496035060 +0200
++++ linux/fs/aufs/xino.c 2017-03-02 14:24:13.870255912 +0100
@@ -0,0 +1,1318 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -35780,10 +35746,10 @@ diff -urN /usr/share/empty/fs/aufs/xino.c linux/fs/aufs/xino.c
+}
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 2016-12-17 12:28:38.769494865 +0100
++++ linux/include/uapi/linux/aufs_type.h 2017-03-02 14:24:13.870255912 +0100
@@ -0,0 +1,419 @@
+/*
-+ * Copyright (C) 2005-2016 Junjiro R. Okajima
++ * Copyright (C) 2005-2017 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
@@ -35823,7 +35789,7 @@ diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/lin
+
+#include <linux/limits.h>
+
-+#define AUFS_VERSION "4.9-20161219"
++#define AUFS_VERSION "4.x-rcN-20170220"
+
+/* todo? move this to linux-2.6.19/include/magic.h */
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
@@ -36201,10 +36167,10 @@ diff -urN /usr/share/empty/include/uapi/linux/aufs_type.h linux/include/uapi/lin
+#define AUFS_CTL_FHSM_FD _IOW(AuCtlType, AuCtl_FHSM_FD, int)
+
+#endif /* __AUFS_TYPE_H__ */
-aufs4.9 loopback patch
+aufs4.x-rcN loopback patch
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
-index 6ee9235..f64161f 100644
+index b63f68b..c0f4b8c 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -551,7 +551,7 @@ static int do_req_filebacked(struct loop_device *lo, struct request *rq)
@@ -36344,7 +36310,7 @@ index 6ee9235..f64161f 100644
out:
/* This is safe: open() is still holding a reference. */
module_put(THIS_MODULE);
-@@ -1021,6 +1054,7 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode,
+@@ -1021,6 +1054,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;
@@ -36383,7 +36349,7 @@ index fb2237c..c3888c5 100644
unsigned lo_blocksize;
void *key_data;
diff --git a/fs/aufs/f_op.c b/fs/aufs/f_op.c
-index d2a9a1d..d7519d0 100644
+index 6da0f10..d211f9e 100644
--- a/fs/aufs/f_op.c
+++ b/fs/aufs/f_op.c
@@ -351,7 +351,7 @@ static ssize_t aufs_read_iter(struct kiocb *kio, struct iov_iter *iov_iter)
@@ -36396,7 +36362,7 @@ index d2a9a1d..d7519d0 100644
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 c3ca50f..a3dbdaf 100644
+index 61e9197..9910bea 100644
--- a/fs/aufs/loop.c
+++ b/fs/aufs/loop.c
@@ -132,3 +132,19 @@ void au_loopback_fin(void)
@@ -36420,10 +36386,10 @@ index c3ca50f..a3dbdaf 100644
+ return f;
+}
diff --git a/fs/aufs/loop.h b/fs/aufs/loop.h
-index 48bf070..66afec7 100644
+index e2df495..36e5052 100644
--- a/fs/aufs/loop.h
+++ b/fs/aufs/loop.h
-@@ -25,7 +25,11 @@
+@@ -25,7 +25,11 @@ void au_warn_loopback(struct super_block *h_sb);
int au_loopback_init(void);
void au_loopback_fin(void);
@@ -36435,7 +36401,7 @@ index 48bf070..66afec7 100644
AuStubInt0(au_test_loopback_overlap, struct super_block *sb,
struct dentry *h_adding)
AuStubInt0(au_test_loopback_kthread, void)
-@@ -33,6 +37,8 @@
+@@ -33,6 +37,8 @@ AuStubVoid(au_warn_loopback, struct super_block *h_sb)
AuStubInt0(au_loopback_init, void)
AuStubVoid(au_loopback_fin, void)
@@ -36445,10 +36411,10 @@ index 48bf070..66afec7 100644
#endif /* __KERNEL__ */
diff --git a/fs/aufs/super.c b/fs/aufs/super.c
-index 0082ce4..5085378 100644
+index 0e9bbc3..b90d52f 100644
--- a/fs/aufs/super.c
+++ b/fs/aufs/super.c
-@@ -839,7 +839,10 @@ static int aufs_remount_fs(struct super_block *sb, int *flags, char *data)
+@@ -837,7 +837,10 @@ static const struct super_operations aufs_sop = {
.statfs = aufs_statfs,
.put_super = aufs_put_super,
.sync_fs = aufs_sync_fs,
@@ -36461,10 +36427,10 @@ index 0082ce4..5085378 100644
/* ---------------------------------------------------------------------- */
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index a903bc3..db820e3 100644
+index a808c7c..214b51f 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
-@@ -1823,6 +1823,10 @@ struct super_operations {
+@@ -1791,6 +1791,10 @@ struct super_operations {
struct shrink_control *);
long (*free_cached_objects)(struct super_block *,
struct shrink_control *);
diff --git a/kernel-multiarch.config b/kernel-multiarch.config
index e0ec68b..dbf671e 100644
--- a/kernel-multiarch.config
+++ b/kernel-multiarch.config
@@ -19,6 +19,7 @@ GCC_PLUGIN_CYC_COMPLEXITY all=n
GCC_PLUGIN_LATENT_ENTROPY all=n
GEN_RTC all=n
HAVE_STACK_VALIDATION all=y
+INTEL_RDT_A all=y
IOSF_MBI all=m
IOSF_MBI_DEBUG all=y
KEXEC_FILE all=y
@@ -26,13 +27,13 @@ KEXEC_VERIFY_SIG all=n
KVM_DEBUG_FS all=n
KVM_DEVICE_ASSIGNMENT all=y
MCE_AMD_INJ all=m
-MLX_PLATFORM all=m
PERF_EVENTS_AMD_POWER all=m
PERF_EVENTS_INTEL_CSTATE all=m
PERF_EVENTS_INTEL_RAPL all=m
PERF_EVENTS_INTEL_UNCORE all=m
PUNIT_ATOM_DEBUG all=m
RANDOMIZE_MEMORY all=y
+SCHED_MC_PRIO all=y
STATIC_KEYS_SELFTEST all=y
VMAP_STACK all=y
X86_AMD_PLATFORM_DEVICE all=y
@@ -49,8 +50,12 @@ LBDAF i386=y ppc=y sparc=y sparc64=
BLK_DEV_BSG all=y
BLK_DEV_BSGLIB all=y
BLK_DEV_INTEGRITY all=y
+BLK_DEV_ZONED all=y
BLK_DEV_THROTTLING all=y
BLK_CMDLINE_PARSER all=y
+BLK_WBT all=y
+BLK_WBT_SQ all=y
+BLK_WBT_MQ all=y
#- file block/partitions/Kconfig goes here
#- file block/Kconfig.iosched goes here
@@ -480,8 +485,9 @@ DEV_COREDUMP all=y
DEBUG_DRIVER all=n
DEBUG_DEVRES all=n
DEBUG_TEST_DRIVER_REMOVE all=n
+#- file drivers/base/test/Kconfig goes here
#- file drivers/base/regmap/Kconfig goes here
-FENCE_TRACE all=n
+DMA_FENCE_TRACE all=n
DMA_CMA all=y
#- Default contiguous memory area size:
CMA_SIZE_MBYTES all=16
@@ -497,6 +503,11 @@ CMA_ALIGNMENT all=8
REGMAP_SPMI all=m
#-
+#- *** FILE: drivers/base/test/Kconfig ***
+#-
+TEST_ASYNC_DRIVER_PROBE all=m
+
+#-
#- *** FILE: drivers/bcma/Kconfig ***
#-
BCMA_POSSIBLE all=y
@@ -728,6 +739,7 @@ IPMI_POWEROFF all=m
SYNCLINK_CS all=m
CARDMAN_4000 all=m
CARDMAN_4040 all=m
+SCR24X all=m
IPWIRELESS all=m
#-
@@ -787,6 +799,17 @@ COMMON_CLK_OXNAS all=n
#- file drivers/clk/uniphier/Kconfig goes here
#-
+#- *** FILE: drivers/clk/mediatek/Kconfig ***
+#-
+COMMON_CLK_MT2701 all=y
+COMMON_CLK_MT2701_MMSYS all=y
+COMMON_CLK_MT2701_IMGSYS all=y
+COMMON_CLK_MT2701_VDECSYS all=y
+COMMON_CLK_MT2701_HIFSYS all=y
+COMMON_CLK_MT2701_ETHSYS all=y
+COMMON_CLK_MT2701_BDPSYS all=y
+
+#-
#- *** FILE: drivers/clk/sunxi-ng/Kconfig ***
#-
SUNXI_CCU all=y
@@ -856,6 +879,7 @@ CRYPTO_DEV_CCP all=y
#- file drivers/crypto/qat/Kconfig goes here
#- file drivers/crypto/vmx/Kconfig goes here
#- file drivers/crypto/chelsio/Kconfig goes here
+#- file drivers/crypto/virtio/Kconfig goes here
#-
#- *** FILE: drivers/crypto/ccp/Kconfig ***
@@ -879,6 +903,11 @@ CRYPTO_DEV_QAT_C3XXXVF all=m
CRYPTO_DEV_QAT_C62XVF all=m
#-
+#- *** FILE: drivers/crypto/virtio/Kconfig ***
+#-
+CRYPTO_DEV_VIRTIO all=m
+
+#-
#- *** FILE: drivers/dax/Kconfig ***
#-
DEV_DAX all=m
@@ -1037,6 +1066,7 @@ FW_CFG_SYSFS_CMDLINE all=y
#- file drivers/firmware/google/Kconfig goes here
#- file drivers/firmware/efi/Kconfig goes here
#- file drivers/firmware/meson/Kconfig goes here
+#- file drivers/firmware/tegra/Kconfig goes here
#-
#- *** FILE: drivers/firmware/efi/Kconfig ***
@@ -1182,6 +1212,9 @@ DRM_VGEM all=m
#- file drivers/gpu/drm/arc/Kconfig goes here
#- file drivers/gpu/drm/hisilicon/Kconfig goes here
#- file drivers/gpu/drm/mediatek/Kconfig goes here
+#- file drivers/gpu/drm/zte/Kconfig goes here
+#- file drivers/gpu/drm/mxsfb/Kconfig goes here
+#- file drivers/gpu/drm/meson/Kconfig goes here
DRM_LEGACY all=n
DRM_TDFX all=m
DRM_R128 all=m
@@ -1245,6 +1278,11 @@ DRM_GMA600 all=y
DRM_GMA3600 all=y
#-
+#- *** FILE: drivers/gpu/drm/hisilicon/hibmc/Kconfig ***
+#-
+DRM_HISI_HIBMC all=m
+
+#-
#- *** FILE: drivers/gpu/drm/i2c/Kconfig ***
#-
DRM_I2C_CH7006 all=m
@@ -1255,9 +1293,12 @@ DRM_I2C_NXP_TDA998X all=m
#- *** FILE: drivers/gpu/drm/i915/Kconfig ***
#-
DRM_I915 i386=m x86_64=m
-DRM_I915_PRELIMINARY_HW_SUPPORT all=y
+DRM_I915_ALPHA_SUPPORT all=n
+DRM_I915_CAPTURE_ERROR all=y
+DRM_I915_COMPRESS_ERROR all=y
DRM_I915_USERPTR all=y
DRM_I915_GVT all=y
+DRM_I915_GVT_KVMGT all=m
#- file drivers/gpu/drm/i915/Kconfig.debug goes here
#-
@@ -1359,6 +1400,7 @@ LOGIRUMBLEPAD2_FF all=y
LOGIG940_FF all=y
LOGIWHEELS_FF all=y
HID_MAGICMOUSE all=m
+HID_MAYFLASH all=m
HID_MICROSOFT all=m
HID_MONTEREY all=m
HID_MULTITOUCH all=m
@@ -1394,6 +1436,7 @@ HID_TOPSEED all=m
HID_THINGM all=m
HID_THRUSTMASTER all=m
THRUSTMASTER_FF all=y
+HID_UDRAW_PS3 all=m
HID_WACOM all=m
HID_WIIMOTE all=m
HID_XINMO all=m
@@ -1524,6 +1567,7 @@ SENSORS_MAX6650 all=m
SENSORS_MAX6697 all=m
SENSORS_MAX31790 all=m
SENSORS_MCP3021 all=m
+SENSORS_TC654 all=m
SENSORS_MENF21BMC_HWMON all=m
SENSORS_ADCXX all=m
SENSORS_LM63 all=m
@@ -1578,6 +1622,7 @@ SENSORS_TC74 all=m
SENSORS_THMC50 all=m
SENSORS_TMP102 all=m
SENSORS_TMP103 all=m
+SENSORS_TMP108 all=m
SENSORS_TMP401 all=m
SENSORS_TMP421 all=m
SENSORS_VIA_CPUTEMP all=m
@@ -1639,6 +1684,7 @@ STM all=m
STM_DUMMY all=n
STM_SOURCE_CONSOLE all=m
STM_SOURCE_HEARTBEAT all=m
+STM_SOURCE_FTRACE all=m
#-
#- *** FILE: drivers/i2c/Kconfig ***
@@ -1720,6 +1766,7 @@ I2C_TINY_USB all=m
I2C_VIPERBOARD all=m
#- Other I2C/SMBus bus drivers
I2C_ELEKTOR i386=m
+I2C_MLXCPLD all=m
I2C_PCA_ISA all=m
I2C_CROS_EC_TUNNEL all=m
SCx200_ACB i386=m
@@ -1732,6 +1779,7 @@ I2C_MUX_PCA9541 all=m
I2C_MUX_PCA954x all=m
I2C_MUX_PINCTRL all=m
I2C_MUX_REG all=m
+I2C_MUX_MLXCPLD all=m
#-
#- *** FILE: drivers/ide/Kconfig ***
@@ -1810,7 +1858,6 @@ BLK_DEV_UMC8672 alpha=m i386=m
#- *** FILE: drivers/idle/Kconfig ***
#-
INTEL_IDLE all=n i386=y x86_64=y
-I7300_IDLE x86_64=m
#-
#- *** FILE: drivers/iio/Kconfig ***
@@ -1827,6 +1874,7 @@ IIO_SW_TRIGGER all=m
#- file drivers/iio/amplifiers/Kconfig goes here
#- file drivers/iio/chemical/Kconfig goes here
#- file drivers/iio/common/Kconfig goes here
+#- file drivers/iio/counter/Kconfig goes here
#- file drivers/iio/dac/Kconfig goes here
#- file drivers/iio/dummy/Kconfig goes here
#- file drivers/iio/frequency/Kconfig goes here
@@ -1839,6 +1887,7 @@ IIO_SW_TRIGGER all=m
#- file drivers/iio/orientation/Kconfig goes here
#- file drivers/iio/trigger/Kconfig goes here
#- file drivers/iio/potentiometer/Kconfig goes here
+#- file drivers/iio/potentiostat/Kconfig goes here
#- file drivers/iio/pressure/Kconfig goes here
#- file drivers/iio/proximity/Kconfig goes here
#- file drivers/iio/temperature/Kconfig goes here
@@ -1849,7 +1898,10 @@ IIO_SW_TRIGGER all=m
BMA180 all=m
BMA220 all=m
BMC150_ACCEL all=m
+DA280 all=m
+DA311 all=m
DMARD09 all=m
+DMARD10 all=m
HID_SENSOR_ACCEL_3D all=m
IIO_ST_ACCEL_3AXIS all=m
KXSD9 all=m
@@ -1865,6 +1917,7 @@ MMA9551 all=m
MMA9553 all=m
MXC4005 all=m
MXC6255 all=m
+SCA3000 all=m
STK8312 all=m
STK8BA50 all=m
@@ -1875,6 +1928,7 @@ AD7266 all=m
AD7291 all=m
AD7298 all=m
AD7476 all=m
+AD7766 all=m
AD7791 all=m
AD7793 all=m
AD7887 all=m
@@ -1922,6 +1976,12 @@ IAQCORE all=m
VZ89X all=m
#-
+#- *** FILE: drivers/iio/common/cros_ec_sensors/Kconfig ***
+#-
+IIO_CROS_EC_SENSORS_CORE all=m
+IIO_CROS_EC_SENSORS all=m
+
+#-
#- *** FILE: drivers/iio/common/ssp_sensors/Kconfig ***
#-
IIO_SSP_SENSORS_COMMONS all=m
@@ -1991,6 +2051,7 @@ MAX30100 all=m
AM2315 all=m
DHT11 all=m
HDC100X all=m
+HTS221 all=m
HTU21 all=m
SI7005 all=m
SI7020 all=m
@@ -2032,6 +2093,7 @@ CM3232 all=m
CM3323 all=m
CM36651 all=m
GP2AP020A00F all=m
+SENSORS_ISL29018 all=m
ISL29125 all=m
HID_SENSOR_ALS all=m
HID_SENSOR_PROX all=m
@@ -2047,6 +2109,7 @@ STK3310 all=m
TCS3414 all=m
TCS3472 all=m
SENSORS_TSL2563 all=m
+TSL2583 all=m
TSL4531 all=m
US5182D all=m
VCNL4000 all=m
@@ -2084,8 +2147,14 @@ MCP4531 all=m
TPL0102 all=m
#-
+#- *** FILE: drivers/iio/potentiostat/Kconfig ***
+#-
+LMP91000 all=m
+
+#-
#- *** FILE: drivers/iio/pressure/Kconfig ***
#-
+ABP060MG all=m
BMP280 all=m
HID_SENSOR_PRESS all=m
HP03 all=m
@@ -2144,6 +2213,7 @@ INFINIBAND_ADDR_TRANS all=y sparc=
#- file drivers/infiniband/hw/mlx5/Kconfig goes here
#- file drivers/infiniband/hw/nes/Kconfig goes here
#- file drivers/infiniband/hw/ocrdma/Kconfig goes here
+#- file drivers/infiniband/hw/vmw_pvrdma/Kconfig goes here
#- file drivers/infiniband/hw/usnic/Kconfig goes here
#- file drivers/infiniband/hw/hns/Kconfig goes here
#- file drivers/infiniband/ulp/ipoib/Kconfig goes here
@@ -2223,6 +2293,11 @@ INFINIBAND_QIB_DCA all=y
INFINIBAND_USNIC all=m
#-
+#- *** FILE: drivers/infiniband/hw/vmw_pvrdma/Kconfig ***
+#-
+INFINIBAND_VMWARE_PVRDMA all=m
+
+#-
#- *** FILE: drivers/infiniband/sw/rdmavt/Kconfig ***
#-
INFINIBAND_RDMAVT all=m
@@ -2466,10 +2541,13 @@ MOUSE_SYNAPTICS_USB all=m
RMI4_CORE all=m
RMI4_I2C all=m
RMI4_SPI all=m
+RMI4_SMB all=m
+RMI4_F03 all=y
RMI4_2D_SENSOR all=y
RMI4_F11 all=y
RMI4_F12 all=y
RMI4_F30 all=y
+RMI4_F34 all=y
RMI4_F54 all=y
#-
@@ -2784,6 +2862,8 @@ LEDS_MENF21BMC all=m
#- LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
LEDS_BLINKM all=m
LEDS_MLXCPLD all=m
+LEDS_USER all=m
+LEDS_NIC78BX all=m
#- LED Triggers
#- file drivers/leds/trigger/Kconfig goes here
@@ -2874,6 +2954,7 @@ MD_CLUSTER all=m
BLK_DEV_DM all=m
DM_MQ_DEFAULT all=n
DM_DEBUG all=n
+DM_DEBUG_BLOCK_MANAGER_LOCKING all=n
DM_DEBUG_BLOCK_STACK_TRACING all=n
#- file drivers/md/persistent-data/Kconfig goes here
DM_CRYPT all=m
@@ -2916,6 +2997,8 @@ MEDIA_DIGITAL_TV_SUPPORT all=y
MEDIA_RADIO_SUPPORT all=y
MEDIA_SDR_SUPPORT all=y
MEDIA_RC_SUPPORT all=y
+MEDIA_CEC_SUPPORT all=y
+MEDIA_CEC_DEBUG all=n
MEDIA_CONTROLLER all=y
MEDIA_CONTROLLER_DVB all=y
VIDEO_DEV all=m
@@ -2977,6 +3060,7 @@ SMS_SIANO_DEBUGFS all=y
#-
DVB_MAX_ADAPTERS all=8
DVB_DYNAMIC_MINORS all=y
+DVB_DEMUX_SECTION_LOSS_LOG all=n
#-
#- *** FILE: drivers/media/dvb-frontends/Kconfig ***
@@ -3469,6 +3553,8 @@ IR_TTUSBIR all=m
#- file drivers/media/rc/img-ir/Kconfig goes here
RC_LOOPBACK all=m
IR_GPIO_CIR all=m
+IR_SERIAL all=m
+IR_SERIAL_TRANSMITTER all=y
#-
#- *** FILE: drivers/media/rc/img-ir/Kconfig ***
@@ -3530,6 +3616,8 @@ MEDIA_USB_SUPPORT all=y
#- file drivers/media/usb/airspy/Kconfig goes here
#- file drivers/media/usb/hackrf/Kconfig goes here
#- file drivers/media/usb/msi2500/Kconfig goes here
+#- USB HDMI CEC adapters
+#- file drivers/media/usb/pulse8-cec/Kconfig goes here
#-
#- *** FILE: drivers/media/usb/airspy/Kconfig ***
@@ -3717,6 +3805,11 @@ VIDEO_HDPVR all=m
USB_MSI2500 all=m
#-
+#- *** FILE: drivers/media/usb/pulse8-cec/Kconfig ***
+#-
+USB_PULSE8_CEC all=m
+
+#-
#- *** FILE: drivers/media/usb/pvrusb2/Kconfig ***
#-
VIDEO_PVRUSB2 all=m sparc=n
@@ -4080,13 +4173,11 @@ VMWARE_VMCI all=m
MMC all=m
MMC_DEBUG all=n
#- file drivers/mmc/core/Kconfig goes here
-#- file drivers/mmc/card/Kconfig goes here
#- file drivers/mmc/host/Kconfig goes here
#-
-#- *** FILE: drivers/mmc/card/Kconfig ***
+#- *** FILE: drivers/mmc/core/Kconfig ***
#-
-#- MMC/SD/SDIO Card Drivers
MMC_BLOCK all=m
MMC_BLOCK_MINORS all=8
MMC_BLOCK_BOUNCE all=y
@@ -4264,6 +4355,7 @@ MTD_NAND_CS553X i386=m
MTD_NAND_PASEMI ppc64=m
MTD_NAND_NANDSIM all=m ppc=n ppc64=n sparc=n
MTD_NAND_PLATFORM all=m sparc=n
+MTD_NAND_OXNAS all=m
MTD_NAND_FSL_ELBC ppc=m ppc64=m
MTD_NAND_HISI504 all=m
MTD_NAND_MTK all=m
@@ -4523,6 +4615,7 @@ WD80x3 alpha=m i386=m
#- file drivers/net/ethernet/adaptec/Kconfig goes here
#- file drivers/net/ethernet/aeroflex/Kconfig goes here
#- file drivers/net/ethernet/agere/Kconfig goes here
+#- file drivers/net/ethernet/alacritech/Kconfig goes here
#- file drivers/net/ethernet/allwinner/Kconfig goes here
#- file drivers/net/ethernet/alteon/Kconfig goes here
#- file drivers/net/ethernet/altera/Kconfig goes here
@@ -4617,6 +4710,12 @@ NET_VENDOR_AGERE all=y
ET131X all=m
#-
+#- *** FILE: drivers/net/ethernet/alacritech/Kconfig ***
+#-
+NET_VENDOR_ALACRITECH all=y
+SLICOSS all=m
+
+#-
#- *** FILE: drivers/net/ethernet/alteon/Kconfig ***
#-
NET_VENDOR_ALTEON all=y
@@ -4692,6 +4791,7 @@ BNX2X all=m
BNX2X_SRIOV all=y
BNXT all=m
BNXT_SRIOV all=y
+BNXT_DCB all=y
#-
#- *** FILE: drivers/net/ethernet/brocade/Kconfig ***
@@ -4709,6 +4809,7 @@ BNA all=m
#-
NET_CADENCE all=y
MACB all=m
+MACB_PCI all=m
#-
#- *** FILE: drivers/net/ethernet/calxeda/Kconfig ***
@@ -4724,6 +4825,7 @@ THUNDER_NIC_VF all=m
THUNDER_NIC_BGX all=m
THUNDER_NIC_RGX all=m
LIQUIDIO all=m
+LIQUIDIO_VF all=m
#-
#- *** FILE: drivers/net/ethernet/chelsio/Kconfig ***
@@ -4808,6 +4910,7 @@ FEC_MPC52xx_MDIO ppc=y
#- file drivers/net/ethernet/freescale/fs_enet/Kconfig goes here
#- file drivers/net/ethernet/freescale/fman/Kconfig goes here
GIANFAR ppc=m
+#- file drivers/net/ethernet/freescale/dpaa/Kconfig goes here
#-
#- *** FILE: drivers/net/ethernet/fujitsu/Kconfig ***
@@ -4888,10 +4991,14 @@ MLX5_CORE_EN_DCB all=y
#-
MLXSW_CORE all=m
MLXSW_CORE_HWMON all=y
+MLXSW_CORE_THERMAL all=y
MLXSW_PCI all=m
+MLXSW_I2C all=m
+MLXSW_SWITCHIB all=m
MLXSW_SWITCHX2 all=m
MLXSW_SPECTRUM all=m
MLXSW_SPECTRUM_DCB all=y
+MLXSW_MINIMAL all=m
#-
#- *** FILE: drivers/net/ethernet/micrel/Kconfig ***
@@ -5034,11 +5141,19 @@ NET_VENDOR_SEEQ all=y
#-
#- *** FILE: drivers/net/ethernet/sfc/Kconfig ***
#-
+NET_VENDOR_SOLARFLARE all=y
SFC all=m sparc=n
SFC_MTD all=y
SFC_MCDI_MON all=y
SFC_SRIOV all=y
SFC_MCDI_LOGGING all=y
+#- file drivers/net/ethernet/sfc/falcon/Kconfig goes here
+
+#-
+#- *** FILE: drivers/net/ethernet/sfc/falcon/Kconfig ***
+#-
+SFC_FALCON all=m
+SFC_FALCON_MTD all=y
#-
#- *** FILE: drivers/net/ethernet/silan/Kconfig ***
@@ -5227,6 +5342,7 @@ MCS_FIR all=m
#- *** FILE: drivers/net/phy/Kconfig ***
#-
PHYLIB all=y
+LED_TRIGGER_PHY all=y
#- MDIO bus device drivers
MDIO_BCM_UNIMAC all=m
MDIO_BITBANG all=m
@@ -5952,6 +6068,7 @@ NVME_CORE all=m
BLK_DEV_NVME all=m
BLK_DEV_NVME_SCSI all=y
NVME_RDMA all=m
+NVME_FC all=m
#-
#- *** FILE: drivers/nvme/target/Kconfig ***
@@ -5959,6 +6076,8 @@ NVME_RDMA all=m
NVME_TARGET all=m
NVME_TARGET_LOOP all=m
NVME_TARGET_RDMA all=m
+NVME_TARGET_FC all=m
+NVME_TARGET_FCLOOP all=m
#-
#- *** FILE: drivers/nvmem/Kconfig ***
@@ -6176,6 +6295,7 @@ COMPAL_LAPTOP all=m
SONY_LAPTOP i386=m x86_64=m
SONYPI_COMPAT i386=y x86_64=y
IDEAPAD_LAPTOP all=m
+SURFACE3_WMI all=m
THINKPAD_ACPI i386=m x86_64=m
THINKPAD_ACPI_ALSA_SUPPORT all=y
THINKPAD_ACPI_DEBUGFACILITIES all=n
@@ -6216,8 +6336,11 @@ INTEL_SMARTCONNECT all=m
PVPANIC all=m
INTEL_PMC_IPC all=m
SURFACE_PRO3_BUTTON all=m
+SURFACE_3_BUTTON all=m
INTEL_PUNIT_IPC all=m
INTEL_TELEMETRY all=m
+MLX_PLATFORM all=m
+MLX_CPLD_PLATFORM all=m
#-
#- *** FILE: drivers/pnp/Kconfig ***
@@ -6452,7 +6575,7 @@ REGULATOR_WM8994 all=m
#-
#- *** FILE: drivers/remoteproc/Kconfig ***
#-
-STE_MODEM_RPROC all=m
+REMOTEPROC all=m
#-
#- *** FILE: drivers/reset/Kconfig ***
@@ -6461,6 +6584,7 @@ RESET_CONTROLLER all=y
TI_SYSCON_RESET all=m
#- file drivers/reset/sti/Kconfig goes here
#- file drivers/reset/hisilicon/Kconfig goes here
+#- file drivers/reset/tegra/Kconfig goes here
#-
#- *** FILE: drivers/rtc/Kconfig ***
@@ -6662,7 +6786,6 @@ SCSI_FUTURE_DOMAIN all=m
SCSI_GDTH all=m
SCSI_ISCI all=m
SCSI_GENERIC_NCR5380 alpha=m i386=m
-SCSI_GENERIC_NCR5380_MMIO alpha=m i386=m
SCSI_IPS all=m sparc=n sparc64=n
SCSI_IBMVSCSI ppc64=n
SCSI_IBMVFC ppc64=m
@@ -6693,6 +6816,7 @@ SCSI_QLOGIC_1280 all=m
SCSI_QLOGICPTI sparc=m sparc64=m
#- file drivers/scsi/qla2xxx/Kconfig goes here
#- file drivers/scsi/qla4xxx/Kconfig goes here
+#- file drivers/scsi/qedi/Kconfig goes here
SCSI_LPFC all=m sparc=n
SCSI_LPFC_DEBUG_FS all=n
SCSI_SIM710 alpha=m i386=m
@@ -6837,6 +6961,11 @@ PCMCIA_QLOGIC all=m
PCMCIA_SYM53C500 all=m
#-
+#- *** FILE: drivers/scsi/qedi/Kconfig ***
+#-
+QEDI all=m
+
+#-
#- *** FILE: drivers/scsi/qla2xxx/Kconfig ***
#-
SCSI_QLA_FC all=m sparc=n
@@ -6931,7 +7060,6 @@ SSB_DRIVER_GPIO all=y
#- *** FILE: drivers/staging/Kconfig ***
#-
STAGING all=y
-#- file drivers/staging/slicoss/Kconfig goes here
#- file drivers/staging/wlan-ng/Kconfig goes here
#- file drivers/staging/comedi/Kconfig goes here
#- file drivers/staging/olpc_dcon/Kconfig goes here
@@ -7216,7 +7344,6 @@ ADIS16201 all=m
ADIS16203 all=m
ADIS16209 all=m
ADIS16240 all=m
-SCA3000 all=m
#-
#- *** FILE: drivers/staging/iio/adc/Kconfig ***
@@ -7262,9 +7389,7 @@ AD5933 all=m
#-
#- *** FILE: drivers/staging/iio/light/Kconfig ***
#-
-SENSORS_ISL29018 all=m
SENSORS_ISL29028 all=m
-TSL2583 all=m
TSL2x7x all=m
#-
@@ -7310,11 +7435,9 @@ LUSTRE_DEBUG_EXPENSIVE_CHECK all=n
#-
STAGING_MEDIA all=y
#- file drivers/staging/media/bcm2048/Kconfig goes here
-#- file drivers/staging/media/cec/Kconfig goes here
#- file drivers/staging/media/cxd2099/Kconfig goes here
#- file drivers/staging/media/davinci_vpfe/Kconfig goes here
#- file drivers/staging/media/omap4iss/Kconfig goes here
-#- file drivers/staging/media/pulse8-cec/Kconfig goes here
#- file drivers/staging/media/s5p-cec/Kconfig goes here
#- file drivers/staging/media/lirc/Kconfig goes here
#- file drivers/staging/media/st-cec/Kconfig goes here
@@ -7325,12 +7448,6 @@ STAGING_MEDIA all=y
I2C_BCM2048 all=m
#-
-#- *** FILE: drivers/staging/media/cec/Kconfig ***
-#-
-MEDIA_CEC all=y
-MEDIA_CEC_DEBUG all=n
-
-#-
#- *** FILE: drivers/staging/media/cxd2099/Kconfig ***
#-
DVB_CXD2099 all=m
@@ -7343,17 +7460,10 @@ LIRC_BT829 all=m
LIRC_IMON all=m
LIRC_PARALLEL all=m
LIRC_SASEM all=m
-LIRC_SERIAL all=m
-LIRC_SERIAL_TRANSMITTER all=y
LIRC_SIR all=m
LIRC_ZILOG all=m
#-
-#- *** FILE: drivers/staging/media/pulse8-cec/Kconfig ***
-#-
-USB_PULSE8_CEC all=m
-
-#-
#- *** FILE: drivers/staging/most/Kconfig ***
#-
MOST all=m
@@ -7448,11 +7558,6 @@ RTS5208 all=m
CRYPTO_SKEIN all=y
#-
-#- *** FILE: drivers/staging/slicoss/Kconfig ***
-#-
-SLICOSS all=m
-
-#-
#- *** FILE: drivers/staging/sm750fb/Kconfig ***
#-
FB_SM750 all=m
@@ -7751,6 +7856,7 @@ UIO_PCI_GENERIC all=m
UIO_NETX all=m
UIO_PRUSS all=m
UIO_MF624 all=m
+UIO_HV_GENERIC all=m
#-
#- *** FILE: drivers/usb/Kconfig ***
@@ -7771,6 +7877,7 @@ USB all=m sparc=n
#- file drivers/usb/storage/Kconfig goes here
#- file drivers/usb/image/Kconfig goes here
#- file drivers/usb/usbip/Kconfig goes here
+#- file drivers/usb/mtu3/Kconfig goes here
#- file drivers/usb/musb/Kconfig goes here
#- file drivers/usb/dwc3/Kconfig goes here
#- file drivers/usb/dwc2/Kconfig goes here
@@ -8084,6 +8191,7 @@ USB_SERIAL_IR all=m
USB_SERIAL_EDGEPORT all=m
USB_SERIAL_EDGEPORT_TI all=m
USB_SERIAL_F81232 all=m
+USB_SERIAL_F8153X all=m
USB_SERIAL_GARMIN all=m
USB_SERIAL_IPW all=m
USB_SERIAL_IUU all=m
@@ -8186,9 +8294,16 @@ VFIO all=m
VFIO_NOIOMMU all=y
#- file drivers/vfio/pci/Kconfig goes here
#- file drivers/vfio/platform/Kconfig goes here
+#- file drivers/vfio/mdev/Kconfig goes here
#- file virt/lib/Kconfig goes here
#-
+#- *** FILE: drivers/vfio/mdev/Kconfig ***
+#-
+VFIO_MDEV all=m
+VFIO_MDEV_DEVICE all=m
+
+#-
#- *** FILE: drivers/vfio/pci/Kconfig ***
#-
VFIO_PCI all=m
@@ -8670,7 +8785,6 @@ MISC_FILESYSTEMS all=y
#- file fs/efs/Kconfig goes here
#- file fs/jffs2/Kconfig goes here
#- file fs/ubifs/Kconfig goes here
-#- file fs/logfs/Kconfig goes here
#- file fs/cramfs/Kconfig goes here
#- file fs/squashfs/Kconfig goes here
#- file fs/freevxfs/Kconfig goes here
@@ -8972,11 +9086,6 @@ JFS_DEBUG all=n
JFS_STATISTICS all=y
#-
-#- *** FILE: fs/logfs/Kconfig ***
-#-
-LOGFS all=m
-
-#-
#- *** FILE: fs/minix/Kconfig ***
#-
MINIX_FS all=m
@@ -9129,6 +9238,7 @@ ORANGEFS_FS all=m
#- *** FILE: fs/overlayfs/Kconfig ***
#-
OVERLAY_FS all=m
+OVERLAY_FS_REDIRECT_DIR all=y
#-
#- *** FILE: fs/proc/Kconfig ***
@@ -9223,6 +9333,7 @@ UBIFS_FS_ADVANCED_COMPR all=y
UBIFS_FS_LZO all=y
UBIFS_FS_ZLIB all=y
UBIFS_ATIME_SUPPORT all=y
+UBIFS_FS_ENCRYPTION all=y
#-
#- *** FILE: fs/udf/Kconfig ***
@@ -9322,6 +9433,7 @@ PROC_PID_CPUSET all=n
CGROUP_DEVICE all=y
CGROUP_CPUACCT all=y
CGROUP_PERF all=y
+CGROUP_BPF all=y
CGROUP_DEBUG all=n
NAMESPACES all=y
UTS_NS all=y
@@ -9533,6 +9645,7 @@ DDR all=y
#- *** FILE: lib/Kconfig.debug ***
#-
PRINTK_TIME all=y
+CONSOLE_LOGLEVEL_DEFAULT all=7
MESSAGE_LOGLEVEL_DEFAULT all=4
BOOT_PRINTK_DELAY all=y
DYNAMIC_DEBUG all=n
@@ -9620,7 +9733,6 @@ DEBUG_WQ_FORCE_RR_CPU all=n
DEBUG_BLOCK_EXT_DEVT all=n
CPU_HOTPLUG_STATE_CONTROL all=n
NOTIFIER_ERROR_INJECTION all=m
-CPU_NOTIFIER_ERROR_INJECT all=m
PM_NOTIFIER_ERROR_INJECT all=m
NETDEV_NOTIFIER_ERROR_INJECT all=m
FAULT_INJECTION all=n
@@ -9651,6 +9763,7 @@ TEST_BPF all=n
TEST_FIRMWARE all=m
TEST_UDELAY all=m
TEST_STATIC_KEYS all=m
+BUG_ON_DATA_CORRUPTION all=n
#- file samples/Kconfig goes here
#- file lib/Kconfig.kgdb goes here
#- file lib/Kconfig.ubsan goes here
@@ -9871,6 +9984,7 @@ WIRELESS all=y
#- file net/caif/Kconfig goes here
#- file net/ceph/Kconfig goes here
#- file net/nfc/Kconfig goes here
+LWTUNNEL_BPF all=y
DST_CACHE all=y
NET_DEVLINK all=m
MAY_USE_DEVLINK all=m
@@ -10107,6 +10221,7 @@ INET_XFRM_MODE_BEET all=m
INET_DIAG all=m
INET_TCP_DIAG all=m
INET_UDP_DIAG all=m
+INET_RAW_DIAG all=m
INET_DIAG_DESTROY all=y
TCP_CONG_ADVANCED all=y
TCP_CONG_BIC all=m
@@ -10126,11 +10241,11 @@ TCP_CONG_DCTCP all=m
TCP_CONG_CDG all=m
TCP_CONG_BBR all=y
DEFAULT_BIC all=n
-DEFAULT_BBR all=y
DEFAULT_CUBIC all=n
DEFAULT_HTCP all=n
DEFAULT_VEGAS all=n
DEFAULT_WESTWOOD all=n
+DEFAULT_BBR all=y
DEFAULT_RENO all=n
TCP_MD5SIG all=y
@@ -10138,10 +10253,12 @@ TCP_MD5SIG all=y
#- *** FILE: net/ipv4/netfilter/Kconfig ***
#-
NF_CONNTRACK_IPV4 all=m
+NF_SOCKET_IPV4 all=m
NF_TABLES_IPV4 all=m
NFT_CHAIN_ROUTE_IPV4 all=m
NFT_REJECT_IPV4 all=m
NFT_DUP_IPV4 all=m
+NFT_FIB_IPV4 all=m
NF_TABLES_ARP all=m
NF_LOG_ARP all=m
NF_LOG_IPV4 all=m
@@ -10201,14 +10318,19 @@ IPV6_SUBTREES all=y
IPV6_MROUTE all=y
IPV6_MROUTE_MULTIPLE_TABLES all=y
IPV6_PIMSM_V2 all=y
+IPV6_SEG6_LWTUNNEL all=y
+IPV6_SEG6_INLINE all=y
+IPV6_SEG6_HMAC all=y
#-
#- *** FILE: net/ipv6/netfilter/Kconfig ***
#-
NF_CONNTRACK_IPV6 all=m
+NF_SOCKET_IPV6 all=m
NF_TABLES_IPV6 all=m
NFT_CHAIN_ROUTE_IPV6 all=m
NFT_DUP_IPV6 all=m
+NFT_FIB_IPV6 all=m
NF_REJECT_IPV6 all=m
NF_LOG_IPV6 all=m
NF_NAT_IPV6 all=m
@@ -10342,6 +10464,7 @@ NETFILTER_NETLINK_ACCT all=m
NETFILTER_NETLINK_QUEUE all=m
NETFILTER_NETLINK_LOG all=m
NF_CONNTRACK all=m
+NF_LOG_NETDEV all=m
NF_CONNTRACK_MARK all=y
NF_CONNTRACK_SECMARK all=y
NF_CONNTRACK_ZONES all=y
@@ -10349,9 +10472,9 @@ NF_CONNTRACK_PROCFS all=n
NF_CONNTRACK_EVENTS all=y
NF_CONNTRACK_TIMEOUT all=y
NF_CONNTRACK_TIMESTAMP all=y
-NF_CT_PROTO_DCCP=m
-NF_CT_PROTO_SCTP all=m
-NF_CT_PROTO_UDPLITE all=m
+NF_CT_PROTO_DCCP all=y
+NF_CT_PROTO_SCTP all=y
+NF_CT_PROTO_UDPLITE all=y
NF_CONNTRACK_AMANDA all=m
NF_CONNTRACK_FTP all=m
NF_CONNTRACK_H323 all=m
@@ -10374,6 +10497,7 @@ NF_TABLES_INET all=m
NF_TABLES_NETDEV all=m
NFT_EXTHDR all=m
NFT_META all=m
+NFT_RT all=m
NFT_NUMGEN all=m
NFT_CT all=m
NFT_SET_RBTREE all=m
@@ -10384,11 +10508,13 @@ NFT_LIMIT all=m
NFT_MASQ all=m
NFT_REDIR all=m
NFT_NAT all=m
+NFT_OBJREF all=m
NFT_QUEUE all=m
NFT_QUOTA all=m
NFT_REJECT all=m
NFT_COMPAT all=m
NFT_HASH all=m
+NFT_FIB_INET all=m
NF_DUP_NETDEV all=m
NFT_DUP_NETDEV all=m
NFT_FWD_NETDEV all=m
@@ -10486,6 +10612,7 @@ IP_SET_HASH_IPMARK all=m
IP_SET_HASH_IPPORT all=m
IP_SET_HASH_IPPORTIP all=m
IP_SET_HASH_IPPORTNET all=m
+IP_SET_HASH_IPMAC all=m
IP_SET_HASH_MAC all=m
IP_SET_HASH_NETPORTNET all=m
IP_SET_HASH_NET all=m
@@ -11263,6 +11390,8 @@ SND_SOC_ALC5623 all=m
SND_SOC_BT_SCO all=m
SND_SOC_CS35L32 all=m
SND_SOC_CS35L33 all=m
+SND_SOC_CS35L34 all=m
+SND_SOC_CS42L42 all=m
SND_SOC_CS42L51 all=m
SND_SOC_CS42L51_I2C all=m
SND_SOC_CS42L52 all=m
@@ -11284,6 +11413,8 @@ SND_SOC_MAX98095 all=m
SND_SOC_MAX98504 all=m
SND_SOC_MAX9850 all=m
SND_SOC_MAX9860 all=m
+SND_SOC_MSM8916_WCD_ANALOG all=m
+SND_SOC_MSM8916_WCD_DIGITAL all=m
SND_SOC_PCM1681 all=m
SND_SOC_PCM179X all=m
SND_SOC_PCM179X_I2C all=m
@@ -11488,21 +11619,29 @@ BNX2X_GENEVE all=y
BNX2X_VXLAN all=y
BUILD_DOCSRC all=n
CHELSIO_T4_UWIRE all=y
+CPU_NOTIFIER_ERROR_INJECT all=m
DEVPTS_MULTIPLE_INSTANCES all=y
DRM_AMD_POWERPLAY all=y
+DRM_I915_PRELIMINARY_HW_SUPPORT all=y
EXYNOS_VIDEO all=n
+FENCE_TRACE all=n
FM10K_VXLAN all=y
GEN_RTC_X all=n
HAVE_BPF_JIT all=y
I40E_GENEVE all=y
I40E_VXLAN all=y
+I7300_IDLE x86_64=m
IPMI_SI_PROBE_DEFAULTS all=n
IWLWIFI_DEBUG_EXPERIMENTAL_UCODE all=y
IWLWIFI_UAPSD all=y
IXGBE_VXLAN all=y
LEDS_TRIGGER_IDE_DISK all=y
+LIRC_SERIAL all=m
+LIRC_SERIAL_TRANSMITTER all=y
LIS3L02DQ all=m
+LOGFS all=m
LUSTRE_LLITE_LLOOP all=m
+MEDIA_CEC all=y
MLX4_EN_VXLAN all=y
MLX5_CORE_EN_VXLAN all=y
NET_DSA_MV88E6123 all=m
@@ -11518,6 +11657,7 @@ R8723AU all=m
RTC_DRV_ISL12057 all=m
SCSI_7000FASST alpha=m i386=m
SCSI_DTC3280 alpha=m i386=m
+SCSI_GENERIC_NCR5380_MMIO alpha=m i386=m
SCSI_GENERIC_NCR53C400 alpha=y i386=y
SCSI_IN2000 alpha=m i386=m
SCSI_PAS16 alpha=m i386=m
@@ -11532,6 +11672,7 @@ SENSORS_BH1780 all=m
SND_RTCTIMER alpha=m i386=m ia64=m x86_64=m
SND_SEQ_RTCTIMER_DEFAULT alpha=y i386=y ia64=y x86_64=y
STAGING_RDMA all=y
+STE_MODEM_RPROC all=m
TOUCHSCREEN_FT6236 all=m
USB_LED all=m
VIDEO_SH_MOBILE_CSI2 all=m
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/a2654f7884b5e0aca54cf9f5def4b2d62195fa19
More information about the pld-cvs-commit
mailing list