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;
 
                        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], "
                                        << (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");