diff options
Diffstat (limited to 'drivers/scsi/st.c')
-rw-r--r-- | drivers/scsi/st.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index e0a1e52a04e7..2e522951b619 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c | |||
@@ -4083,6 +4083,7 @@ static int create_one_cdev(struct scsi_tape *tape, int mode, int rew) | |||
4083 | } | 4083 | } |
4084 | cdev->owner = THIS_MODULE; | 4084 | cdev->owner = THIS_MODULE; |
4085 | cdev->ops = &st_fops; | 4085 | cdev->ops = &st_fops; |
4086 | STm->cdevs[rew] = cdev; | ||
4086 | 4087 | ||
4087 | error = cdev_add(cdev, cdev_devno, 1); | 4088 | error = cdev_add(cdev, cdev_devno, 1); |
4088 | if (error) { | 4089 | if (error) { |
@@ -4091,7 +4092,6 @@ static int create_one_cdev(struct scsi_tape *tape, int mode, int rew) | |||
4091 | pr_err("st%d: Device not attached.\n", dev_num); | 4092 | pr_err("st%d: Device not attached.\n", dev_num); |
4092 | goto out_free; | 4093 | goto out_free; |
4093 | } | 4094 | } |
4094 | STm->cdevs[rew] = cdev; | ||
4095 | 4095 | ||
4096 | i = mode << (4 - ST_NBR_MODE_BITS); | 4096 | i = mode << (4 - ST_NBR_MODE_BITS); |
4097 | snprintf(name, 10, "%s%s%s", rew ? "n" : "", | 4097 | snprintf(name, 10, "%s%s%s", rew ? "n" : "", |
@@ -4110,8 +4110,9 @@ static int create_one_cdev(struct scsi_tape *tape, int mode, int rew) | |||
4110 | return 0; | 4110 | return 0; |
4111 | out_free: | 4111 | out_free: |
4112 | cdev_del(STm->cdevs[rew]); | 4112 | cdev_del(STm->cdevs[rew]); |
4113 | STm->cdevs[rew] = NULL; | ||
4114 | out: | 4113 | out: |
4114 | STm->cdevs[rew] = NULL; | ||
4115 | STm->devs[rew] = NULL; | ||
4115 | return error; | 4116 | return error; |
4116 | } | 4117 | } |
4117 | 4118 | ||