Blob Blame History Raw
From: Hannes Reinecke <hare@suse.de>
Date: Mon, 20 Apr 2015 11:28:58 +0200
Subject: [PATCH 1/2] ch: add missing mutex_lock()/mutex_unlock() in
 ch_release()
References: bsc#1124235
Patch-Mainline: submitted linux-scsi 2019/03/20

The 'ch_mutex" is meant to guard against modifications of
file->private_data, so we need to take in in ch_release() as
well as in ch_open().

Signed-off-by: Hannes Reinecke <hare@suse.de>
---
 drivers/scsi/ch.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/scsi/ch.c b/drivers/scsi/ch.c
index 1c5051b1c125..8f426903d7e4 100644
--- a/drivers/scsi/ch.c
+++ b/drivers/scsi/ch.c
@@ -577,9 +577,11 @@ ch_release(struct inode *inode, struct file *file)
 {
 	scsi_changer *ch = file->private_data;
 
+	mutex_lock(&ch_mutex);
 	scsi_device_put(ch->device);
 	ch->device = NULL;
 	file->private_data = NULL;
+	mutex_unlock(&ch_mutex);
 	kref_put(&ch->ref, ch_destroy);
 	return 0;
 }
-- 
2.16.4