]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
UBUNTU: SAUCE: Update aufs to 5.4.3 20200302
authorSeth Forshee <seth.forshee@canonical.com>
Wed, 8 Apr 2020 12:41:33 +0000 (07:41 -0500)
committerSeth Forshee <seth.forshee@canonical.com>
Wed, 8 Apr 2020 12:45:10 +0000 (07:45 -0500)
Import aufs5.4.3 20200302 from https://github.com/sfjro/aufs5-standalone
commit e7a55d2cf765eb18b870bf6a9baf955d8b7e3863.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
91 files changed:
Documentation/filesystems/aufs/README
Documentation/filesystems/aufs/design/01intro.txt
Documentation/filesystems/aufs/design/02struct.txt
Documentation/filesystems/aufs/design/03atomic_open.txt
Documentation/filesystems/aufs/design/03lookup.txt
Documentation/filesystems/aufs/design/04branch.txt
Documentation/filesystems/aufs/design/05wbr_policy.txt
Documentation/filesystems/aufs/design/06dirren.txt
Documentation/filesystems/aufs/design/06fhsm.txt
Documentation/filesystems/aufs/design/06mmap.txt
Documentation/filesystems/aufs/design/06xattr.txt
Documentation/filesystems/aufs/design/07export.txt
Documentation/filesystems/aufs/design/08shwh.txt
Documentation/filesystems/aufs/design/10dynop.txt
drivers/block/loop.h
fs/aufs/aufs.h
fs/aufs/branch.c
fs/aufs/branch.h
fs/aufs/cpup.c
fs/aufs/cpup.h
fs/aufs/dbgaufs.c
fs/aufs/dbgaufs.h
fs/aufs/dcsub.c
fs/aufs/dcsub.h
fs/aufs/debug.c
fs/aufs/debug.h
fs/aufs/dentry.c
fs/aufs/dentry.h
fs/aufs/dinfo.c
fs/aufs/dir.c
fs/aufs/dir.h
fs/aufs/dirren.c
fs/aufs/dirren.h
fs/aufs/dynop.c
fs/aufs/dynop.h
fs/aufs/export.c
fs/aufs/f_op.c
fs/aufs/fhsm.c
fs/aufs/file.c
fs/aufs/file.h
fs/aufs/finfo.c
fs/aufs/fstype.h
fs/aufs/hbl.h
fs/aufs/hfsnotify.c
fs/aufs/hfsplus.c
fs/aufs/hnotify.c
fs/aufs/i_op.c
fs/aufs/i_op_add.c
fs/aufs/i_op_del.c
fs/aufs/i_op_ren.c
fs/aufs/iinfo.c
fs/aufs/inode.c
fs/aufs/inode.h
fs/aufs/ioctl.c
fs/aufs/lcnt.h
fs/aufs/loop.c
fs/aufs/loop.h
fs/aufs/module.c
fs/aufs/module.h
fs/aufs/mvdown.c
fs/aufs/opts.c
fs/aufs/opts.h
fs/aufs/plink.c
fs/aufs/poll.c
fs/aufs/posix_acl.c
fs/aufs/procfs.c
fs/aufs/rdu.c
fs/aufs/rwsem.h
fs/aufs/sbinfo.c
fs/aufs/super.c
fs/aufs/super.h
fs/aufs/sysaufs.c
fs/aufs/sysaufs.h
fs/aufs/sysfs.c
fs/aufs/sysrq.c
fs/aufs/vdir.c
fs/aufs/vfsub.c
fs/aufs/vfsub.h
fs/aufs/wbr_policy.c
fs/aufs/whout.c
fs/aufs/whout.h
fs/aufs/wkq.c
fs/aufs/wkq.h
fs/aufs/xattr.c
fs/aufs/xino.c
fs/fcntl.c
fs/read_write.c
include/linux/fs.h
include/uapi/linux/aufs_type.h
mm/prfile.c
mm/shmem.c

index 6e6774fbf602d6196aaa976b0a2ff0b83d399be7..3e655d357134c8ce85dbd989fbfd717de1785bc8 100644 (file)
@@ -272,7 +272,8 @@ optional. When you meet some problems, they will help you.
   the internal locks for LOCKDEP is necessary. LOCKDEP is a debugging
   feature of linux kernel. If you enable CONFIG_LOCKDEP, then you will
   need to apply this debug patch to expand several constant values.
-  If don't know what LOCKDEP is, then you don't have apply this patch.
+  If you don't know what LOCKDEP is, then you don't have apply this
+  patch.
 
 
 4. Usage
@@ -322,6 +323,7 @@ know with:
   system, instead of the date you downloaded.
 - configuration (define/undefine CONFIG_AUFS_xxx)
 - kernel configuration or /proc/config.gz (if you have it)
+- LSM (linux security module, if you are using)
 - behaviour which you think to be incorrect
 - actual operation, reproducible one is better
 - mailto: aufs-users at lists.sourceforge.net
index 609bf0e9b93acd67d354f49427244fe27a171e0c..47e0a01a8af2cfd8199d8813dc1af3fe9085769b 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2005-2019 Junjiro R. Okajima
+# Copyright (C) 2005-2020 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
index 2467788c7f10f32d0eb0270b5658f78690ce1bfa..0092b3dcfbe0ff22dd2da15211d8acb4f942c17b 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2005-2019 Junjiro R. Okajima
+# Copyright (C) 2005-2020 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
index 9f16ac1e0173d9e1909efd6b61599b7f26aad3d3..fb8cf0bc8c720e70b6597564dcb1f6e0ed98f85a 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2015-2019 Junjiro R. Okajima
+# Copyright (C) 2015-2020 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
index 08b443d94dfa2e5af63d59e4a0a72aa83cec576d..5c3c97f11c571172a1505fcd308b88943d804460 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2005-2019 Junjiro R. Okajima
+# Copyright (C) 2005-2020 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
index 3ab3682a42b4d31eb3467817bdacc34e6bca822a..da5200be41a9f1f9f02fd714d4c9726eb9f09c82 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2005-2019 Junjiro R. Okajima
+# Copyright (C) 2005-2020 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
index 1f9b86bc6a3e7bad8865f18206edc3e6e514aaf3..0262084bf634763171eb90eee8288cbbb9f9f28d 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2005-2019 Junjiro R. Okajima
+# Copyright (C) 2005-2020 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
index 3b80f8659b3ed725c11abff593bed18c9e3290c9..38ae77b2c842da6c45fecbfbac99b02acfb278f7 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2017-2019 Junjiro R. Okajima
+# Copyright (C) 2017-2020 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
index 8b498d0af812e6eb8d6dfecd5621c3927b48b230..df985662befb082302f1d42da6f5c50e2c6689b0 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2011-2019 Junjiro R. Okajima
+# Copyright (C) 2011-2020 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
index cdd84ea777fcfd903dc45898d2eee42d66750e0b..9184f67104375608b8a3f1ce7641b513f178d8e1 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2005-2019 Junjiro R. Okajima
+# Copyright (C) 2005-2020 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
index edd7553f32897c011e01e92c75b8b2ee8e2a32a8..d0f6aedfe2d006cd38cfd6b5a72fe363fa94fa6d 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2014-2019 Junjiro R. Okajima
+# Copyright (C) 2014-2020 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
index 9b983f3dd78a31634929f1cc37e6a5bb2e1b9408..6fcb00d7dbdb68c5ae7a460de59695ec01359f6b 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2005-2019 Junjiro R. Okajima
+# Copyright (C) 2005-2020 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
index 647a86a65db7103a5504715285ef2655f09b336d..d7e58319086b10ec9c8549d6978be8e25aec467e 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2005-2019 Junjiro R. Okajima
+# Copyright (C) 2005-2020 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
index 13e8583f2b916bd4e130e3280a4855f1803beb38..d55cae285dff37d3506fcafd158e086239a7579c 100644 (file)
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2010-2019 Junjiro R. Okajima
+# Copyright (C) 2010-2020 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
index 1e6ee5a4f623d7fbeef35edfda89ced304628624..1d847cb194ff6a66fe9ec56f8cd70d77c3fd9530 100644 (file)
@@ -46,7 +46,7 @@ struct loop_device {
        int             (*ioctl)(struct loop_device *, int cmd, 
                                 unsigned long arg); 
 
-       struct file *   lo_backing_file, *lo_backing_virt_file;
+       struct file     *lo_backing_file, *lo_backing_virt_file;
        struct block_device *lo_device;
        void            *key_data; 
 
index a62a85211b883529abe37db8f4ecff661c53975b..9a573445876f45b00aadc227b48fe6552c8bdb86 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 608bf76f8f21bccab306ac8bd9977a32cd9670c0..1f141fc8ffed6ebc7c8639578000b27d4d56d054 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 012459ad57f345b0383426228e8596a9611a7d31..594c8bd674b2af1310d71e4cb51975a96bfe6ff8 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 21134b448967920e7358d8e271b4939020c0e761..492442339b6cf01a673acbe3ad81f63f2ca58aef 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index abcbfbc55a5c392380626cb4c8c545d45f721139..d02f8150fa05e794a78ef08e32652708d161622a 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index e32d91d1f63810cba04dab61a240d848c23aff31..80266f4fcf7d729a29bcaaa812265d8e692fc011 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 1ea241bf023420ff713981aa516c9f608abb718a..7b4ccdebb678faa5a6e1ddf4d45b22e61f1601d4 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 0b9122307667cd83565f6cc79de6932575dacdd3..0b9b1862b563a9587249613abd892df72634dd2f 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 5e578995c2563e40040b80d8058553dbc0d814a5..36f7fcdd7f233098a2ee10914767061130bb0793 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index b93bb4f565bfb9393e38394ef9da39c60d90f396..f0c076c61252b616ed801f96e2e314ff4fe3f606 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 9c52470a61fba2a5e291db04d10c6bf114007e93..7e46953513f27e055c97d674d7f236c983b250f5 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index faf664508e64be7d2e6ab7b5d1928eb571e42224..50aaaa21d089929e8b7be7a6c6f955699d3c3209 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 3b443fc7eef0ab9828c0c96b6ba597564bf965ed..c9f9c704da0a8335b37154f0622717239ff444e6 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 86140548f0463b7d3ce51d7f16335d703193d111..be959106d980885ac2a921a1ced5d33827debff5 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 68e87d6f287e36fa82d81d48212cfb9f3c9b085c..0bcb39ee72558baeb1477c599477801f2193499b 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 5c8065d258bfaf49ccaf1a3b0861adc4964b854e..ef4d1addf168118d9c020c3d5df657bb24368b57 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 0bd412ab68c9512b0953569c056ebfd3e1ca6caf..354997f3e9f7821fcb26436d4ae0cd1e70356bdc 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2017-2019 Junjiro R. Okajima
+ * Copyright (C) 2017-2020 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
@@ -81,7 +81,7 @@ int au_dr_hino_test_add(struct au_dr_br *dr, ino_t ino,
        found = 0;
        idx = au_dr_ihash(ino);
        hbl = dr->dr_h_ino + idx;
-#if 0
+#if 0 /* debug print */
        {
                struct hlist_bl_node *tmp;
 
@@ -1215,8 +1215,8 @@ int au_dr_lkup_name(struct au_do_lookup_args *lkup, aufs_bindex_t btgt)
        err = 0;
        if (!lkup->dirren.drinfo)
                goto out;
-       AuDebugOn(lkup->dirren.ninfo < btgt + 1);
-       drinfo = lkup->dirren.drinfo[btgt + 1];
+       AuDebugOn(lkup->dirren.ninfo <= btgt);
+       drinfo = lkup->dirren.drinfo[btgt];
        if (!drinfo)
                goto out;
 
@@ -1245,8 +1245,8 @@ int au_dr_lkup_h_ino(struct au_do_lookup_args *lkup, aufs_bindex_t bindex,
        match = 1;
        if (!lkup->dirren.drinfo)
                goto out;
-       AuDebugOn(lkup->dirren.ninfo < bindex + 1);
-       drinfo = lkup->dirren.drinfo[bindex + 1];
+       AuDebugOn(lkup->dirren.ninfo <= bindex);
+       drinfo = lkup->dirren.drinfo[bindex];
        if (!drinfo)
                goto out;
 
index a986736462c3a746bf975f3d322f058c30a78efc..1fbc8fb20defb389611f623a75e2a5e62108c061 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2017-2019 Junjiro R. Okajima
+ * Copyright (C) 2017-2020 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
index ed79f8255a8f18e549f9811fe6242fffac67c48d..837f94d49f748849b240e30214dcb1f6b37cfb95 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2010-2019 Junjiro R. Okajima
+ * Copyright (C) 2010-2020 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
index 5d0b36559425c6bfd9ea7d45f60e1eaac30df1b9..c0c7a5485ad7bc97c7b49de00a06e1c26f262a93 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2010-2019 Junjiro R. Okajima
+ * Copyright (C) 2010-2020 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
index 1da2ca0a969bc9fac8a86fbbe45f7da916ec8b0a..842df6f05517c4485d9972b96a71082af05042a0 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index e3376c87dc8e04da2d44ea0b346adc4e6ce84095..84e142e736200d17f4b9be471739111e35ded29b 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -330,7 +330,7 @@ static ssize_t au_do_iter(struct file *h_file, int rw, struct kiocb *kio,
        if (unlikely(err))
                goto out;
 
-       err = -ENOSYS;
+       err = -ENOSYS;  /* the branch doesn't have its ->(read|write)_iter() */
        iter = NULL;
        if (rw == MAY_READ)
                iter = h_file->f_op->read_iter;
@@ -774,7 +774,7 @@ out:
 /* ---------------------------------------------------------------------- */
 
 /* no one supports this operation, currently */
-#if 0
+#if 0 /* reserved for future use */
 static ssize_t aufs_sendpage(struct file *file, struct page *page, int offset,
                             size_t len, loff_t *pos, int more)
 {
@@ -810,7 +810,7 @@ const struct file_operations aufs_file_fop = {
        .setfl          = aufs_setfl,
        .splice_write   = aufs_splice_write,
        .splice_read    = aufs_splice_read,
-#if 0
+#if 0 /* reserved for future use */
        .aio_splice_write = aufs_aio_splice_write,
        .aio_splice_read  = aufs_aio_splice_read,
 #endif
index f86a4c24fb26b4f6a68febe3eaabcbadddaec2b8..9cef93b42993332d6afd59624e4a0d376f1d0bcc 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2011-2019 Junjiro R. Okajima
+ * Copyright (C) 2011-2020 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
index dbb33855d22602f520433137c1e1f41b17f73b35..b0075b57d8bc5f37cbdfa3316eaae6e2b9596555 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index c679a19df5285ad64b4d6000d95d27331a4c845c..d124d9c8216d9f19238c668246bd25f7308f452e 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 448c5e9cd85dde5cddcdbcd6810d60f8f6c52485..25077670a50789b8c36bf09f9f2beade3ae2b1c8 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 510bd87e94043dba77d2e58680e9672c643bef2a..af4bc6c0dd427e44786d6260cdcd3fd94dd4c60e 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 6db65b16b08a23047cda057985cd129992be36d3..4d5016bccc51bbbb21082761eb0bdb0d31901035 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2017-2019 Junjiro R. Okajima
+ * Copyright (C) 2017-2020 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
index 7945ae3ca073622909f674cf47367748e82def41..cb4eeb1e606926097895ecaeb4ed47f7e662baa3 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 3bd869a69c8f5f13ef681f214fcb0b3b08f8de20..d250f019bedfe6e7994265acd8c4cdaa58f36a5d 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2010-2019 Junjiro R. Okajima
+ * Copyright (C) 2010-2020 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
index 2e7c2cdb8202021dec167eef1ea7d44add1e7a51..231edd1b4753d27a4f7d70e198d4fdc16903b142 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -182,12 +182,6 @@ static int hn_gen_tree(struct dentry *dentry)
 
 out_dpages:
        au_dpages_free(&dpages);
-
-#if 0
-       /* discard children */
-       dentry_unhash(dentry);
-       dput(dentry);
-#endif
 out:
        return err;
 }
index ef1e08c7ca1071f8426cb697445e1c39fbcd30eb..2aa63a7232ff0dc5d131a78a11738d93f7c9b341 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -72,19 +72,6 @@ static int h_permission(struct inode *h_inode, int mask,
        if (!err)
                err = security_inode_permission(h_inode, mask);
 
-#if 0
-       if (!err) {
-               /* todo: do we need to call ima_path_check()? */
-               struct path h_path = {
-                       .dentry =
-                       .mnt    = h_mnt
-               };
-               err = ima_path_check(&h_path,
-                                    mask & (MAY_READ | MAY_WRITE | MAY_EXEC),
-                                    IMA_COUNT_LEAVE);
-       }
-#endif
-
 out:
        return err;
 }
@@ -106,7 +93,13 @@ static int aufs_permission(struct inode *inode, int mask)
        sb = inode->i_sb;
        si_read_lock(sb, AuLock_FLUSH);
        ii_read_lock_child(inode);
-#if 0
+#if 0 /* reserved for future use */
+       /*
+        * This test may be rather 'too much' since the test is essentially done
+        * in the aufs_lookup().  Theoretically it is possible that the inode
+        * generation doesn't match to the superblock's here.  But it isn't a
+        * big deal I suppose.
+        */
        err = au_iigen_test(inode, au_sigen(sb));
        if (unlikely(err))
                goto out;
@@ -224,7 +217,7 @@ static struct dentry *aufs_lookup(struct inode *dir, struct dentry *dentry,
        if (inode)
                atomic_inc(&inode->i_count);
        ret = d_splice_alias(inode, dentry);
-#if 0
+#if 0 /* reserved for future use */
        if (unlikely(d_need_lookup(dentry))) {
                spin_lock(&dentry->d_lock);
                dentry->d_flags &= ~DCACHE_NEED_LOOKUP;
index af6893e6106600a80600ebdafe4dff6db0fdb767..80f2cfeeaaa0e2f86e3a486f083fa8588c99def5 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 1c459dbea5db45eb9da1f6c0cae30ce177fc7845..9beba2ba8db020f35ad9a837567dac1c2b108ef0 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 91aa66594a420ecd23b510e6be4bcd4d82721e4d..435fa50811ffce457ac8c278a55ec362e435c64c 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -415,7 +415,7 @@ static int do_rename(struct au_ren_args *a)
        }
 
        BUG_ON(d_is_positive(a->dst_h_dentry) && a->src_btop != a->btgt);
-#if 0
+#if 0 /* debugging */
        BUG_ON(!au_ftest_ren(a->auren_flags, DIRREN)
               && d_is_positive(a->dst_h_dentry)
               && a->src_btop != a->btgt);
index 098fd115052a3b233fae4882c8c75fe7d2a89a36..016db39451cd99f8275b4cc625bf31b307a16368 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 985377d9bf66d3a2ae8267d74519f8d3a1bb910a..4de1b7507c5b3d425ad0579f384924f5e9286684 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -212,7 +212,7 @@ static int set_inode(struct inode *inode, struct dentry *dentry)
        struct dentry *h_dentry;
        struct inode *h_inode;
        struct au_iinfo *iinfo;
-       struct inode_operations *iop;
+       const struct inode_operations *iop;
 
        IiMustWriteLock(inode);
 
index e387ef16e99946836f4a470bf9ecb2f9212d3dc1..f34ea87394271767ddfac00cca757b9aa1cdfb38 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -157,7 +157,7 @@ enum {
        AuIop_OTHER,
        AuIop_Last
 };
-extern struct inode_operations aufs_iop[AuIop_Last],
+extern struct inode_operations aufs_iop[AuIop_Last], /* not const */
        aufs_iop_nogetattr[AuIop_Last];
 
 /* au_wr_dir flags */
index fb2fb758283e67edee102739a5624c4ce1854def..ae4f73386b907982fa0e710347456558e6065bfc 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index d8508f875f2833af8642ad38b2ede43d6b2ca2ae..8afcabe5582633d0ab7d045903590dc0e495ddb1 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2018-2019 Junjiro R. Okajima
+ * Copyright (C) 2018-2020 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
index 52c441cb30669f003408c3b6eb32ee76dd6c4692..222c1dce3ddf1d2304c66d5e479328122b9a8df8 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 8eb091a8400544411992dde5756e92d161323b73..74cd76cf55a6dc9120a5a5dbe1ebed0a075c962d 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 295736adfc3c3a71a60e6e3443a0acdfa72ad046..7245197a6cbf0f7d4e0a07402fbff16f87327c57 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 3036754b90d002a4c515b392edb6de24e89ce85f..d6a76788d2ffe010787ac64a61ccca9083cf32f9 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index cbac849ead31f144e112a8e5240976c15f195f73..c39a39e52ebcac0bf1a4b14e28575bcbb8f0149f 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2011-2019 Junjiro R. Okajima
+ * Copyright (C) 2011-2020 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
index 77e17d7b3bdfeb517d7a2a050d5b3243f874d498..16e785facf9b97a622f7590141e34fd9cd30017b 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -1627,7 +1627,7 @@ int au_opts_verify(struct super_block *sb, unsigned long sb_flags,
                if ((br->br_perm & AuBrAttr_ICEX)
                    && !h_dir->i_op->listxattr)
                        br->br_perm &= ~AuBrAttr_ICEX;
-#if 0
+#if 0 /* untested */
                if ((br->br_perm & AuBrAttr_ICEX_SEC)
                    && (au_br_sb(br)->s_flags & SB_NOSEC))
                        br->br_perm &= ~AuBrAttr_ICEX_SEC;
index 6326b54340c7812aee646fd6897980b38bc62020..79f3ea56f8bb8e49107a4d19bfd73ab6a258f0eb 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 718edb8827a3cfab304231d98ffab7cfa9f8f633..850829b2188894785d30aec7d8d8a7bad9c45758 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index c48c6cb6491f0bfe3b9ee066b32be8d2234b8a54..6975d3ab2d299bdf4e55387da9fc8333bd516b62 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 3c8f9a222ed81af806ef1d9751b9fee4f449207e..0789335650de2b779424ac35d31aafb279e6b008 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2014-2019 Junjiro R. Okajima
+ * Copyright (C) 2014-2020 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
index 582dd486fcd305d8bbd3e67132f5b8dff7ec3269..20bb15d45472461a3153c28a2aa90c019b6fa36a 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2010-2019 Junjiro R. Okajima
+ * Copyright (C) 2010-2020 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
index 3805e79627eb2a7a3d440274a5b6d0d6e4240b70..afd77564f3dc0f9aaedd1383b44711893490c991 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 2f8988fa1bda526bd7fbf11e0f72498d3d7ab6bb..370eae15934891b7cb2f53cb6ab972650d44fbd4 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 500a920b4ea15125bc0bdad3d96de07adba0b18a..3835be61d97817e49c27f7894de9fceb5e7c0bee 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 7e56cf5cc4e310190ff84fd700375868352697f1..ce7dfe8a7caf7d9c2e9dbcb8d2ae99aa76a9572c 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -246,7 +246,7 @@ static int aufs_show_options(struct seq_file *m, struct dentry *dentry)
        sb = dentry->d_sb;
        if (sb->s_flags & SB_POSIXACL)
                seq_puts(m, ",acl");
-#if 0
+#if 0 /* reserved for future use */
        if (sb->s_flags & SB_I_VERSION)
                seq_puts(m, ",i_version");
 #endif
index 37f02bb213249e794f98935b2c40fb93ab7cf14e..c0cb0051242c0f08a4670c0bc9ae1fd3f588aa59 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -179,7 +179,7 @@ struct au_sbinfo {
        struct hlist_bl_head    si_files;
 
        /* with/without getattr, brother of sb->s_d_op */
-       struct inode_operations *si_iop_array;
+       const struct inode_operations *si_iop_array;
 
        /*
         * sysfs and lifetime management.
index 32a0811c54de05a07d6124e29af3d2cf95e5af24..f615471231b5a0315934e207fe1b01e3f9e7226c 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 195fe279b820de3c3760fdf476dbd351d2f5764e..55c5c9868f3b0995e10caed7c92bb01f2421cfac 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index eda987628dbbce49bbb77ec5fda86f7c30b5b02d..46638d88ef21d14981609e0353f3311108927d62 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index db10ec528f5d6b6507156ab66402da680a6f2d50..fc8aa4a2839f65a3e2f859d27a27f33e34913bed 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -34,6 +34,7 @@ static void sysrq_sb(struct super_block *sb)
        struct hlist_bl_head *files;
        struct hlist_bl_node *pos;
        struct au_finfo *finfo;
+       struct inode *i;
 
        plevel = au_plevel;
        au_plevel = KERN_WARNING;
@@ -46,14 +47,7 @@ static void sysrq_sb(struct super_block *sb)
        pr("superblock\n");
        au_dpri_sb(sb);
 
-#if 0
-       pr("root dentry\n");
-       au_dpri_dentry(sb->s_root);
-       pr("root inode\n");
-       au_dpri_inode(d_inode(sb->s_root));
-#endif
-
-#if 0
+#if 0 /* reserved */
        do {
                int err, i, j, ndentry;
                struct au_dcsub_pages dpages;
@@ -74,21 +68,16 @@ static void sysrq_sb(struct super_block *sb)
        } while (0);
 #endif
 
-#if 1
-       {
-               struct inode *i;
-
-               pr("isolated inode\n");
-               spin_lock(&sb->s_inode_list_lock);
-               list_for_each_entry(i, &sb->s_inodes, i_sb_list) {
-                       spin_lock(&i->i_lock);
-                       if (1 || hlist_empty(&i->i_dentry))
-                               au_dpri_inode(i);
-                       spin_unlock(&i->i_lock);
-               }
-               spin_unlock(&sb->s_inode_list_lock);
+       pr("isolated inode\n");
+       spin_lock(&sb->s_inode_list_lock);
+       list_for_each_entry(i, &sb->s_inodes, i_sb_list) {
+               spin_lock(&i->i_lock);
+               if (hlist_empty(&i->i_dentry))
+                       au_dpri_inode(i);
+               spin_unlock(&i->i_lock);
        }
-#endif
+       spin_unlock(&sb->s_inode_list_lock);
+
        pr("files\n");
        files = &au_sbi(sb)->si_files;
        hlist_bl_lock(files);
index dc768f5d90c6803cc8606f2cdc04825e992f2a18..5ba006b80724f4ffeccb0ecad0e1dd180dbe1633 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -95,7 +95,7 @@ int au_nhash_alloc(struct au_nhash *nhash, unsigned int num_hash, gfp_t gfp)
 
 static void nhash_count(struct hlist_head *head)
 {
-#if 0
+#if 0 /* debugging */
        unsigned long n;
        struct hlist_node *pos;
 
index d6945e22593eb70ad7e460424e76c9448ac1269b..e954cd7d01101624ea05fbb081c8c44787d5226a 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 51e677c7f6b7b58ad49d8c346a323ec06b86090d..705f033ba2c3903814d5c7710859f479f8b1cf56 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 64954145c0ec0846bbed29adeb872e503624ac59..a7cc1109f69dd36e74f8bf71fdfedb8b91816fe2 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 6c9c8501562aeba79d73e12ac5a41ed4eae6678d..efe0c16508dba26acbe1488fb06da2032eae9d39 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -305,7 +305,7 @@ static int test_linkable(struct dentry *h_root)
 
        pr_err("%pd (%s) doesn't support link(2), use noplink and rw+nolwh\n",
               h_root, au_sbtype(h_root->d_sb));
-       return -ENOSYS;
+       return -ENOSYS; /* the branch doesn't have its ->link() */
 }
 
 /* todo: should this mkdir be done in /sbin/mount.aufs helper? */
index 06f69b24e5c14fb50d8c1dbdd537b60f63b13015..65459ba0e7907cab40773de4dbc240d676b9a126 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index b0dd8df4e41479665245fca241e8d75b4047b00d..9d92e1fd2e4bfa40a8dbed10610be5d1ed20e5e8 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -153,8 +153,8 @@ static int au_wkq_lockdep_alloc(struct au_wkinfo *wkinfo)
                goto out;
 
        err = 0;
-#if 0
-       if (0 && au_debug_test()) /* left for debugging */
+#if 0 /* left for debugging */
+       if (0 && au_debug_test())
                lockdep_print_held_locks(curr);
 #endif
        held_locks = curr->held_locks;
@@ -231,7 +231,6 @@ static void wkq_func(struct work_struct *wk)
 /*
  * Since struct completion is large, try allocating it dynamically.
  */
-#if 1 /* defined(CONFIG_4KSTACKS) || defined(AuTest4KSTACKS) */
 #define AuWkqCompDeclare(name) struct completion *comp = NULL
 
 static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp)
@@ -250,25 +249,6 @@ static void au_wkq_comp_free(struct completion *comp)
        au_kfree_rcu(comp);
 }
 
-#else
-
-/* no braces */
-#define AuWkqCompDeclare(name) \
-       DECLARE_COMPLETION_ONSTACK(_ ## name); \
-       struct completion *comp = &_ ## name
-
-static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp)
-{
-       wkinfo->comp = *comp;
-       return 0;
-}
-
-static void au_wkq_comp_free(struct completion *comp __maybe_unused)
-{
-       /* empty */
-}
-#endif /* 4KSTACKS */
-
 static void au_wkq_run(struct au_wkinfo *wkinfo)
 {
        if (au_ftest_wkq(wkinfo->flags, NEST)) {
index 235370d91693d9292a0613cc2bc419ce2dc88f91..5be76b69d8ffdcc785b5a9b7dea1a5586d1ef193 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
index 8e56b15c53b526edffb2497fdfedbccf2405f0e4..b5ba7e32c5740ec57dfa60407f2a00dc71e91953 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2014-2019 Junjiro R. Okajima
+ * Copyright (C) 2014-2020 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
index 35ea33469d363a4099cdc262e26d04f6006cc13e..b3152c0ce0b53c68e316de443e0770fb9aa69022 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
@@ -1355,9 +1355,10 @@ static void au_xino_release(struct kref *kref)
        if (unlikely(ul)) {
                pr_warn("xi_writing %lu\n", ul);
                hlist_bl_lock(hbl);
-               hlist_bl_for_each_entry_safe (p, pos, n, hbl, node) {
+               hlist_bl_for_each_entry_safe(p, pos, n, hbl, node) {
                        hlist_bl_del(&p->node);
-                       au_kfree_rcu(p);
+                       /* kmemleak reported au_kfree_rcu() doesn't free it */
+                       kfree(p);
                }
                hlist_bl_unlock(hbl);
        }
index d4ad34463848c71d1895d04497c4d051a22b2d65..0468c845190fc4940502248e68998f9f4b3935c0 100644 (file)
@@ -32,7 +32,7 @@
 
 #define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME)
 
-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);
        int error = 0;
index 58234659d99945fad6421425e4a251ef9b1f2700..9f5ff742f870e53ee9d4b4ff55b5a556b2cd1338 100644 (file)
@@ -507,7 +507,7 @@ vfs_readf_t vfs_readf(struct file *file)
                return fop->read;
        if (fop->read_iter)
                return new_sync_read;
-       return ERR_PTR(-ENOSYS);
+       return ERR_PTR(-ENOSYS); /* doesn't have ->read(|_iter)() op */
 }
 EXPORT_SYMBOL_GPL(vfs_readf);
 
@@ -519,7 +519,7 @@ vfs_writef_t vfs_writef(struct file *file)
                return fop->write;
        if (fop->write_iter)
                return new_sync_write;
-       return ERR_PTR(-ENOSYS);
+       return ERR_PTR(-ENOSYS); /* doesn't have ->write(|_iter)() op */
 }
 EXPORT_SYMBOL_GPL(vfs_writef);
 
index cd43fffdfd5872f24c8de258906b46bb56d0c20a..ef02410ee7220cfbb8ddfa0ab7ad081c7e3a41eb 100644 (file)
@@ -1350,7 +1350,7 @@ extern void fasync_free(struct fasync_struct *);
 /* can be called from interrupts */
 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 int f_setown(struct file *filp, unsigned long arg, int force);
 extern void f_delown(struct file *filp);
@@ -1982,7 +1982,7 @@ struct super_operations {
                                  struct shrink_control *);
        long (*free_cached_objects)(struct super_block *,
                                    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 */
        struct file *(*real_loop)(struct file *);
 #endif
index f1016eb18ed7483e220a75cbbd1c3525c7e9464d..adfbb2d96008700081561d000fd927cc3382540e 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 /*
- * Copyright (C) 2005-2019 Junjiro R. Okajima
+ * Copyright (C) 2005-2020 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
 #define pr_fmt(fmt) \
                AUFS_NAME " %s:%d:%.*s[%d]: " fmt, __func__, __LINE__, \
                (int)sizeof(current->comm), current->comm, current->pid
+#include <linux/limits.h>
 #else
 #include <stdint.h>
 #include <sys/types.h>
+#include <limits.h>
 #endif /* __KERNEL__ */
 
-#include <linux/limits.h>
-
-#define AUFS_VERSION   "5.x-rcN-20191021"
+#define AUFS_VERSION   "5.4.3-20200302"
 
 /* todo? move this to linux-2.6.19/include/magic.h */
 #define AUFS_SUPER_MAGIC       ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
 
 /* ---------------------------------------------------------------------- */
 
+#ifdef __KERNEL__
 #ifdef CONFIG_AUFS_BRANCH_MAX_127
 typedef int8_t aufs_bindex_t;
 #define AUFS_BRANCH_MAX 127
@@ -61,7 +62,6 @@ typedef int16_t aufs_bindex_t;
 #endif
 #endif
 
-#ifdef __KERNEL__
 #ifndef AUFS_BRANCH_MAX
 #error unknown CONFIG_AUFS_BRANCH_MAX value
 #endif
index 024cdcfae1b1e6e5ec34452ec1d36bbb0059fc5f..00d51187c32502368561018fef63741c3d1dc416 100644 (file)
@@ -6,7 +6,7 @@
  *
  * See Documentation/filesystems/aufs/design/06mmap.txt
  *
- * Copyright (c) 2014-2019 Junjro R. Okajima
+ * Copyright (c) 2014-2020 Junjro R. Okajima
  * Copyright (c) 2014 Ian Campbell
  */
 
index 1534cbc125394d9900c36076ad9cbcf4ec26d2fb..37faed64784232780a2d8f2cf1ff890ce454600c 100644 (file)
@@ -110,7 +110,7 @@ struct shmem_falloc {
 
 struct shmem_options {
        unsigned long long blocks;
-       unsigned long long inodes;
+       int inodes;
        struct mempolicy *mpol;
        kuid_t uid;
        kgid_t gid;
@@ -3671,6 +3671,8 @@ static int shmem_fill_super(struct super_block *sb, struct fs_context *fc)
 #else
        sb->s_flags |= SB_NOUSER;
 #endif
+       mutex_init(&sbinfo->idr_lock);
+       idr_init(&sbinfo->idr);
        sbinfo->max_blocks = ctx->blocks;
        sbinfo->free_inodes = sbinfo->max_inodes = ctx->inodes;
        sbinfo->uid = ctx->uid;
@@ -3680,9 +3682,6 @@ static int shmem_fill_super(struct super_block *sb, struct fs_context *fc)
        sbinfo->mpol = ctx->mpol;
        ctx->mpol = NULL;
 
-       mutex_init(&sbinfo->idr_lock);
-       idr_init(&sbinfo->idr);
-
        spin_lock_init(&sbinfo->stat_lock);
        if (percpu_counter_init(&sbinfo->used_blocks, 0, GFP_KERNEL))
                goto failed;