From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> To: linux-kernel@vger.kernel.org Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>, stable@vger.kernel.org, "Amir Goldstein" <amir73il@gmail.com>, syzbot <syzkaller@googlegroups.com>, "Mickaël Salaün" <mic@linux.microsoft.com>, "Vivek Goyal" <vgoyal@redhat.com>, "Miklos Szeredi" <mszeredi@redhat.com> Subject: [PATCH 5.12 08/17] ovl: fix leaked dentry Date: Wed, 5 May 2021 14:06:03 +0200 [thread overview] Message-ID: <20210505112325.225563588@linuxfoundation.org> (raw) In-Reply-To: <20210505112324.956720416@linuxfoundation.org> From: Mickaël Salaün <mic@linux.microsoft.com> commit eaab1d45cdb4bb0c846bd23c3d666d5b90af7b41 upstream. Since commit 6815f479ca90 ("ovl: use only uppermetacopy state in ovl_lookup()"), overlayfs doesn't put temporary dentry when there is a metacopy error, which leads to dentry leaks when shutting down the related superblock: overlayfs: refusing to follow metacopy origin for (/file0) ... BUG: Dentry (____ptrval____){i=3f33,n=file3} still in use (1) [unmount of overlay overlay] ... WARNING: CPU: 1 PID: 432 at umount_check.cold+0x107/0x14d CPU: 1 PID: 432 Comm: unmount-overlay Not tainted 5.12.0-rc5 #1 ... RIP: 0010:umount_check.cold+0x107/0x14d ... Call Trace: d_walk+0x28c/0x950 ? dentry_lru_isolate+0x2b0/0x2b0 ? __kasan_slab_free+0x12/0x20 do_one_tree+0x33/0x60 shrink_dcache_for_umount+0x78/0x1d0 generic_shutdown_super+0x70/0x440 kill_anon_super+0x3e/0x70 deactivate_locked_super+0xc4/0x160 deactivate_super+0xfa/0x140 cleanup_mnt+0x22e/0x370 __cleanup_mnt+0x1a/0x30 task_work_run+0x139/0x210 do_exit+0xb0c/0x2820 ? __kasan_check_read+0x1d/0x30 ? find_held_lock+0x35/0x160 ? lock_release+0x1b6/0x660 ? mm_update_next_owner+0xa20/0xa20 ? reacquire_held_locks+0x3f0/0x3f0 ? __sanitizer_cov_trace_const_cmp4+0x22/0x30 do_group_exit+0x135/0x380 __do_sys_exit_group.isra.0+0x20/0x20 __x64_sys_exit_group+0x3c/0x50 do_syscall_64+0x45/0x70 entry_SYSCALL_64_after_hwframe+0x44/0xae ... VFS: Busy inodes after unmount of overlay. Self-destruct in 5 seconds. Have a nice day... This fix has been tested with a syzkaller reproducer. Cc: Amir Goldstein <amir73il@gmail.com> Cc: <stable@vger.kernel.org> # v5.8+ Reported-by: syzbot <syzkaller@googlegroups.com> Fixes: 6815f479ca90 ("ovl: use only uppermetacopy state in ovl_lookup()") Signed-off-by: Mickaël Salaün <mic@linux.microsoft.com> Link: https://lore.kernel.org/r/20210329164907.2133175-1-mic@digikod.net Reviewed-by: Vivek Goyal <vgoyal@redhat.com> Signed-off-by: Miklos Szeredi <mszeredi@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- fs/overlayfs/namei.c | 1 + 1 file changed, 1 insertion(+) --- a/fs/overlayfs/namei.c +++ b/fs/overlayfs/namei.c @@ -919,6 +919,7 @@ struct dentry *ovl_lookup(struct inode * continue; if ((uppermetacopy || d.metacopy) && !ofs->config.metacopy) { + dput(this); err = -EPERM; pr_warn_ratelimited("refusing to follow metacopy origin for (%pd2)\n", dentry); goto out_put;
next prev parent reply other threads:[~2021-05-05 12:10 UTC|newest] Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-05 12:05 [PATCH 5.12 00/17] 5.12.2-rc1 review Greg Kroah-Hartman 2021-05-05 12:05 ` [PATCH 5.12 01/17] mips: Do not include hi and lo in clobber list for R6 Greg Kroah-Hartman 2021-05-05 12:05 ` [PATCH 5.12 02/17] netfilter: conntrack: Make global sysctls readonly in non-init netns Greg Kroah-Hartman 2021-05-05 12:05 ` [PATCH 5.12 03/17] net: usb: ax88179_178a: initialize local variables before use Greg Kroah-Hartman 2021-05-05 12:05 ` [PATCH 5.12 04/17] drm/i915: Disable runtime power management during shutdown Greg Kroah-Hartman 2021-05-05 12:06 ` [PATCH 5.12 05/17] bpf: Fix masking negation logic upon negative dst register Greg Kroah-Hartman 2021-05-05 12:06 ` [PATCH 5.12 06/17] bpf: Fix leakage of uninitialized bpf stack under speculation Greg Kroah-Hartman 2021-05-05 12:06 ` [PATCH 5.12 07/17] net: qrtr: Avoid potential use after free in MHI send Greg Kroah-Hartman 2021-05-05 12:06 ` Greg Kroah-Hartman [this message] 2021-05-05 12:06 ` [PATCH 5.12 09/17] ovl: allow upperdir inside lowerdir Greg Kroah-Hartman 2021-05-05 12:06 ` [PATCH 5.12 10/17] ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX Greg Kroah-Hartman 2021-05-05 12:06 ` [PATCH 5.12 11/17] ALSA: usb-audio: Fix implicit sync clearance at stopping stream Greg Kroah-Hartman 2021-05-05 12:06 ` [PATCH 5.12 12/17] USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet Greg Kroah-Hartman 2021-05-05 12:06 ` [PATCH 5.12 13/17] USB: Add reset-resume quirk for WD19s Realtek Hub Greg Kroah-Hartman 2021-05-05 12:06 ` [PATCH 5.12 14/17] ASoC: ak4458: Add MODULE_DEVICE_TABLE Greg Kroah-Hartman 2021-05-05 12:06 ` [PATCH 5.12 15/17] ASoC: ak5558: " Greg Kroah-Hartman 2021-05-05 12:06 ` [PATCH 5.12 16/17] platform/x86: thinkpad_acpi: Correct thermal sensor allocation Greg Kroah-Hartman 2021-05-05 12:06 ` [PATCH 5.12 17/17] perf/core: Fix unconditional security_locked_down() call Greg Kroah-Hartman 2021-05-05 17:52 ` [PATCH 5.12 00/17] 5.12.2-rc1 review Fox Chen 2021-05-05 19:09 ` Naresh Kamboju 2021-05-05 19:44 ` Florian Fainelli 2021-05-06 1:59 ` Guenter Roeck
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210505112325.225563588@linuxfoundation.org \ --to=gregkh@linuxfoundation.org \ --cc=amir73il@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mic@linux.microsoft.com \ --cc=mszeredi@redhat.com \ --cc=stable@vger.kernel.org \ --cc=syzkaller@googlegroups.com \ --cc=vgoyal@redhat.com \ --subject='Re: [PATCH 5.12 08/17] ovl: fix leaked dentry' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).