Joe, Thanks for your comments. I have revised and tested the patch with what you have suggested. It works. I will send out the revised patch shortly.
Thanks Steve Ma -----Original Message----- From: Joe Eykholt [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 10, 2008 3:45 PM To: Ma, Steve Cc: [email protected] Subject: Re: [Open-FCoE] [PATCH] libfc: Setting the correct lport fabric_name in /sys filesystem Steve Ma wrote: > Added a new item, fabric_name, into struct fc_lport. The patch > is to save the wwnn obtained from the common service parameters > of the LS_ACC of FLOGI as fabric_name in struct fc_lport if the > LS_ACC is sent from a fabric port (otherwise, the fabric_name > should remain zero), and set fc_host_fabric_name(shost) to > the saved fabric_name in fc_get_host_fabric_name(). The routine > fc_get_host_fabric_name() of fc_attr.c is moved into fc_lport.c > as one of the steps to remove the file fc_attr.c. > > Signed-off-by: Steve Ma <[EMAIL PROTECTED]> This patch looks fine as far as it goes. Can we use the fabric_name (and eventually other) fields in struct fc_host_attrs instead? Joe > --- > > drivers/scsi/libfc/fc_attr.c | 8 -------- > drivers/scsi/libfc/fc_lport.c | 10 ++++++++++ > include/scsi/libfc/libfc.h | 1 + > 3 files changed, 11 insertions(+), 8 deletions(-) > > diff --git a/drivers/scsi/libfc/fc_attr.c b/drivers/scsi/libfc/fc_attr.c > index 6539e41..0a99f83 100644 > --- a/drivers/scsi/libfc/fc_attr.c > +++ b/drivers/scsi/libfc/fc_attr.c > @@ -42,14 +42,6 @@ void fc_get_host_port_type(struct Scsi_Host *shost) > } > EXPORT_SYMBOL(fc_get_host_port_type); > > -void fc_get_host_fabric_name(struct Scsi_Host *shost) > -{ > - struct fc_lport *lp = shost_priv(shost); > - > - fc_host_fabric_name(shost) = lp->wwnn; > -} > -EXPORT_SYMBOL(fc_get_host_fabric_name); > - > void fc_set_rport_loss_tmo(struct fc_rport *rport, u32 timeout) > { > if (timeout) > diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c > index 0ffdc67..28ddc24 100644 > --- a/drivers/scsi/libfc/fc_lport.c > +++ b/drivers/scsi/libfc/fc_lport.c > @@ -107,6 +107,14 @@ static void fc_lport_ptp_clear(struct fc_lport *lp) > /* > * Routines to support struct fc_function_template > */ > +void fc_get_host_fabric_name(struct Scsi_Host *shost) > +{ > + struct fc_lport *lp = shost_priv(shost); > + > + fc_host_fabric_name(shost) = lp->fabric_name; > +} > +EXPORT_SYMBOL(fc_get_host_fabric_name); > + > void fc_get_host_speed(struct Scsi_Host *shost) > { > struct fc_lport *lp = shost_priv(shost); > @@ -831,6 +839,8 @@ fc_lport_flogi_resp(struct fc_seq *sp, struct fc_frame *fp, void *lp_arg) > } else { > lp->e_d_tov = e_d_tov; > lp->r_a_tov = r_a_tov; > + lp->fabric_name = get_unaligned_be64( > + &flp->fl_wwnn); > lp->tt.dns_register(lp); > } > } > diff --git a/include/scsi/libfc/libfc.h b/include/scsi/libfc/libfc.h > index 1eb5b8d..96eb0dd 100644 > --- a/include/scsi/libfc/libfc.h > +++ b/include/scsi/libfc/libfc.h > @@ -403,6 +403,7 @@ struct fc_lport { > struct fc_host_statistics host_stats; > struct fcoe_dev_stats *dev_stats[NR_CPUS]; > > + u64 fabric_name; > u64 wwpn; > u64 wwnn; > u32 fid; > > _______________________________________________ > devel mailing list > [email protected] > http://www.open-fcoe.org/mailman/listinfo/devel _______________________________________________ devel mailing list [email protected] http://www.open-fcoe.org/mailman/listinfo/devel
