ACK: [SRU][Zesty][PATCH 1/1] scsi: ses: do not add a device to an enclosure if enclosure_add_links() fails.
Colin Ian King
colin.king at canonical.com
Wed Oct 4 10:10:30 UTC 2017
On 20/09/17 19:50, Joseph Salisbury wrote:
> From: Maurizio Lombardi <mlombard at redhat.com>
>
> BugLink: http://bugs.launchpad.net/bugs/1693369
>
> The enclosure_add_device() function should fail if it can't create the
> relevant sysfs links.
>
> Cc: <stable at vger.kernel.org>
> Signed-off-by: Maurizio Lombardi <mlombard at redhat.com>
> Tested-by: Douglas Miller <dougmill at linux.vnet.ibm.com>
> Acked-by: James Bottomley <jejb at linux.vnet.ibm.com>
> Signed-off-by: Martin K. Petersen <martin.petersen at oracle.com>
> (cherry picked from commit 62e62ffd95539b9220894a7900a619e0f3ef4756)
> Signed-off-by: Joseph Salisbury <joseph.salisbury at canonical.com>
> ---
> drivers/misc/enclosure.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/misc/enclosure.c b/drivers/misc/enclosure.c
> index d3fe3ea..eb29113 100644
> --- a/drivers/misc/enclosure.c
> +++ b/drivers/misc/enclosure.c
> @@ -375,6 +375,7 @@ int enclosure_add_device(struct enclosure_device *edev, int component,
> struct device *dev)
> {
> struct enclosure_component *cdev;
> + int err;
>
> if (!edev || component >= edev->components)
> return -EINVAL;
> @@ -384,12 +385,17 @@ int enclosure_add_device(struct enclosure_device *edev, int component,
> if (cdev->dev == dev)
> return -EEXIST;
>
> - if (cdev->dev)
> + if (cdev->dev) {
> enclosure_remove_links(cdev);
> -
> - put_device(cdev->dev);
> + put_device(cdev->dev);
> + }
> cdev->dev = get_device(dev);
> - return enclosure_add_links(cdev);
> + err = enclosure_add_links(cdev);
> + if (err) {
> + put_device(cdev->dev);
> + cdev->dev = NULL;
> + }
> + return err;
> }
> EXPORT_SYMBOL_GPL(enclosure_add_device);
>
>
Clean cherry pick and positive test results.
Acked-by: Colin Ian King <colin.king at canonical.com>
More information about the kernel-team
mailing list