Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (222 commits) [SCSI] zfcp: Remove flag ZFCP_STATUS_FSFREQ_TMFUNCNOTSUPP [SCSI] zfcp: Activate fc4s attributes for zfcp in FC transport class [SCSI] zfcp: Block scsi_eh thread for rport state BLOCKED [SCSI] zfcp: Update FSF error reporting [SCSI] zfcp: Improve ELS ADISC handling [SCSI] zfcp: Simplify handling of ct and els requests [SCSI] zfcp: Remove ZFCP_DID_MASK [SCSI] zfcp: Move WKA port to zfcp FC code [SCSI] zfcp: Use common code definitions for FC CT structs [SCSI] zfcp: Use common code definitions for FC ELS structs [SCSI] zfcp: Update FCP protocol related code [SCSI] zfcp: Dont fail SCSI commands when transitioning to blocked fc_rport [SCSI] zfcp: Assign scheduled work to driver queue [SCSI] zfcp: Remove STATUS_COMMON_REMOVE flag as it is not required anymore [SCSI] zfcp: Implement module unloading [SCSI] zfcp: Merge trace code for fsf requests in one function [SCSI] zfcp: Access ports and units with container_of in sysfs code [SCSI] zfcp: Remove suspend callback [SCSI] zfcp: Remove global config_mutex [SCSI] zfcp: Replace local reference counting with common kref ...
Dieser Commit ist enthalten in:
@@ -766,10 +766,13 @@ sdev_store_queue_depth_rw(struct device *dev, struct device_attribute *attr,
|
||||
if (depth < 1)
|
||||
return -EINVAL;
|
||||
|
||||
retval = sht->change_queue_depth(sdev, depth);
|
||||
retval = sht->change_queue_depth(sdev, depth,
|
||||
SCSI_QDEPTH_DEFAULT);
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
|
||||
sdev->max_queue_depth = sdev->queue_depth;
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -777,6 +780,37 @@ static struct device_attribute sdev_attr_queue_depth_rw =
|
||||
__ATTR(queue_depth, S_IRUGO | S_IWUSR, sdev_show_queue_depth,
|
||||
sdev_store_queue_depth_rw);
|
||||
|
||||
static ssize_t
|
||||
sdev_show_queue_ramp_up_period(struct device *dev,
|
||||
struct device_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
struct scsi_device *sdev;
|
||||
sdev = to_scsi_device(dev);
|
||||
return snprintf(buf, 20, "%u\n",
|
||||
jiffies_to_msecs(sdev->queue_ramp_up_period));
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
sdev_store_queue_ramp_up_period(struct device *dev,
|
||||
struct device_attribute *attr,
|
||||
const char *buf, size_t count)
|
||||
{
|
||||
struct scsi_device *sdev = to_scsi_device(dev);
|
||||
unsigned long period;
|
||||
|
||||
if (strict_strtoul(buf, 10, &period))
|
||||
return -EINVAL;
|
||||
|
||||
sdev->queue_ramp_up_period = msecs_to_jiffies(period);
|
||||
return period;
|
||||
}
|
||||
|
||||
static struct device_attribute sdev_attr_queue_ramp_up_period =
|
||||
__ATTR(queue_ramp_up_period, S_IRUGO | S_IWUSR,
|
||||
sdev_show_queue_ramp_up_period,
|
||||
sdev_store_queue_ramp_up_period);
|
||||
|
||||
static ssize_t
|
||||
sdev_store_queue_type_rw(struct device *dev, struct device_attribute *attr,
|
||||
const char *buf, size_t count)
|
||||
@@ -867,8 +901,12 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev)
|
||||
sdev->is_visible = 1;
|
||||
|
||||
/* create queue files, which may be writable, depending on the host */
|
||||
if (sdev->host->hostt->change_queue_depth)
|
||||
error = device_create_file(&sdev->sdev_gendev, &sdev_attr_queue_depth_rw);
|
||||
if (sdev->host->hostt->change_queue_depth) {
|
||||
error = device_create_file(&sdev->sdev_gendev,
|
||||
&sdev_attr_queue_depth_rw);
|
||||
error = device_create_file(&sdev->sdev_gendev,
|
||||
&sdev_attr_queue_ramp_up_period);
|
||||
}
|
||||
else
|
||||
error = device_create_file(&sdev->sdev_gendev, &dev_attr_queue_depth);
|
||||
if (error)
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren