c
1 struct lpfc_nodelist *
2 lpfc_findnode_did(struct lpfc_vport *vport, uint32_t did)
3 {
4     struct Scsi_Host *shost;
5     struct lpfc_nodelist *ndlp = NULL;
6     
7     rcu_read_lock();
8     shost = rcu_dereference(vport->shost);
9     if (shost) {
10         ndlp = __lpfc_findnode_did(vport, did);
11     }
12     rcu_read_unlock();
13     
14     return ndlp;
15 }

// In lpfc_vport_delete, use RCU to update vport->shost
649     RCU_INIT_POINTER(vport->shost, NULL);
650     synchronize_rcu();
651     fc_remove_host(shost);
652     scsi_remove_host(shost);
