Shaohua Li <shli@xxxxxx> writes: > journal disk can be faulty. The Journal and Faulty aren't exclusive with > each other. > > Signed-off-by: Shaohua Li <shli@xxxxxx> > --- > drivers/md/md.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/md/md.c b/drivers/md/md.c > index 0729cc7..daf42bb 100644 > --- a/drivers/md/md.c > +++ b/drivers/md/md.c > @@ -5857,7 +5857,8 @@ static int get_disk_info(struct mddev *mddev, void __user * arg) > else if (test_bit(In_sync, &rdev->flags)) { > info.state |= (1<<MD_DISK_ACTIVE); > info.state |= (1<<MD_DISK_SYNC); > - } else if (test_bit(Journal, &rdev->flags)) > + } > + if (test_bit(Journal, &rdev->flags)) > info.state |= (1<<MD_DISK_JOURNAL); > if (test_bit(WriteMostly, &rdev->flags)) > info.state |= (1<<MD_DISK_WRITEMOSTLY); > @@ -7335,18 +7336,21 @@ static int md_seq_show(struct seq_file *seq, void *v) > rcu_read_lock(); > rdev_for_each_rcu(rdev, mddev) { > char b[BDEVNAME_SIZE]; > + bool skip = false; > seq_printf(seq, " %s[%d]", > bdevname(rdev->bdev,b), rdev->desc_nr); > if (test_bit(WriteMostly, &rdev->flags)) > seq_printf(seq, "(W)"); > if (test_bit(Faulty, &rdev->flags)) { > seq_printf(seq, "(F)"); > - continue; > + skip = true; > } > if (test_bit(Journal, &rdev->flags)) { > seq_printf(seq, "(J)"); > - continue; > + skip = true; > } > + if (skip) > + continue; Is this 'skip' stuff really needed? What would go wrong if we just left it out? An active journal will have raid_disk>=0 now won't it? And if we don't support replacement of journals (which I suspect we shouldn't) then (R) will never get reported. So can we just drop the 'skip'?? Thanks, NeilBrown > if (rdev->raid_disk < 0) > seq_printf(seq, "(S)"); /* spare */ > if (test_bit(Replacement, &rdev->flags)) > -- > 2.4.6 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-raid" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html
Attachment:
signature.asc
Description: PGP signature