[PATCH] md: a couple of tidyups relating to the bitmap file.
authorNeilBrown <neilb@cse.unsw.edu.au>
Wed, 22 Jun 2005 00:17:15 +0000 (17:17 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 22 Jun 2005 02:07:43 +0000 (19:07 -0700)
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: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/md/bitmap.c
drivers/md/md.c

index 34ffc133db058f309c1acb4c88f8643c39c45d31..b43bdb2c7e64a2e55568b8864a204d15e598b028 100644 (file)
@@ -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;
index c402f6cc7047f6308747448e7142dc15b60e88c2..52fafb820f747c13a1576a7443edf8950d5ca807 100644 (file)
@@ -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");