From d4f20e26b4152f419657ce2f78cfa44d5831d1e7 Mon Sep 17 00:00:00 2001 From: Jonathan Corbet Date: Thu, 15 May 2008 12:01:56 -0600 Subject: [PATCH] --- yaml --- r: 100288 b: refs/heads/master c: 04f4ac9d1bb8a9103609ce8e927f8e98826ce339 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/ide/ide-tape.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 4862a143b7ac..3bb9e9b458b1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 16750c2f32e3fd879fce787a13900f11633ef9af +refs/heads/master: 04f4ac9d1bb8a9103609ce8e927f8e98826ce339 diff --git a/trunk/drivers/ide/ide-tape.c b/trunk/drivers/ide/ide-tape.c index 1e1f26331a24..a3d228302d20 100644 --- a/trunk/drivers/ide/ide-tape.c +++ b/trunk/drivers/ide/ide-tape.c @@ -2421,9 +2421,12 @@ static int idetape_chrdev_open(struct inode *inode, struct file *filp) if (i >= MAX_HWIFS * MAX_DRIVES) return -ENXIO; + lock_kernel(); tape = ide_tape_chrdev_get(i); - if (!tape) + if (!tape) { + unlock_kernel(); return -ENXIO; + } debug_log(DBG_CHRDEV, "Enter %s\n", __func__); @@ -2482,10 +2485,12 @@ static int idetape_chrdev_open(struct inode *inode, struct file *filp) } } } + unlock_kernel(); return 0; out_put_tape: ide_tape_put(tape); + unlock_kernel(); return retval; }