diff options
author | Joern Engel <joern@logfs.org> | 2010-03-04 21:30:58 +0100 |
---|---|---|
committer | Joern Engel <joern@logfs.org> | 2010-03-04 21:30:58 +0100 |
commit | 9421502b4fc894cc477be8fc49776830e37ca157 (patch) | |
tree | 9c9b1bfa42b2acdf4b5e080a256c3cd37852a94f /fs/logfs/dev_mtd.c | |
parent | 5c564c2a04d4bb6ba79eeb83bd06de584479f362 (diff) | |
download | linux-9421502b4fc894cc477be8fc49776830e37ca157.tar.gz linux-9421502b4fc894cc477be8fc49776830e37ca157.tar.bz2 linux-9421502b4fc894cc477be8fc49776830e37ca157.zip |
[LogFS] Fix bdev erases
Erases for block devices were always just emulated by writing 0xff.
Some time back the write was removed and only the page cache was
changed to 0xff. Superficialy a good idea with two problems:
1. Touching the page cache isn't necessary either.
2. However, writing out 0xff _is_ necessary for the journal. As the
journal is scanned linearly, an old non-overwritten commit entry
can be used on next mount and cause havoc.
This should fix both aspects.
Diffstat (limited to 'fs/logfs/dev_mtd.c')
-rw-r--r-- | fs/logfs/dev_mtd.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/logfs/dev_mtd.c b/fs/logfs/dev_mtd.c index 68e99d046c23..cafb6ef2e05b 100644 --- a/fs/logfs/dev_mtd.c +++ b/fs/logfs/dev_mtd.c @@ -83,7 +83,8 @@ static int mtd_erase_mapping(struct super_block *sb, loff_t ofs, size_t len) return 0; } -static int mtd_erase(struct super_block *sb, loff_t ofs, size_t len) +static int mtd_erase(struct super_block *sb, loff_t ofs, size_t len, + int ensure_write) { struct mtd_info *mtd = logfs_super(sb)->s_mtd; struct erase_info ei; |