From: Christoph Hellwig <hch@lst.de>
To: Logan Gunthorpe <logang@deltatee.com>
Cc: Christoph Hellwig <hch@lst.de>,
axboe@kernel.dk, shinichiro.kawasaki@wdc.com,
dan.j.williams@intel.com, yukuai3@huawei.com,
ming.lei@redhat.com, linux-block@vger.kernel.org,
linux-raid <linux-raid@vger.kernel.org>,
Song Liu <song@kernel.org>
Subject: Re: REGRESSION: [PATCH 4/4] block: freeze the queue earlier in del_gendisk
Date: Mon, 11 Jul 2022 06:33:21 +0200 [thread overview]
Message-ID: <20220711043321.GA21925@lst.de> (raw)
In-Reply-To: <55940f1e-bd93-e167-2580-35880ab1e702@deltatee.com>
On Sun, Jul 10, 2022 at 09:33:51PM -0600, Logan Gunthorpe wrote:
> I did a fairly quick review of the patches:
>
> - In the patch that introduces md_free_disk() it looks like md_free()
> can still be called from the error path of md_alloc() before
> mddev->gendisk is set... which seems to make things rather complicated
> seeing we then can't use free_disk to finish the cleanup if the disk
> hasn't been created yet. I probably need to take closer look at this
> but, it might make more sense for the cleanup to remain in md_free() but
> call kobject_put() in md_free_disk() and del_gendisk() in
> mdev_delayed_delete(). Then md_alloc() can still use kobject_put() in
> the error path and it makes a little more sense seeing we'd still be
> freeing the kobject stuff in it's own release method instead of the
> disks free method.
Uww, yes. I suspect the best fix is to actually stop the kobject
from taking part in the md life time directly. Because the kobject
contributes a reference to the disk until it is deleted, we might
as well stop messing with the refcounts entirely and just call
kobject_del on it just before del_gendisk. Let me see what I can do
there.
>
> - In the patch with md_rdevs_overlap, it looks like we remove the
> rcu_read_lock(), which definitely seems out of place and probably isn't
> correct. But the comment that was recreated still references the rcu so
> probably should be changed.
Fixed.
> - The last patch has a typo in the title (disk is *a* freed).
Fixed.
next prev parent reply other threads:[~2022-07-11 4:33 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-14 7:48 fix tag freeing use after free and debugfs name reuse Christoph Hellwig
2022-06-14 7:48 ` [PATCH 1/4] block: disable the elevator int del_gendisk Christoph Hellwig
2022-06-14 8:23 ` Ming Lei
2022-06-14 8:34 ` Christoph Hellwig
2022-06-14 11:27 ` Ming Lei
2022-06-17 12:50 ` Jens Axboe
2022-06-17 13:26 ` Christoph Hellwig
2022-06-17 13:27 ` Jens Axboe
2022-06-14 7:48 ` [PATCH 2/4] block: serialize all debugfs operations using q->debugfs_mutex Christoph Hellwig
2022-06-14 7:48 ` [PATCH 3/4] block: remove per-disk debugfs files in blk_unregister_queue Christoph Hellwig
2022-06-14 7:48 ` [PATCH 4/4] block: freeze the queue earlier in del_gendisk Christoph Hellwig
2022-07-08 5:41 ` REGRESSION: " Logan Gunthorpe
2022-07-08 6:01 ` Christoph Hellwig
2022-07-08 15:55 ` Logan Gunthorpe
2022-07-09 8:17 ` Christoph Hellwig
2022-07-11 3:33 ` Logan Gunthorpe
2022-07-11 4:33 ` Christoph Hellwig [this message]
2022-06-17 13:31 ` fix tag freeing use after free and debugfs name reuse Jens Axboe
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=20220711043321.GA21925@lst.de \
--to=hch@lst.de \
--cc=axboe@kernel.dk \
--cc=dan.j.williams@intel.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=logang@deltatee.com \
--cc=ming.lei@redhat.com \
--cc=shinichiro.kawasaki@wdc.com \
--cc=song@kernel.org \
--cc=yukuai3@huawei.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.