scsi_sysfs.c (522db3c9e1a5d3e9bfbf23d9106180651338d1bd) | scsi_sysfs.c (b45620229dd67ff1daffa8adce57f37b37860f78) |
---|---|
1/* 2 * scsi_sysfs.c 3 * 4 * SCSI sysfs interface routines. 5 * 6 * Created to pull SCSI mid layer sysfs routines into one file. 7 */ 8 --- 267 unchanged lines hidden (view full) --- 276exit_store_host_reset: 277 if (ret == 0) 278 ret = count; 279 return ret; 280} 281 282static DEVICE_ATTR(host_reset, S_IWUSR, NULL, store_host_reset); 283 | 1/* 2 * scsi_sysfs.c 3 * 4 * SCSI sysfs interface routines. 5 * 6 * Created to pull SCSI mid layer sysfs routines into one file. 7 */ 8 --- 267 unchanged lines hidden (view full) --- 276exit_store_host_reset: 277 if (ret == 0) 278 ret = count; 279 return ret; 280} 281 282static DEVICE_ATTR(host_reset, S_IWUSR, NULL, store_host_reset); 283 |
284static ssize_t 285show_shost_eh_deadline(struct device *dev, 286 struct device_attribute *attr, char *buf) 287{ 288 struct Scsi_Host *shost = class_to_shost(dev); 289 290 return sprintf(buf, "%d\n", shost->eh_deadline / HZ); 291} 292 293static ssize_t 294store_shost_eh_deadline(struct device *dev, struct device_attribute *attr, 295 const char *buf, size_t count) 296{ 297 struct Scsi_Host *shost = class_to_shost(dev); 298 int ret = -EINVAL; 299 int deadline; 300 unsigned long flags; 301 302 if (shost->transportt && shost->transportt->eh_strategy_handler) 303 return ret; 304 305 if (sscanf(buf, "%d\n", &deadline) == 1) { 306 spin_lock_irqsave(shost->host_lock, flags); 307 if (scsi_host_in_recovery(shost)) 308 ret = -EBUSY; 309 else { 310 shost->eh_deadline = deadline * HZ; 311 ret = count; 312 } 313 spin_unlock_irqrestore(shost->host_lock, flags); 314 } 315 return ret; 316} 317 318static DEVICE_ATTR(eh_deadline, S_IRUGO | S_IWUSR, show_shost_eh_deadline, store_shost_eh_deadline); 319 |
|
284shost_rd_attr(unique_id, "%u\n"); 285shost_rd_attr(host_busy, "%hu\n"); 286shost_rd_attr(cmd_per_lun, "%hd\n"); 287shost_rd_attr(can_queue, "%hd\n"); 288shost_rd_attr(sg_tablesize, "%hu\n"); 289shost_rd_attr(sg_prot_tablesize, "%hu\n"); 290shost_rd_attr(unchecked_isa_dma, "%d\n"); 291shost_rd_attr(prot_capabilities, "%u\n"); --- 11 unchanged lines hidden (view full) --- 303 &dev_attr_proc_name.attr, 304 &dev_attr_scan.attr, 305 &dev_attr_hstate.attr, 306 &dev_attr_supported_mode.attr, 307 &dev_attr_active_mode.attr, 308 &dev_attr_prot_capabilities.attr, 309 &dev_attr_prot_guard_type.attr, 310 &dev_attr_host_reset.attr, | 320shost_rd_attr(unique_id, "%u\n"); 321shost_rd_attr(host_busy, "%hu\n"); 322shost_rd_attr(cmd_per_lun, "%hd\n"); 323shost_rd_attr(can_queue, "%hd\n"); 324shost_rd_attr(sg_tablesize, "%hu\n"); 325shost_rd_attr(sg_prot_tablesize, "%hu\n"); 326shost_rd_attr(unchecked_isa_dma, "%d\n"); 327shost_rd_attr(prot_capabilities, "%u\n"); --- 11 unchanged lines hidden (view full) --- 339 &dev_attr_proc_name.attr, 340 &dev_attr_scan.attr, 341 &dev_attr_hstate.attr, 342 &dev_attr_supported_mode.attr, 343 &dev_attr_active_mode.attr, 344 &dev_attr_prot_capabilities.attr, 345 &dev_attr_prot_guard_type.attr, 346 &dev_attr_host_reset.attr, |
347 &dev_attr_eh_deadline.attr, |
|
311 NULL 312}; 313 314struct attribute_group scsi_shost_attr_group = { 315 .attrs = scsi_sysfs_shost_attrs, 316}; 317 318const struct attribute_group *scsi_sysfs_shost_attr_groups[] = { --- 861 unchanged lines hidden --- | 348 NULL 349}; 350 351struct attribute_group scsi_shost_attr_group = { 352 .attrs = scsi_sysfs_shost_attrs, 353}; 354 355const struct attribute_group *scsi_sysfs_shost_attr_groups[] = { --- 861 unchanged lines hidden --- |