From: Hannes Reinecke <hare@suse.de>
To: Luis Chamberlain <mcgrof@kernel.org>
Cc: axboe@kernel.dk, bvanassche@acm.org, ming.lei@redhat.com,
hch@infradead.org, jack@suse.cz, osandov@fb.com,
linux-block@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 7/8] null_blk: add error handling support for add_disk()
Date: Wed, 12 May 2021 19:28:16 +0200 [thread overview]
Message-ID: <096c9d6f-b765-ab70-098e-ab64d8b411df@suse.de> (raw)
In-Reply-To: <20210512172039.GQ4332@42.do-not-panic.com>
On 5/12/21 7:20 PM, Luis Chamberlain wrote:
> On Wed, May 12, 2021 at 07:12:03PM +0200, Hannes Reinecke wrote:
>> On 5/12/21 6:47 PM, Luis Chamberlain wrote:
>>> On Wed, May 12, 2021 at 05:16:39PM +0200, Hannes Reinecke wrote:
>>>> On 5/12/21 8:46 AM, Luis Chamberlain wrote:
>>>>> We never checked for errors on add_disk() as this function
>>>>> returned void. Now that this is fixed, use the shiny new
>>>>> error handling.
>>>>>
>>>>> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
>>>>> ---
>>>>> drivers/block/null_blk/main.c | 9 +++++++--
>>>>> 1 file changed, 7 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
>>>>> index 5f006d9e1472..2346d1292b26 100644
>>>>> --- a/drivers/block/null_blk/main.c
>>>>> +++ b/drivers/block/null_blk/main.c
>>>>> @@ -1699,6 +1699,7 @@ static int init_driver_queues(struct nullb *nullb)
>>>>> static int null_gendisk_register(struct nullb *nullb)
>>>>> {
>>>>> + int ret;
>>>>> sector_t size = ((sector_t)nullb->dev->size * SZ_1M) >> SECTOR_SHIFT;
>>>>> struct gendisk *disk;
>>>>> @@ -1719,13 +1720,17 @@ static int null_gendisk_register(struct nullb *nullb)
>>>>> strncpy(disk->disk_name, nullb->disk_name, DISK_NAME_LEN);
>>>>> if (nullb->dev->zoned) {
>>>>> - int ret = null_register_zoned_dev(nullb);
>>>>> + ret = null_register_zoned_dev(nullb);
>>>>> if (ret)
>>>>> return ret;
>>>>> }
>>>>> - add_disk(disk);
>>>>> + ret = add_disk(disk);
>>>>> + if (ret) {
>>>>
>>>> unregister_zoned_device() ?
>>>
>>> That function does not exist, do you mean null_free_zoned_dev()? If so
>>> that is done by the caller.
>>>
>> What I intended to say is that you are calling 'null_register_zoned_dev()'
>> at one point, but don't call a cleanup function if there is an error later
>> in the path, leaving the caller to guess whether null_register_zoned_dev()
>> has been called or not.
>> So we should call the cleanup function here, too.
>
> The cleanup for zone stuff is done on the caller.
>
My point being: how does he know?
The zone stuff might or might not be initialized.
Why not do the cleanup action in the error path of this function?
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer
next prev parent reply other threads:[~2021-05-12 17:32 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-12 6:46 [PATCH v1 0/8] block: add error handling for *add_disk*() Luis Chamberlain
2021-05-12 6:46 ` [PATCH v1 1/8] block: refcount the request_queue early in __device_add_disk() Luis Chamberlain
2021-05-12 15:07 ` Hannes Reinecke
2021-05-12 6:46 ` [PATCH v1 2/8] block: move disk announce work from register_disk() to a helper Luis Chamberlain
2021-05-12 15:08 ` Hannes Reinecke
2021-05-12 6:46 ` [PATCH v1 3/8] block: move disk invalidation from del_gendisk() into " Luis Chamberlain
2021-05-12 15:09 ` Hannes Reinecke
2021-05-12 6:46 ` [PATCH v1 4/8] block: move disk unregistration work from del_gendisk() to " Luis Chamberlain
2021-05-12 15:09 ` Hannes Reinecke
2021-05-12 6:46 ` [PATCH v1 5/8] block: add initial error handling for *add_disk()* and friends Luis Chamberlain
2021-05-12 15:15 ` Hannes Reinecke
2021-05-12 6:46 ` [PATCH v1 6/8] loop: add error handling support for add_disk() Luis Chamberlain
2021-05-12 15:15 ` Hannes Reinecke
2021-05-12 6:46 ` [PATCH v1 7/8] null_blk: " Luis Chamberlain
2021-05-12 15:16 ` Hannes Reinecke
2021-05-12 16:47 ` Luis Chamberlain
2021-05-12 17:12 ` Hannes Reinecke
2021-05-12 17:20 ` Luis Chamberlain
2021-05-12 17:28 ` Hannes Reinecke [this message]
2021-05-19 19:57 ` Luis Chamberlain
2021-05-12 6:46 ` [PATCH v1 8/8] block: add add_disk() failure injection support Luis Chamberlain
2021-05-12 15:22 ` Hannes Reinecke
2021-05-12 16:56 ` Luis Chamberlain
2021-05-12 17:55 ` Hannes Reinecke
2021-05-12 14:44 ` [PATCH v1 0/8] block: add error handling for *add_disk*() Christoph Hellwig
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=096c9d6f-b765-ab70-098e-ab64d8b411df@suse.de \
--to=hare@suse.de \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=hch@infradead.org \
--cc=jack@suse.cz \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mcgrof@kernel.org \
--cc=ming.lei@redhat.com \
--cc=osandov@fb.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 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).