提交 78d742d8 编写于 作者: N NeilBrown 提交者: Linus Torvalds

[PATCH] md: a couple of tidyups relating to the bitmap file.

1/ When init from disk, it is a BUG if there is nowhere
   to init from,
2/ use seq_path to print path in /proc/mdstat
Signed-off-by: NNeil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 32a7627c
......@@ -769,13 +769,7 @@ static int bitmap_init_from_disk(struct bitmap *bitmap)
chunks = bitmap->chunks;
file = bitmap->file;
if (!file) { /* no file, dirty all the in-memory bits */
printk(KERN_INFO "%s: no bitmap file, doing full recovery\n",
bmname(bitmap));
bitmap_set_memory_bits(bitmap, 0,
chunks << CHUNK_BLOCK_SHIFT(bitmap), 1);
return 0;
}
BUG_ON(!file);
#if INJECT_FAULTS_3
outofdate = 1;
......
......@@ -3213,10 +3213,8 @@ static int md_seq_show(struct seq_file *seq, void *v)
seq_printf(seq, "\n ");
if ((bitmap = mddev->bitmap)) {
char *buf, *path;
unsigned long chunk_kb;
unsigned long flags;
buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
spin_lock_irqsave(&bitmap->lock, flags);
chunk_kb = bitmap->chunksize >> 10;
seq_printf(seq, "bitmap: %lu/%lu pages [%luKB], "
......@@ -3227,13 +3225,14 @@ static int md_seq_show(struct seq_file *seq, void *v)
<< (PAGE_SHIFT - 10),
chunk_kb ? chunk_kb : bitmap->chunksize,
chunk_kb ? "KB" : "B");
if (bitmap->file && buf) {
path = file_path(bitmap->file, buf, PAGE_SIZE);
seq_printf(seq, ", file: %s", path ? path : "");
if (bitmap->file) {
seq_printf(seq, ", file: ");
seq_path(seq, bitmap->file->f_vfsmnt,
bitmap->file->f_dentry," \t\n");
}
seq_printf(seq, "\n");
spin_unlock_irqrestore(&bitmap->lock, flags);
kfree(buf);
}
seq_printf(seq, "\n");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册