Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 109177
b: refs/heads/master
c: a1af7d1
h: refs/heads/master
i:
  109175: 8024862
v: v3
  • Loading branch information
Mark Fasheh committed Aug 22, 2008
1 parent 69f844e commit 0784e5e
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a57a874b04e27cb530a0e18c244387452e73ccce
refs/heads/master: a1af7d15a18d1e375b0a6fee93789a0bbfe088b4
23 changes: 14 additions & 9 deletions trunk/fs/ocfs2/journal.c
Original file line number Diff line number Diff line change
Expand Up @@ -1418,13 +1418,13 @@ int ocfs2_mark_dead_nodes(struct ocfs2_super *osb)
{
unsigned int node_num;
int status, i;
u32 gen;
struct buffer_head *bh = NULL;
struct ocfs2_dinode *di;

/* This is called with the super block cluster lock, so we
* know that the slot map can't change underneath us. */

spin_lock(&osb->osb_lock);
for (i = 0; i < osb->max_slots; i++) {
/* Read journal inode to get the recovery generation */
status = ocfs2_read_journal_inode(osb, i, &bh, NULL);
Expand All @@ -1433,23 +1433,31 @@ int ocfs2_mark_dead_nodes(struct ocfs2_super *osb)
goto bail;
}
di = (struct ocfs2_dinode *)bh->b_data;
osb->slot_recovery_generations[i] =
ocfs2_get_recovery_generation(di);
gen = ocfs2_get_recovery_generation(di);
brelse(bh);
bh = NULL;

spin_lock(&osb->osb_lock);
osb->slot_recovery_generations[i] = gen;

mlog(0, "Slot %u recovery generation is %u\n", i,
osb->slot_recovery_generations[i]);

if (i == osb->slot_num)
if (i == osb->slot_num) {
spin_unlock(&osb->osb_lock);
continue;
}

status = ocfs2_slot_to_node_num_locked(osb, i, &node_num);
if (status == -ENOENT)
if (status == -ENOENT) {
spin_unlock(&osb->osb_lock);
continue;
}

if (__ocfs2_recovery_map_test(osb, node_num))
if (__ocfs2_recovery_map_test(osb, node_num)) {
spin_unlock(&osb->osb_lock);
continue;
}
spin_unlock(&osb->osb_lock);

/* Ok, we have a slot occupied by another node which
Expand All @@ -1465,10 +1473,7 @@ int ocfs2_mark_dead_nodes(struct ocfs2_super *osb)
mlog_errno(status);
goto bail;
}

spin_lock(&osb->osb_lock);
}
spin_unlock(&osb->osb_lock);

status = 0;
bail:
Expand Down

0 comments on commit 0784e5e

Please sign in to comment.