summaryrefslogtreecommitdiff
path: root/drivers/mtd/mtdsuper.c
diff options
context:
space:
mode:
authorJörn Engel <joern@logfs.org>2010-04-22 16:11:43 +0400
committerJens Axboe <jens.axboe@oracle.com>2010-04-22 16:11:43 +0400
commit6de9400250f95f82da432c28b9b43823f4154c58 (patch)
tree6125f79cda585842162096ded41c8ce859593144 /drivers/mtd/mtdsuper.c
parent424264b7b220e8eee165dc3080ae48692af73dec (diff)
downloadlinux-6de9400250f95f82da432c28b9b43823f4154c58.tar.xz
Fix JFFS2 sync silent failure
JFFS2 does not appear to set s_bdi anywhere. And as of 32a88aa1, __sync_filesystem() will return 0 if s_bdi is not set. As a result, sync_fs() is never called for jffs2 and whatever remains in the wbuf will not make it to the device. Fix that up by assigning the mtd bdi. Signed-off-by: Jörn Engel <joern@logfs.org> Acked-By: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'drivers/mtd/mtdsuper.c')
-rw-r--r--drivers/mtd/mtdsuper.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mtd/mtdsuper.c b/drivers/mtd/mtdsuper.c
index af8b42e0a55b..7c003191fca4 100644
--- a/drivers/mtd/mtdsuper.c
+++ b/drivers/mtd/mtdsuper.c
@@ -13,6 +13,7 @@
#include <linux/mtd/super.h>
#include <linux/namei.h>
#include <linux/ctype.h>
+#include <linux/slab.h>
/*
* compare superblocks to see if they're equivalent
@@ -44,6 +45,7 @@ static int get_sb_mtd_set(struct super_block *sb, void *_mtd)
sb->s_mtd = mtd;
sb->s_dev = MKDEV(MTD_BLOCK_MAJOR, mtd->index);
+ sb->s_bdi = mtd->backing_dev_info;
return 0;
}