diff options
Diffstat (limited to 'drivers/ide/ide-tape.c')
-rw-r--r-- | drivers/ide/ide-tape.c | 7 |
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 | ||
2248 | out_put_tape: | 2252 | out_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 | ||