diff options
Diffstat (limited to 'fs/ocfs2/journal.c')
-rw-r--r-- | fs/ocfs2/journal.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c index c2e654ee703a..ed0c6d0850d7 100644 --- a/fs/ocfs2/journal.c +++ b/fs/ocfs2/journal.c | |||
@@ -1079,7 +1079,6 @@ static int ocfs2_recover_node(struct ocfs2_super *osb, | |||
1079 | { | 1079 | { |
1080 | int status = 0; | 1080 | int status = 0; |
1081 | int slot_num; | 1081 | int slot_num; |
1082 | struct ocfs2_slot_info *si = osb->slot_info; | ||
1083 | struct ocfs2_dinode *la_copy = NULL; | 1082 | struct ocfs2_dinode *la_copy = NULL; |
1084 | struct ocfs2_dinode *tl_copy = NULL; | 1083 | struct ocfs2_dinode *tl_copy = NULL; |
1085 | 1084 | ||
@@ -1092,8 +1091,8 @@ static int ocfs2_recover_node(struct ocfs2_super *osb, | |||
1092 | * case we should've called ocfs2_journal_load instead. */ | 1091 | * case we should've called ocfs2_journal_load instead. */ |
1093 | BUG_ON(osb->node_num == node_num); | 1092 | BUG_ON(osb->node_num == node_num); |
1094 | 1093 | ||
1095 | slot_num = ocfs2_node_num_to_slot(si, node_num); | 1094 | slot_num = ocfs2_node_num_to_slot(osb, node_num); |
1096 | if (slot_num == OCFS2_INVALID_SLOT) { | 1095 | if (slot_num == -ENOENT) { |
1097 | status = 0; | 1096 | status = 0; |
1098 | mlog(0, "no slot for this node, so no recovery required.\n"); | 1097 | mlog(0, "no slot for this node, so no recovery required.\n"); |
1099 | goto done; | 1098 | goto done; |
@@ -1183,23 +1182,24 @@ bail: | |||
1183 | * slot info struct has been updated from disk. */ | 1182 | * slot info struct has been updated from disk. */ |
1184 | int ocfs2_mark_dead_nodes(struct ocfs2_super *osb) | 1183 | int ocfs2_mark_dead_nodes(struct ocfs2_super *osb) |
1185 | { | 1184 | { |
1186 | int status, i, node_num; | 1185 | unsigned int node_num; |
1187 | struct ocfs2_slot_info *si = osb->slot_info; | 1186 | int status, i; |
1188 | 1187 | ||
1189 | /* This is called with the super block cluster lock, so we | 1188 | /* This is called with the super block cluster lock, so we |
1190 | * know that the slot map can't change underneath us. */ | 1189 | * know that the slot map can't change underneath us. */ |
1191 | 1190 | ||
1192 | spin_lock(&si->si_lock); | 1191 | spin_lock(&osb->osb_lock); |
1193 | for(i = 0; i < si->si_num_slots; i++) { | 1192 | for (i = 0; i < osb->max_slots; i++) { |
1194 | if (i == osb->slot_num) | 1193 | if (i == osb->slot_num) |
1195 | continue; | 1194 | continue; |
1196 | if (ocfs2_is_empty_slot(si, i)) | 1195 | |
1196 | status = ocfs2_slot_to_node_num_locked(osb, i, &node_num); | ||
1197 | if (status == -ENOENT) | ||
1197 | continue; | 1198 | continue; |
1198 | 1199 | ||
1199 | node_num = si->si_global_node_nums[i]; | ||
1200 | if (ocfs2_node_map_test_bit(osb, &osb->recovery_map, node_num)) | 1200 | if (ocfs2_node_map_test_bit(osb, &osb->recovery_map, node_num)) |
1201 | continue; | 1201 | continue; |
1202 | spin_unlock(&si->si_lock); | 1202 | spin_unlock(&osb->osb_lock); |
1203 | 1203 | ||
1204 | /* Ok, we have a slot occupied by another node which | 1204 | /* Ok, we have a slot occupied by another node which |
1205 | * is not in the recovery map. We trylock his journal | 1205 | * is not in the recovery map. We trylock his journal |
@@ -1215,9 +1215,9 @@ int ocfs2_mark_dead_nodes(struct ocfs2_super *osb) | |||
1215 | goto bail; | 1215 | goto bail; |
1216 | } | 1216 | } |
1217 | 1217 | ||
1218 | spin_lock(&si->si_lock); | 1218 | spin_lock(&osb->osb_lock); |
1219 | } | 1219 | } |
1220 | spin_unlock(&si->si_lock); | 1220 | spin_unlock(&osb->osb_lock); |
1221 | 1221 | ||
1222 | status = 0; | 1222 | status = 0; |
1223 | bail: | 1223 | bail: |