From d6ea9a6000ad11fe3726360d06bfc077a88453b2 Mon Sep 17 00:00:00 2001 From: Jonathan Corbet Date: Fri, 16 May 2008 14:12:52 -0600 Subject: [PATCH] --- yaml --- r: 100313 b: refs/heads/master c: b0061a0ec4d10a69309d0371a01e8b99387009ef h: refs/heads/master i: 100311: 50cac07354f29fdd9ae42b9d0c66fedb2e66a8aa v: v3 --- [refs] | 2 +- trunk/drivers/scsi/ch.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 1f38ada903b2..db7b22802cff 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dea3f665d6fa263a9870a54e9f8cfd146016f140 +refs/heads/master: b0061a0ec4d10a69309d0371a01e8b99387009ef diff --git a/trunk/drivers/scsi/ch.c b/trunk/drivers/scsi/ch.c index 75c84d7b9ce8..8e821be380f4 100644 --- a/trunk/drivers/scsi/ch.c +++ b/trunk/drivers/scsi/ch.c @@ -22,6 +22,7 @@ #include /* here are all the ioctls */ #include #include +#include #include #include @@ -571,16 +572,19 @@ ch_open(struct inode *inode, struct file *file) scsi_changer *ch; int minor = iminor(inode); + lock_kernel(); spin_lock(&ch_index_lock); ch = idr_find(&ch_index_idr, minor); if (NULL == ch || scsi_device_get(ch->device)) { spin_unlock(&ch_index_lock); + unlock_kernel(); return -ENXIO; } spin_unlock(&ch_index_lock); file->private_data = ch; + unlock_kernel(); return 0; }