From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Xiubo Li <xiubli@redhat.com>, Mike Christie <mchristi@redhat.com>,
Josef Bacik <josef@toxicpanda.com>, Jens Axboe <axboe@kernel.dk>,
Sasha Levin <sashal@kernel.org>,
linux-block@vger.kernel.org, nbd@other.debian.org
Subject: [PATCH AUTOSEL 4.14 53/56] nbd: fix possible sysfs duplicate warning
Date: Fri, 18 Oct 2019 18:07:50 -0400 [thread overview]
Message-ID: <20191018220753.10002-53-sashal@kernel.org> (raw)
In-Reply-To: <20191018220753.10002-1-sashal@kernel.org>
From: Xiubo Li <xiubli@redhat.com>
[ Upstream commit 862488105b84ca744b3d8ff131e0fcfe10644be1 ]
1. nbd_put takes the mutex and drops nbd->ref to 0. It then does
idr_remove and drops the mutex.
2. nbd_genl_connect takes the mutex. idr_find/idr_for_each fails
to find an existing device, so it does nbd_dev_add.
3. just before the nbd_put could call nbd_dev_remove or not finished
totally, but if nbd_dev_add try to add_disk, we can hit:
debugfs: Directory 'nbd1' with parent 'block' already present!
This patch will make sure all the disk add/remove stuff are done
by holding the nbd_index_mutex lock.
Reported-by: Mike Christie <mchristi@redhat.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/block/nbd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index a234600849558..3e45004407963 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -228,8 +228,8 @@ static void nbd_put(struct nbd_device *nbd)
if (refcount_dec_and_mutex_lock(&nbd->refs,
&nbd_index_mutex)) {
idr_remove(&nbd_index_idr, nbd->index);
- mutex_unlock(&nbd_index_mutex);
nbd_dev_remove(nbd);
+ mutex_unlock(&nbd_index_mutex);
}
}
--
2.20.1
next prev parent reply other threads:[~2019-10-18 22:14 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-18 22:06 [f2fs-dev] [PATCH AUTOSEL 4.14 01/56] f2fs: flush quota blocks after turnning it off Sasha Levin
2019-10-18 22:06 ` Sasha Levin
2019-10-18 22:06 ` [PATCH AUTOSEL 4.14 02/56] scsi: lpfc: Fix a duplicate 0711 log message number Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 03/56] sc16is7xx: Fix for "Unexpected interrupt: 8" Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 04/56] powerpc/powernv: hold device_hotplug_lock when calling memtrace_offline_pages() Sasha Levin
2019-10-18 22:07 ` Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 05/56] HID: i2c-hid: add Direkt-Tek DTLAPY133-1 to descriptor override Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 06/56] x86/cpu: Add Atom Tremont (Jacobsville) Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 07/56] HID: i2c-hid: Add Odys Winbook 13 to descriptor override Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 08/56] clk: boston: unregister clks on failure in clk_boston_setup() Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 09/56] scripts/setlocalversion: Improve -dirty check with git-status --no-optional-locks Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 10/56] HID: Add ASUS T100CHI keyboard dock battery quirks Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 11/56] usb: handle warm-reset port requests on hub resume Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 12/56] rtc: pcf8523: set xtal load capacitance from DT Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 13/56] mlxsw: spectrum: Set LAG port collector only when active Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 14/56] ALSA: hda/realtek - Apply ALC294 hp init also for S4 resume Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 15/56] media: vimc: Remove unused but set variables Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 16/56] exec: load_script: Do not exec truncated interpreter path Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 17/56] PCI/PME: Fix possible use-after-free on remove Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 18/56] power: supply: max14656: fix potential use-after-free Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 19/56] iio: adc: meson_saradc: Fix memory allocation order Sasha Levin
2019-10-18 22:07 ` Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 20/56] iio: fix center temperature of bmc150-accel-core Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 21/56] libsubcmd: Make _FORTIFY_SOURCE defines dependent on the feature Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 22/56] perf tests: Avoid raising SEGV using an obvious NULL dereference Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 23/56] perf map: Fix overlapped map handling Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 24/56] perf jevents: Fix period for Intel fixed counters Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 25/56] staging: rtl8188eu: fix null dereference when kzalloc fails Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 26/56] crypto: arm/aes-ce - add dependency on AES library Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 27/56] RDMA/hfi1: Prevent memory leak in sdma_init Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 28/56] RDMA/iwcm: Fix a lock inversion issue Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 29/56] HID: hyperv: Use in-place iterator API in the channel callback Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 30/56] nfs: Fix nfsi->nrequests count error on nfs_inode_remove_request Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 31/56] arm64: ftrace: Ensure synchronisation in PLT setup for Neoverse-N1 #1542419 Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 32/56] tty: serial: owl: Fix the link time qualifier of 'owl_uart_exit()' Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 33/56] tty: n_hdlc: fix build on SPARC Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 34/56] gpio: max77620: Use correct unit for debounce times Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 35/56] fs: cifs: mute -Wunused-const-variable message Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 36/56] serial: mctrl_gpio: Check for NULL pointer Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 37/56] efi/cper: Fix endianness of PCIe class code Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 38/56] efi/x86: Do not clean dummy variable in kexec path Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 39/56] kbuild: fix build error of 'make nsdeps' in clean tree Sasha Levin
2019-10-19 0:13 ` Masahiro Yamada
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 40/56] MIPS: include: Mark __cmpxchg as __always_inline Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 41/56] x86/xen: Return from panic notifier Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 42/56] ocfs2: clear zero in unaligned direct IO Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 43/56] fs: ocfs2: fix possible null-pointer dereferences in ocfs2_xa_prepare_entry() Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 44/56] fs: ocfs2: fix a possible null-pointer dereference in ocfs2_write_end_nolock() Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 45/56] fs: ocfs2: fix a possible null-pointer dereference in ocfs2_info_scan_inode_alloc() Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 46/56] sched/vtime: Fix guest/system mis-accounting on task switch Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 47/56] perf/x86/amd: Change/fix NMI latency mitigation to use a timestamp Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 48/56] iio: adc: ad799x: fix probe error handling Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 49/56] iio: light: opt3001: fix mutex unlock race Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 50/56] MIPS: include: Mark __xchg as __always_inline Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 51/56] MIPS: fw: sni: Fix out of bounds init of o32 stack Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 52/56] USB: usb-skeleton: fix use-after-free after driver unbind Sasha Levin
2019-10-18 22:07 ` Sasha Levin [this message]
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 54/56] NFSv4: Fix leak of clp->cl_acceptor string Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 55/56] s390/uaccess: avoid (false positive) compiler warnings Sasha Levin
2019-10-18 22:07 ` [PATCH AUTOSEL 4.14 56/56] tracing: Initialize iter->seq after zeroing in tracing_read_pipe() Sasha Levin
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=20191018220753.10002-53-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=axboe@kernel.dk \
--cc=josef@toxicpanda.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mchristi@redhat.com \
--cc=nbd@other.debian.org \
--cc=stable@vger.kernel.org \
--cc=xiubli@redhat.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.