summaryrefslogtreecommitdiffstats
path: root/fs/logfs
AgeCommit message (Collapse)Author
2010-04-17[LogFS] Set s_bdiJoern Engel
Since 32a88aa1 sync() was turned into a NOP for logfs. Worse, sync() would not return an error, giving the illusion that writeout had actually happened. Afaics jffs2 was broken as well. Signed-off-by: Joern Engel <joern@logfs.org>
2010-04-15[LogFS] Prevent mempool_destroy NULL pointer dereferenceJoern Engel
It would probably be better to just accept NULL pointers in mempool_destroy(). But for the current -rc series let's keep things simple. This patch was lost in the cracks for a while. Kevin Cernekee <cernekee@gmail.com> had to rediscover the problem and send a similar patch because of it. :( Signed-off-by: Joern Engel <joern@logfs.org>
2010-04-13[LogFS] Move assertionJoern Engel
The assertion is valid independently of the condition. Signed-off-by: Joern Engel <joern@logfs.org>
2010-04-13[LogFS] Plug 8 byte information leakJoern Engel
Within each journal segment, 8 bytes at offset 24 would remain uninitialized. Signed-off-by: Joern Engel <joern@logfs.org>
2010-04-13[LogFS] Prevent memory corruption on large deletesJoern Engel
Removing sufficiently large files would create aliases for a large number of segments. This in turn results in a large number of journal entries and an overflow of s_je_array. Cheap fix is to add a BUG_ON, turning memory corruption into something annoying, but less dangerous. Real fix is to count the number of affected segments and prevent the problem completely. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-30[LogFS] Remove unused methodJoern Engel
All callers are long gone. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-29[LogFS] Erase new journal segmentsJoern Engel
If the device contains on old logfs image and the journal is moved to segment that have never been used by the current logfs and not all journal segments are erased before the next mount, the old content can confuse mount code. To prevent this, always erase the new journal segments. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-29[LogFS] Move reserved segments with journalJoern Engel
Fixes a GC livelock. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-28[LogFS] Clear PagePrivate when moving journalJoern Engel
do_logfs_journal_wl_pass() must call freeseg(), thereby clear PagePrivate on all pages of the current journal segment. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-28Simplify and fix pad_wbufJoern Engel
A comment in the old code read: /* The math in this function can surely use some love */ And indeed it did. In the case that area->a_used_bytes is exactly 4096 bytes below segment size it fell apart. pad_wbuf is now split into two helpers that are significantly less complicated. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-28Prevent data corruption in logfs_rewrite_block()Joern Engel
The comment was correct, so make the code match the comment. As the new comment indicates, we might be able to do a little less work. But for the current -rc series let's keep it simple and just fix the bug. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-27Use deactivate_locked_superJoern Engel
Found by Al Viro. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-27Fix logfs_get_sb_final error pathJoern Engel
rootdir was already allocated, so we must iput it again. Found by Al Viro. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-27Write out both superblocks on mismatchJoern Engel
If the first superblock is wrong and the second gets written, there will still be a mismatch on next mount. Write both to make sure they match. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-27Prevent schedule while atomic in __logfs_readdirJoern Engel
Apparently filldir can sleep, which forbids kmap_atomic. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-27Plug memory leak in writeseg_end_ioJoern Engel
Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-27Limit max_pages for insane devicesJoern Engel
Intel SSDs have a limit of 0xffff as queue_max_hw_sectors(q). Such a limit may make sense from a hardware pov, but it causes bio_alloc() to return NULL. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-27Open segment file before using itJoern Engel
logfs_recover_sb() needs it open. Signed-off-by: Joern Engel <joern@logfs.org>
2010-03-06Merge git://git.kernel.org/pub/scm/linux/kernel/git/joern/logfsLinus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/joern/logfs: [LogFS] Change magic number [LogFS] Remove h_version field [LogFS] Check feature flags [LogFS] Only write journal if dirty [LogFS] Fix bdev erases [LogFS] Silence gcc [LogFS] Prevent 64bit divisions in hash_index [LogFS] Plug memory leak on error paths [LogFS] Add MAINTAINERS entry [LogFS] add new flash file system Fixed up trivial conflict in lib/Kconfig, and a semantic conflict in fs/logfs/inode.c introduced by write_inode() being changed to use writeback_control' by commit a9185b41a4f84971b930c519f0c63bd450c4810d ("pass writeback_control to ->write_inode")
2010-03-06[LogFS] Change magic numberJoern Engel
Many changes were made during development that could result in old versions of mklogfs and the kernel code being subtly incompatible. Not being a friend of subtleties, I hereby change the magic number. Any old version of mklogfs is now guaranteed to fail.
2010-03-06[LogFS] Remove h_version fieldJoern Engel
Incompatible change: h_compr is moved up so the padding is all in one chunk.
2010-03-05[LogFS] Check feature flagsJoern Engel
2010-03-04[LogFS] Only write journal if dirtyJoern Engel
This prevents unnecessary journal writes. More importantly it prevents an oops due to a journal write on failed mount.
2010-03-04[LogFS] Fix bdev erasesJoern Engel
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.
2009-12-07[LogFS] Silence gccJoern Engel
Andrew Morton sayeth: fs/logfs/journal.c: In function 'logfs_init_journal': fs/logfs/journal.c:266: warning: 'last_len' may be used uninitialized in this function Can this be squished please?
2009-11-28[LogFS] Prevent 64bit divisions in hash_indexJoern Engel
Randy Dunlap caught this built error on i386: fs/built-in.o: In function `hash_index': dir.c:(.text+0x6c1f2): undefined reference to `__umoddi3'
2009-11-23[LogFS] Plug memory leak on error pathsJoern Engel
Spotted by Dan Carpenter.
2009-11-20[LogFS] add new flash file systemJoern Engel
This is a new flash file system. See Documentation/filesystems/logfs.txt Signed-off-by: Joern Engel <joern@logfs.org>