| .. | .. |
|---|
| 912 | 912 | if (lgr->terminating) |
|---|
| 913 | 913 | return; /* lgr already terminating */ |
|---|
| 914 | 914 | /* cancel free_work sync, will terminate when lgr->freeing is set */ |
|---|
| 915 | | - cancel_delayed_work_sync(&lgr->free_work); |
|---|
| 915 | + cancel_delayed_work(&lgr->free_work); |
|---|
| 916 | 916 | lgr->terminating = 1; |
|---|
| 917 | 917 | |
|---|
| 918 | 918 | /* kill remaining link group connections */ |
|---|
| .. | .. |
|---|
| 1101 | 1101 | { |
|---|
| 1102 | 1102 | struct smc_link_group *lgr, *n; |
|---|
| 1103 | 1103 | |
|---|
| 1104 | + spin_lock_bh(&smc_lgr_list.lock); |
|---|
| 1104 | 1105 | list_for_each_entry_safe(lgr, n, &smc_lgr_list.list, list) { |
|---|
| 1105 | 1106 | struct smc_link *link; |
|---|
| 1106 | 1107 | |
|---|
| .. | .. |
|---|
| 1115 | 1116 | if (link) |
|---|
| 1116 | 1117 | smc_llc_add_link_local(link); |
|---|
| 1117 | 1118 | } |
|---|
| 1119 | + spin_unlock_bh(&smc_lgr_list.lock); |
|---|
| 1118 | 1120 | } |
|---|
| 1119 | 1121 | |
|---|
| 1120 | 1122 | /* link is down - switch connections to alternate link, |
|---|