lkml.org 
[lkml]   [2021]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 07/13] nvdimm/blk: add error handling support for add_disk()
    Date
    We never checked for errors on add_disk() as this function
    returned void. Now that this is fixed, use the shiny new
    error handling.

    Since nvdimm/blk uses devm we just need to move the devm
    registration towards the end. And in hindsight, that seems
    to also provide a fix given del_gendisk() should not be
    called unless the disk was already added via add_disk().
    The probably of that issue happening is low though, like
    OOM while calling devm_add_action(), so the fix is minor.

    We manually unwind in case of add_disk() failure prior
    to the devm registration.

    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    ---
    drivers/nvdimm/blk.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/nvdimm/blk.c b/drivers/nvdimm/blk.c
    index 591fa1f86f1e..9f1eb41404ac 100644
    --- a/drivers/nvdimm/blk.c
    +++ b/drivers/nvdimm/blk.c
    @@ -265,7 +265,9 @@ static int nsblk_attach_disk(struct nd_namespace_blk *nsblk)
    }

    set_capacity(disk, available_disk_size >> SECTOR_SHIFT);
    - device_add_disk(dev, disk, NULL);
    + rc = device_add_disk(dev, disk, NULL);
    + if (rc)
    + goto out_before_devm_err;

    /* nd_blk_release_disk() is called if this fails */
    if (devm_add_action_or_reset(dev, nd_blk_release_disk, disk))
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-10-16 01:53    [W:4.191 / U:0.284 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site