aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2008-01-14 23:18:00 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-01-23 12:29:28 -0500
commitd07e03610ca1f4be373f32ad5b25ac00dbdb867d (patch)
tree017f10294f9e936acd51ca2dfb847465da777dc7
parenta24484f281dda11e4fc0041a51907d3564da3d7f (diff)
[SCSI] sg: handle class_device_create failure properly
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Acked-by: Douglas Gilbert <dougg@torque.net> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r--drivers/scsi/sg.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index ebbf9b4b7e90..78ac48df4de8 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -1434,11 +1434,14 @@ sg_add(struct class_device *cl_dev, struct class_interface *cl_intf)
1434 MKDEV(SCSI_GENERIC_MAJOR, sdp->index), 1434 MKDEV(SCSI_GENERIC_MAJOR, sdp->index),
1435 cl_dev->dev, "%s", 1435 cl_dev->dev, "%s",
1436 disk->disk_name); 1436 disk->disk_name);
1437 if (IS_ERR(sg_class_member)) 1437 if (IS_ERR(sg_class_member)) {
1438 printk(KERN_WARNING "sg_add: " 1438 printk(KERN_ERR "sg_add: "
1439 "class_device_create failed\n"); 1439 "class_device_create failed\n");
1440 error = PTR_ERR(sg_class_member);
1441 goto cdev_add_err;
1442 }
1440 class_set_devdata(sg_class_member, sdp); 1443 class_set_devdata(sg_class_member, sdp);
1441 error = sysfs_create_link(&scsidp->sdev_gendev.kobj, 1444 error = sysfs_create_link(&scsidp->sdev_gendev.kobj,
1442 &sg_class_member->kobj, "generic"); 1445 &sg_class_member->kobj, "generic");
1443 if (error) 1446 if (error)
1444 printk(KERN_ERR "sg_add: unable to make symlink " 1447 printk(KERN_ERR "sg_add: unable to make symlink "