diff options
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r-- | drivers/md/md.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index c402f6cc7047..52fafb820f74 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -3213,10 +3213,8 @@ static int md_seq_show(struct seq_file *seq, void *v) | |||
3213 | seq_printf(seq, "\n "); | 3213 | seq_printf(seq, "\n "); |
3214 | 3214 | ||
3215 | if ((bitmap = mddev->bitmap)) { | 3215 | if ((bitmap = mddev->bitmap)) { |
3216 | char *buf, *path; | ||
3217 | unsigned long chunk_kb; | 3216 | unsigned long chunk_kb; |
3218 | unsigned long flags; | 3217 | unsigned long flags; |
3219 | buf = kmalloc(PAGE_SIZE, GFP_KERNEL); | ||
3220 | spin_lock_irqsave(&bitmap->lock, flags); | 3218 | spin_lock_irqsave(&bitmap->lock, flags); |
3221 | chunk_kb = bitmap->chunksize >> 10; | 3219 | chunk_kb = bitmap->chunksize >> 10; |
3222 | seq_printf(seq, "bitmap: %lu/%lu pages [%luKB], " | 3220 | seq_printf(seq, "bitmap: %lu/%lu pages [%luKB], " |
@@ -3227,13 +3225,14 @@ static int md_seq_show(struct seq_file *seq, void *v) | |||
3227 | << (PAGE_SHIFT - 10), | 3225 | << (PAGE_SHIFT - 10), |
3228 | chunk_kb ? chunk_kb : bitmap->chunksize, | 3226 | chunk_kb ? chunk_kb : bitmap->chunksize, |
3229 | chunk_kb ? "KB" : "B"); | 3227 | chunk_kb ? "KB" : "B"); |
3230 | if (bitmap->file && buf) { | 3228 | if (bitmap->file) { |
3231 | path = file_path(bitmap->file, buf, PAGE_SIZE); | 3229 | seq_printf(seq, ", file: "); |
3232 | seq_printf(seq, ", file: %s", path ? path : ""); | 3230 | seq_path(seq, bitmap->file->f_vfsmnt, |
3231 | bitmap->file->f_dentry," \t\n"); | ||
3233 | } | 3232 | } |
3233 | |||
3234 | seq_printf(seq, "\n"); | 3234 | seq_printf(seq, "\n"); |
3235 | spin_unlock_irqrestore(&bitmap->lock, flags); | 3235 | spin_unlock_irqrestore(&bitmap->lock, flags); |
3236 | kfree(buf); | ||
3237 | } | 3236 | } |
3238 | 3237 | ||
3239 | seq_printf(seq, "\n"); | 3238 | seq_printf(seq, "\n"); |