kernel-ark/fs/logfs
Prasad Joshi 41b93bc1ee logfs: maintain the ordering of meta-inode destruction
LogFS does not use a specialized area to maintain the inodes. The
inodes information is kept in a specialized file called inode file.
Similarly, the segment information is kept in a segment file. Since
the segment file also has an inode which is kept in the inode file,
the inode for segment file must be evicted before the inode for inode
file. The change fixes the following BUG during unmount

Pid: 2057, comm: umount Not tainted 3.5.0-rc6+ #25 Bochs Bochs
RIP: 0010:[<ffffffffa005c5f2>]  [<ffffffffa005c5f2>] move_page_to_btree+0x32/0x1f0 [logfs]
Process umount (pid: 2057, threadinfo ...)
Call Trace:
[<ffffffff8112adca>] ? find_get_pages+0x2a/0x180
[<ffffffffa00549f5>] logfs_invalidatepage+0x85/0x90 [logfs]
[<ffffffff81136c51>] truncate_inode_page+0xb1/0xd0
[<ffffffff81136dcf>] truncate_inode_pages_range+0x15f/0x490
[<ffffffff81558549>] ? printk+0x78/0x7a
[<ffffffff81137185>] truncate_inode_pages+0x15/0x20
[<ffffffffa005b7fc>] logfs_evict_inode+0x6c/0x190 [logfs]
[<ffffffff8155c75b>] ? _raw_spin_unlock+0x2b/0x40
[<ffffffff8119e3d7>] evict+0xa7/0x1b0
[<ffffffff8119ea6e>] dispose_list+0x3e/0x60
[<ffffffff8119f1c4>] evict_inodes+0xf4/0x110
[<ffffffff81185b53>] generic_shutdown_super+0x53/0xf0
[<ffffffffa005d8f2>] logfs_kill_sb+0x52/0xf0 [logfs]
[<ffffffff81185ec5>] deactivate_locked_super+0x45/0x80
[<ffffffff81186a4a>] deactivate_super+0x4a/0x70
[<ffffffff811a228e>] mntput_no_expire+0xde/0x140
[<ffffffff811a30ff>] sys_umount+0x6f/0x3a0
[<ffffffff8155d8e9>] system_call_fastpath+0x16/0x1b
---[ end trace 45f7752082cefafd ]---

Signed-off-by: Prasad Joshi <prasadjoshi.linux@gmail.com>
2012-07-23 09:35:52 +05:30
..
compr.c zlib: slim down zlib_deflate() workspace when possible 2011-03-22 17:44:17 -07:00
dev_bdev.c logfs: initialize the number of iovecs in bio 2012-04-02 18:04:00 +05:30
dev_mtd.c mtd: fix merge conflict resolution breakage 2012-02-01 11:10:24 -08:00
dir.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-03-21 13:36:41 -07:00
file.c logfs: take write mutex lock during fsync and sync 2012-01-28 11:36:06 +05:30
gc.c logfs: Prevent memory corruption 2012-01-28 11:24:21 +05:30
inode.c logfs: maintain the ordering of meta-inode destruction 2012-07-23 09:35:52 +05:30
journal.c logfs: create a pagecache page if it is not present 2012-07-23 09:18:14 +05:30
Kconfig
logfs_abi.h
logfs.h Pull request from git://github.com/prasad-joshi/logfs_upstream.git 2012-01-31 09:23:59 -08:00
Makefile
readwrite.c logfs: destroy the reserved inodes while unmounting 2012-04-02 09:20:33 +05:30
segment.c logfs: destroy the reserved inodes while unmounting 2012-04-02 09:20:33 +05:30
super.c logfs: missing cleanup on register_filesystem() failure 2012-03-20 21:29:48 -04:00