From: Arkadiusz Miƛkiewicz Date: Thu, 2 Mar 2017 14:38:31 +0000 (+0100) Subject: - updated X-Git-Tag: auto/th/kernel-4.10.4-1~3 X-Git-Url: http://git.pld-linux.org/gitweb.cgi?a=commitdiff_plain;ds=sidebyside;h=a2654f7884b5e0aca54cf9f5def4b2d62195fa19;p=packages%2Fkernel.git - updated --- diff --git a/kernel-aufs4.patch b/kernel-aufs4.patch index 6cc5ab96..cc61c35d 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 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 ++#include +#include +#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 + -+#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 e0ec68bf..dbf671e3 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 @@ -496,6 +502,11 @@ CMA_ALIGNMENT all=8 #- REGMAP_SPMI all=m +#- +#- *** FILE: drivers/base/test/Kconfig *** +#- +TEST_ASYNC_DRIVER_PROBE all=m + #- #- *** FILE: drivers/bcma/Kconfig *** #- @@ -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 #- @@ -786,6 +798,17 @@ COMMON_CLK_OXNAS all=n #- file drivers/clk/ti/Kconfig goes here #- 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 *** #- @@ -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 *** @@ -878,6 +902,11 @@ CRYPTO_DEV_QAT_DH895xCCVF all=m 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 *** #- @@ -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 @@ -1244,6 +1277,11 @@ DRM_GMA500 all=m 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 *** #- @@ -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 @@ -1921,6 +1975,12 @@ ATLAS_PH_SENSOR all=m 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 *** #- @@ -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 @@ -2083,9 +2146,15 @@ MCP4131 all=m 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 @@ -2222,6 +2292,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 *** #- @@ -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 *** @@ -3716,6 +3804,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 *** #- @@ -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 @@ -4616,6 +4709,12 @@ ADAPTEC_STARFIRE all=m 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 *** #- @@ -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 @@ -6836,6 +6960,11 @@ PCMCIA_NINJA_SCSI i386=m ppc=n x86_64=m PCMCIA_QLOGIC all=m PCMCIA_SYM53C500 all=m +#- +#- *** FILE: drivers/scsi/qedi/Kconfig *** +#- +QEDI all=m + #- #- *** FILE: drivers/scsi/qla2xxx/Kconfig *** #- @@ -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 @@ -7324,12 +7447,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 *** #- @@ -7343,16 +7460,9 @@ 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 *** #- @@ -7447,11 +7557,6 @@ RTS5208 all=m #- CRYPTO_SKEIN all=y -#- -#- *** FILE: drivers/staging/slicoss/Kconfig *** -#- -SLICOSS all=m - #- #- *** FILE: drivers/staging/sm750fb/Kconfig *** #- @@ -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,8 +8294,15 @@ 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 *** #- @@ -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 @@ -8971,11 +9085,6 @@ JFS_SECURITY all=y JFS_DEBUG all=n JFS_STATISTICS all=y -#- -#- *** FILE: fs/logfs/Kconfig *** -#- -LOGFS all=m - #- #- *** FILE: fs/minix/Kconfig *** #- @@ -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