aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-tape.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/ide-tape.c')
-rw-r--r--drivers/ide/ide-tape.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index 6e1233bdf3a0..f9cf1670e4e1 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -2182,9 +2182,12 @@ static int idetape_chrdev_open(struct inode *inode, struct file *filp)
2182 if (i >= MAX_HWIFS * MAX_DRIVES) 2182 if (i >= MAX_HWIFS * MAX_DRIVES)
2183 return -ENXIO; 2183 return -ENXIO;
2184 2184
2185 lock_kernel();
2185 tape = ide_tape_chrdev_get(i); 2186 tape = ide_tape_chrdev_get(i);
2186 if (!tape) 2187 if (!tape) {
2188 unlock_kernel();
2187 return -ENXIO; 2189 return -ENXIO;
2190 }
2188 2191
2189 debug_log(DBG_CHRDEV, "Enter %s\n", __func__); 2192 debug_log(DBG_CHRDEV, "Enter %s\n", __func__);
2190 2193
@@ -2243,10 +2246,12 @@ static int idetape_chrdev_open(struct inode *inode, struct file *filp)
2243 } 2246 }
2244 } 2247 }
2245 } 2248 }
2249 unlock_kernel();
2246 return 0; 2250 return 0;
2247 2251
2248out_put_tape: 2252out_put_tape:
2249 ide_tape_put(tape); 2253 ide_tape_put(tape);
2254 unlock_kernel();
2250 return retval; 2255 return retval;
2251} 2256}
2252 2257