Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78d742d8 authored by NeilBrown's avatar NeilBrown Committed by Linus Torvalds
Browse files

[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: default avatarNeil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 32a7627c
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -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;
+5 −6
Original line number Diff line number Diff line
@@ -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");