aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_aux.c
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.vnet.ibm.com>2013-04-26 10:13:48 -0400
committerJames Bottomley <JBottomley@Parallels.com>2013-05-31 19:32:36 -0400
commit83d4e1c33d9329e6d53cf4ac0a02c98ac83eba05 (patch)
treea2c696af985b939f687c660ef65d15e6e655181b /drivers/s390/scsi/zfcp_aux.c
parent8377dbc3cd376070145061212283c9e4a5afeb09 (diff)
[SCSI] zfcp: cleanup port sysfs attribute usage
Let the driver core handle device attribute creation and removal. This will simplify the code and eliminates races between attribute availability and userspace notification via uevents. Reviewed-by: Steffen Maier <maier@linux.vnet.ibm.com> Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/s390/scsi/zfcp_aux.c')
-rw-r--r--drivers/s390/scsi/zfcp_aux.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c
index f6adde44f226..aa2aee64e60b 100644
--- a/drivers/s390/scsi/zfcp_aux.c
+++ b/drivers/s390/scsi/zfcp_aux.c
@@ -530,6 +530,7 @@ struct zfcp_port *zfcp_port_enqueue(struct zfcp_adapter *adapter, u64 wwpn,
530 port->wwpn = wwpn; 530 port->wwpn = wwpn;
531 port->rport_task = RPORT_NONE; 531 port->rport_task = RPORT_NONE;
532 port->dev.parent = &adapter->ccw_device->dev; 532 port->dev.parent = &adapter->ccw_device->dev;
533 port->dev.groups = zfcp_port_attr_groups;
533 port->dev.release = zfcp_port_release; 534 port->dev.release = zfcp_port_release;
534 535
535 if (dev_set_name(&port->dev, "0x%016llx", (unsigned long long)wwpn)) { 536 if (dev_set_name(&port->dev, "0x%016llx", (unsigned long long)wwpn)) {
@@ -543,10 +544,6 @@ struct zfcp_port *zfcp_port_enqueue(struct zfcp_adapter *adapter, u64 wwpn,
543 goto err_out; 544 goto err_out;
544 } 545 }
545 546
546 if (sysfs_create_group(&port->dev.kobj,
547 &zfcp_sysfs_port_attrs))
548 goto err_out_put;
549
550 write_lock_irq(&adapter->port_list_lock); 547 write_lock_irq(&adapter->port_list_lock);
551 list_add_tail(&port->list, &adapter->port_list); 548 list_add_tail(&port->list, &adapter->port_list);
552 write_unlock_irq(&adapter->port_list_lock); 549 write_unlock_irq(&adapter->port_list_lock);
@@ -555,8 +552,6 @@ struct zfcp_port *zfcp_port_enqueue(struct zfcp_adapter *adapter, u64 wwpn,
555 552
556 return port; 553 return port;
557 554
558err_out_put:
559 device_unregister(&port->dev);
560err_out: 555err_out:
561 zfcp_ccw_adapter_put(adapter); 556 zfcp_ccw_adapter_put(adapter);
562 return ERR_PTR(retval); 557 return ERR_PTR(retval);