Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit acf7b861 authored by Christof Schmitt's avatar Christof Schmitt Committed by James Bottomley
Browse files

[SCSI] zfcp: Acquire qdio_stat_lock when reading the queue utilization



req_q_util is not atomic, so the qdio_stat_lock must be held when
reading this variable.

Reviewed-by: default avatarSwen Schillig <swen@vnet.ibm.com>
Signed-off-by: default avatarChristof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent dfb3cf00
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -494,9 +494,14 @@ static ssize_t zfcp_sysfs_adapter_q_full_show(struct device *dev,
	struct Scsi_Host *scsi_host = class_to_shost(dev);
	struct zfcp_adapter *adapter =
		(struct zfcp_adapter *) scsi_host->hostdata[0];
	u64 util;

	spin_lock_bh(&adapter->qdio_stat_lock);
	util = adapter->req_q_util;
	spin_unlock_bh(&adapter->qdio_stat_lock);

	return sprintf(buf, "%d %llu\n", atomic_read(&adapter->qdio_outb_full),
		       (unsigned long long)adapter->req_q_util);
		       (unsigned long long)util);
}
static DEVICE_ATTR(queue_full, S_IRUGO, zfcp_sysfs_adapter_q_full_show, NULL);