Commit c94527ff authored by J. R. Okajima's avatar J. R. Okajima
Browse files

aufs5.0 20200120


Signed-off-by: default avatarJ. R. Okajima <hooanon05g@gmail.com>
parent 109aff9b
...@@ -68,7 +68,7 @@ index aac41adf4743..fc18967c2522 100644 ...@@ -68,7 +68,7 @@ index aac41adf4743..fc18967c2522 100644
{ {
struct dentry *this_parent; struct dentry *this_parent;
diff --git a/fs/fcntl.c b/fs/fcntl.c diff --git a/fs/fcntl.c b/fs/fcntl.c
index 083185174c6d..78234ee16784 100644 index 083185174c6d..7828d53148a7 100644
--- a/fs/fcntl.c --- a/fs/fcntl.c
+++ b/fs/fcntl.c +++ b/fs/fcntl.c
@@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
...@@ -76,7 +76,7 @@ index 083185174c6d..78234ee16784 100644 ...@@ -76,7 +76,7 @@ index 083185174c6d..78234ee16784 100644
#define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME) #define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME)
-static int setfl(int fd, struct file * filp, unsigned long arg) -static int setfl(int fd, struct file * filp, unsigned long arg)
+int setfl(int fd, struct file * filp, unsigned long arg) +int setfl(int fd, struct file *filp, unsigned long arg)
{ {
struct inode * inode = file_inode(filp); struct inode * inode = file_inode(filp);
int error = 0; int error = 0;
...@@ -120,7 +120,7 @@ index 678ef175d63a..9b6a3d0f87a1 100644 ...@@ -120,7 +120,7 @@ index 678ef175d63a..9b6a3d0f87a1 100644
* vfsmount lock must be held for write * vfsmount lock must be held for write
*/ */
diff --git a/fs/read_write.c b/fs/read_write.c diff --git a/fs/read_write.c b/fs/read_write.c
index ff3c5e6f87cf..5c18a9e51f37 100644 index ff3c5e6f87cf..d41e5b992eaa 100644
--- a/fs/read_write.c --- a/fs/read_write.c
+++ b/fs/read_write.c +++ b/fs/read_write.c
@@ -489,6 +489,28 @@ ssize_t __vfs_write(struct file *file, const char __user *p, size_t count, @@ -489,6 +489,28 @@ ssize_t __vfs_write(struct file *file, const char __user *p, size_t count,
...@@ -135,7 +135,7 @@ index ff3c5e6f87cf..5c18a9e51f37 100644 ...@@ -135,7 +135,7 @@ index ff3c5e6f87cf..5c18a9e51f37 100644
+ return fop->read; + return fop->read;
+ if (fop->read_iter) + if (fop->read_iter)
+ return new_sync_read; + return new_sync_read;
+ return ERR_PTR(-ENOSYS); + return ERR_PTR(-ENOSYS); /* doesn't have ->read(|_iter)() op */
+} +}
+ +
+vfs_writef_t vfs_writef(struct file *file) +vfs_writef_t vfs_writef(struct file *file)
...@@ -146,7 +146,7 @@ index ff3c5e6f87cf..5c18a9e51f37 100644 ...@@ -146,7 +146,7 @@ index ff3c5e6f87cf..5c18a9e51f37 100644
+ return fop->write; + return fop->write;
+ if (fop->write_iter) + if (fop->write_iter)
+ return new_sync_write; + return new_sync_write;
+ return ERR_PTR(-ENOSYS); + return ERR_PTR(-ENOSYS); /* doesn't have ->write(|_iter)() op */
+} +}
+ +
ssize_t __kernel_write(struct file *file, const void *buf, size_t count, loff_t *pos) ssize_t __kernel_write(struct file *file, const void *buf, size_t count, loff_t *pos)
...@@ -194,14 +194,14 @@ index b54e0541ad89..28607828e96f 100644 ...@@ -194,14 +194,14 @@ index b54e0541ad89..28607828e96f 100644
if (wait) if (wait)
sync_inodes_sb(sb); sync_inodes_sb(sb);
diff --git a/include/linux/fs.h b/include/linux/fs.h diff --git a/include/linux/fs.h b/include/linux/fs.h
index 29d8e2cfed0e..5db265e7d35a 100644 index 29d8e2cfed0e..526424dc746b 100644
--- a/include/linux/fs.h --- a/include/linux/fs.h
+++ b/include/linux/fs.h +++ b/include/linux/fs.h
@@ -1310,6 +1310,7 @@ extern void fasync_free(struct fasync_struct *); @@ -1310,6 +1310,7 @@ extern void fasync_free(struct fasync_struct *);
/* can be called from interrupts */ /* can be called from interrupts */
extern void kill_fasync(struct fasync_struct **, int, int); extern void kill_fasync(struct fasync_struct **, int, int);
+extern int setfl(int fd, struct file * filp, unsigned long arg); +extern int setfl(int fd, struct file *filp, unsigned long arg);
extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force); extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
extern int f_setown(struct file *filp, unsigned long arg, int force); extern int f_setown(struct file *filp, unsigned long arg, int force);
extern void f_delown(struct file *filp); extern void f_delown(struct file *filp);
......
...@@ -140,7 +140,7 @@ index a271e17e4b10..ee17c7577224 100644 ...@@ -140,7 +140,7 @@ index a271e17e4b10..ee17c7577224 100644
} }
diff --git a/drivers/block/loop.h b/drivers/block/loop.h diff --git a/drivers/block/loop.h b/drivers/block/loop.h
index af75a5ee4094..1e6ee5a4f623 100644 index af75a5ee4094..1d847cb194ff 100644
--- a/drivers/block/loop.h --- a/drivers/block/loop.h
+++ b/drivers/block/loop.h +++ b/drivers/block/loop.h
@@ -46,7 +46,7 @@ struct loop_device { @@ -46,7 +46,7 @@ struct loop_device {
...@@ -148,12 +148,12 @@ index af75a5ee4094..1e6ee5a4f623 100644 ...@@ -148,12 +148,12 @@ index af75a5ee4094..1e6ee5a4f623 100644
unsigned long arg); unsigned long arg);
- struct file * lo_backing_file; - struct file * lo_backing_file;
+ struct file * lo_backing_file, *lo_backing_virt_file; + struct file *lo_backing_file, *lo_backing_virt_file;
struct block_device *lo_device; struct block_device *lo_device;
void *key_data; void *key_data;
diff --git a/fs/aufs/f_op.c b/fs/aufs/f_op.c diff --git a/fs/aufs/f_op.c b/fs/aufs/f_op.c
index 0309f0d502ff..19feb4f3cb5f 100644 index 240509add504..ae374ce4ded7 100644
--- a/fs/aufs/f_op.c --- a/fs/aufs/f_op.c
+++ b/fs/aufs/f_op.c +++ b/fs/aufs/f_op.c
@@ -359,7 +359,7 @@ static ssize_t aufs_read_iter(struct kiocb *kio, struct iov_iter *iov_iter) @@ -359,7 +359,7 @@ static ssize_t aufs_read_iter(struct kiocb *kio, struct iov_iter *iov_iter)
...@@ -212,7 +212,7 @@ index f31e40aff267..e13fb1a0717a 100644 ...@@ -212,7 +212,7 @@ index f31e40aff267..e13fb1a0717a 100644
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
diff --git a/fs/aufs/super.c b/fs/aufs/super.c diff --git a/fs/aufs/super.c b/fs/aufs/super.c
index 73255f63b80c..f04e211cbf89 100644 index 97e1401359d8..514678aa1af3 100644
--- a/fs/aufs/super.c --- a/fs/aufs/super.c
+++ b/fs/aufs/super.c +++ b/fs/aufs/super.c
@@ -846,7 +846,10 @@ static const struct super_operations aufs_sop = { @@ -846,7 +846,10 @@ static const struct super_operations aufs_sop = {
...@@ -228,14 +228,14 @@ index 73255f63b80c..f04e211cbf89 100644 ...@@ -228,14 +228,14 @@ index 73255f63b80c..f04e211cbf89 100644
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
diff --git a/include/linux/fs.h b/include/linux/fs.h diff --git a/include/linux/fs.h b/include/linux/fs.h
index 5db265e7d35a..8895cd2343e3 100644 index 526424dc746b..d46a9b0222c4 100644
--- a/include/linux/fs.h --- a/include/linux/fs.h
+++ b/include/linux/fs.h +++ b/include/linux/fs.h
@@ -1937,6 +1937,10 @@ struct super_operations { @@ -1937,6 +1937,10 @@ struct super_operations {
struct shrink_control *); struct shrink_control *);
long (*free_cached_objects)(struct super_block *, long (*free_cached_objects)(struct super_block *,
struct shrink_control *); struct shrink_control *);
+#if defined(CONFIG_BLK_DEV_LOOP) || defined(CONFIG_BLK_DEV_LOOP_MODULE) +#if IS_ENABLED(CONFIG_BLK_DEV_LOOP) || IS_ENABLED(CONFIG_BLK_DEV_LOOP_MODULE)
+ /* and aufs */ + /* and aufs */
+ struct file *(*real_loop)(struct file *); + struct file *(*real_loop)(struct file *);
+#endif +#endif
......
...@@ -34,10 +34,10 @@ index fb72d36f7823..7ce68004cbf8 100644 ...@@ -34,10 +34,10 @@ index fb72d36f7823..7ce68004cbf8 100644
#ifdef CONFIG_USELIB #ifdef CONFIG_USELIB
/* /*
diff --git a/fs/fcntl.c b/fs/fcntl.c diff --git a/fs/fcntl.c b/fs/fcntl.c
index 78234ee16784..2072f690b121 100644 index 7828d53148a7..efd8e2e9c0fa 100644
--- a/fs/fcntl.c --- a/fs/fcntl.c
+++ b/fs/fcntl.c +++ b/fs/fcntl.c
@@ -85,6 +85,7 @@ int setfl(int fd, struct file * filp, unsigned long arg) @@ -85,6 +85,7 @@ int setfl(int fd, struct file *filp, unsigned long arg)
out: out:
return error; return error;
} }
...@@ -190,7 +190,7 @@ index 0285ce7dbd51..cb81623a8b09 100644 ...@@ -190,7 +190,7 @@ index 0285ce7dbd51..cb81623a8b09 100644
long vfs_truncate(const struct path *path, loff_t length) long vfs_truncate(const struct path *path, loff_t length)
{ {
diff --git a/fs/read_write.c b/fs/read_write.c diff --git a/fs/read_write.c b/fs/read_write.c
index 5c18a9e51f37..542e59cd8d27 100644 index d41e5b992eaa..bf0538e67b41 100644
--- a/fs/read_write.c --- a/fs/read_write.c
+++ b/fs/read_write.c +++ b/fs/read_write.c
@@ -459,6 +459,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos) @@ -459,6 +459,7 @@ ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
...@@ -203,7 +203,7 @@ index 5c18a9e51f37..542e59cd8d27 100644 ...@@ -203,7 +203,7 @@ index 5c18a9e51f37..542e59cd8d27 100644
{ {
@@ -499,6 +500,7 @@ vfs_readf_t vfs_readf(struct file *file) @@ -499,6 +500,7 @@ vfs_readf_t vfs_readf(struct file *file)
return new_sync_read; return new_sync_read;
return ERR_PTR(-ENOSYS); return ERR_PTR(-ENOSYS); /* doesn't have ->read(|_iter)() op */
} }
+EXPORT_SYMBOL_GPL(vfs_readf); +EXPORT_SYMBOL_GPL(vfs_readf);
...@@ -211,7 +211,7 @@ index 5c18a9e51f37..542e59cd8d27 100644 ...@@ -211,7 +211,7 @@ index 5c18a9e51f37..542e59cd8d27 100644
{ {
@@ -510,6 +512,7 @@ vfs_writef_t vfs_writef(struct file *file) @@ -510,6 +512,7 @@ vfs_writef_t vfs_writef(struct file *file)
return new_sync_write; return new_sync_write;
return ERR_PTR(-ENOSYS); return ERR_PTR(-ENOSYS); /* doesn't have ->write(|_iter)() op */
} }
+EXPORT_SYMBOL_GPL(vfs_writef); +EXPORT_SYMBOL_GPL(vfs_writef);
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
#include <limits.h> #include <limits.h>
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#define AUFS_VERSION "5.x-rcN" #define AUFS_VERSION "5.0-20200120"
/* todo? move this to linux-2.6.19/include/magic.h */ /* todo? move this to linux-2.6.19/include/magic.h */
#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's') #define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
......
...@@ -36,7 +36,7 @@ index e91ec9ddcd30..7c63916d235d 100644 ...@@ -36,7 +36,7 @@ index e91ec9ddcd30..7c63916d235d 100644
* @n: the element to delete from the hash list. * @n: the element to delete from the hash list.
* *
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
index c4f72e461d28..53979dd893e0 100644 index c4f72e461d28..b4f4ba8ac9b2 100644
--- a/kernel/locking/lockdep.c --- a/kernel/locking/lockdep.c
+++ b/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c
@@ -737,6 +739,58 @@ static bool assign_lock_key(struct lockdep_map *lock) @@ -737,6 +739,58 @@ static bool assign_lock_key(struct lockdep_map *lock)
...@@ -62,7 +62,7 @@ index c4f72e461d28..53979dd893e0 100644 ...@@ -62,7 +62,7 @@ index c4f72e461d28..53979dd893e0 100644
+ static unsigned long lastu; + static unsigned long lastu;
+ +
+ /* uncomment if you want to confirm */ + /* uncomment if you want to confirm */
+ /* + /*
+ * DEBUG_LOCKS_WARN_ON(debug_locks + * DEBUG_LOCKS_WARN_ON(debug_locks
+ * && !arch_spin_is_locked(&lockdep_lock)); + * && !arch_spin_is_locked(&lockdep_lock));
+ */ + */
...@@ -78,10 +78,10 @@ index c4f72e461d28..53979dd893e0 100644 ...@@ -78,10 +78,10 @@ index c4f72e461d28..53979dd893e0 100644
+ if (!class && lastu) + if (!class && lastu)
+ for (u = 0; u < lastu; u++) { + for (u = 0; u < lastu; u++) {
+ if (unused_lock_class_test(u)) { + if (unused_lock_class_test(u)) {
+ /* + /*
+ * pr_debug("%s:%d: u %lu\n", + * pr_debug("%s:%d: u %lu\n",
+ * __func__, __LINE__, u); + * __func__, __LINE__, u);
+ */ + */
+ class = lock_classes + u; + class = lock_classes + u;
+ break; + break;
+ } + }
...@@ -98,7 +98,7 @@ index c4f72e461d28..53979dd893e0 100644 ...@@ -98,7 +98,7 @@ index c4f72e461d28..53979dd893e0 100644
/* /*
* Register a lock's class in the hash-table, if the class is not present * Register a lock's class in the hash-table, if the class is not present
* yet. Otherwise we look it up. We cache the result in the lock object * yet. Otherwise we look it up. We cache the result in the lock object
@@ -781,16 +835,22 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force) @@ -781,16 +835,21 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
* Allocate a new key from the static array, and add it to * Allocate a new key from the static array, and add it to
* the hash: * the hash:
*/ */
...@@ -111,9 +111,8 @@ index c4f72e461d28..53979dd893e0 100644 ...@@ -111,9 +111,8 @@ index c4f72e461d28..53979dd893e0 100644
+ if (class) + if (class)
+ class->usage_mask = 0; + class->usage_mask = 0;
+ else { + else {
+ if (!debug_locks_off_graph_unlock()) { + if (!debug_locks_off_graph_unlock())
+ return NULL; + return NULL;
+ }
+ +
+ print_lockdep_off("BUG: MAX_LOCKDEP_KEYS too low!"); + print_lockdep_off("BUG: MAX_LOCKDEP_KEYS too low!");
+ dump_stack(); + dump_stack();
...@@ -128,7 +127,7 @@ index c4f72e461d28..53979dd893e0 100644 ...@@ -128,7 +127,7 @@ index c4f72e461d28..53979dd893e0 100644
debug_atomic_inc(nr_unused_locks); debug_atomic_inc(nr_unused_locks);
class->key = key; class->key = key;
class->name = lock->name; class->name = lock->name;
@@ -4124,6 +4188,7 @@ void lockdep_reset(void) @@ -4124,6 +4187,7 @@ void lockdep_reset(void)
INIT_HLIST_HEAD(chainhash_table + i); INIT_HLIST_HEAD(chainhash_table + i);
raw_local_irq_restore(flags); raw_local_irq_restore(flags);
} }
...@@ -136,12 +135,14 @@ index c4f72e461d28..53979dd893e0 100644 ...@@ -136,12 +135,14 @@ index c4f72e461d28..53979dd893e0 100644
/* /*
* Remove all references to a lock class. The caller must hold the graph lock. * Remove all references to a lock class. The caller must hold the graph lock.
@@ -4132,19 +4197,20 @@ static void zap_class(struct lock_class *class) @@ -4133,18 +4197,22 @@ static void zap_class(struct lock_class *class)
{
int i; int i;
+ /* pr_debug("%s:%d: %lu\n", __func__, __LINE__, class - lock_classes); */
/* /*
+ * pr_debug("%s:%d: %lu\n",
+ * __func__, __LINE__, class - lock_classes);
+ */
+ /*
* Remove all dependencies this lock is * Remove all dependencies this lock is
* involved in: * involved in:
*/ */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment