lineage_android_kernel_xiao.../fs/btrfs
Miao Xie aa38a711a8 Btrfs: fix deadlock on metadata reservation when evicting a inode
When I ran the xfstests, I found the test tasks was blocked on meta-data
reservation.

By debugging, I found the reason of this bug:
   start transaction
        |
	v
   reserve meta-data space
	|
	v
   flush delay allocation -> iput inode -> evict inode
	^					|
	|					v
   wait for delay allocation flush <- reserve meta-data space

And besides that, the flush on evicting inode will block the thread, which
is reclaiming the memory, and make oom happen easily.

Fix this bug by skipping the flush step when evicting inode.

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
2011-11-30 18:46:03 +01:00
..
Kconfig
Makefile Merge git://git.jan-o-sch.net/btrfs-unstable into integration 2011-11-06 03:07:10 -05:00
acl.c Btrfs: fix return value of btrfs_get_acl() 2011-10-20 18:10:47 +02:00
async-thread.c
async-thread.h
backref.c btrfs: Fix up 32/64-bit compatibility for new ioctls 2011-11-20 07:42:13 -05:00
backref.h
btrfs_inode.h Btrfs: fix our reservations for updating an inode when completing io 2011-11-08 15:47:34 -05:00
compat.h
compression.c btrfs: separate superblock items out of fs_info 2011-11-06 03:04:01 -05:00
compression.h
ctree.c Btrfs: fix tree corruption after multi-thread snapshots and inode_cache flush 2011-11-15 09:53:28 -05:00
ctree.h Btrfs: fix deadlock on metadata reservation when evicting a inode 2011-11-30 18:46:03 +01:00
delayed-inode.c Btrfs: tweak the delayed inode reservations again 2011-11-10 20:39:08 -05:00
delayed-inode.h
delayed-ref.c
delayed-ref.h
dir-item.c
disk-io.c btrfs: mirror_num should be int, not u64 2011-11-20 07:42:14 -05:00
disk-io.h Merge branch 'for-chris' of git://github.com/sensille/linux into integration 2011-11-06 03:05:08 -05:00
export.c
export.h
extent-tree.c Btrfs: fix deadlock on metadata reservation when evicting a inode 2011-11-30 18:46:03 +01:00
extent_io.c Btrfs: sectorsize align offsets in fiemap 2011-11-20 07:42:17 -05:00
extent_io.h btrfs: mirror_num should be int, not u64 2011-11-20 07:42:14 -05:00
extent_map.c
extent_map.h
file-item.c btrfs: separate superblock items out of fs_info 2011-11-06 03:04:01 -05:00
file.c
free-space-cache.c Btrfs: remove free-space-cache.c WARN during log replay 2011-11-21 14:57:33 -05:00
free-space-cache.h
hash.h
inode-item.c
inode-map.c Btrfs: fix no reserved space for writing out inode cache 2011-11-10 20:45:04 -05:00
inode-map.h
inode.c Btrfs: fix deadlock on metadata reservation when evicting a inode 2011-11-30 18:46:03 +01:00
ioctl.c Btrfs: prefix resize related printks with btrfs: 2011-11-20 07:42:16 -05:00
ioctl.h Btrfs: fix the new inspection ioctls for 32 bit compat 2011-11-06 03:08:49 -05:00
locking.c
locking.h
lzo.c
ordered-data.c
ordered-data.h
orphan.c
print-tree.c btrfs: fix oops on failure path 2011-10-20 18:10:50 +02:00
print-tree.h
reada.c Btrfs: rename btrfs_bio multi -> bbio for consistency 2011-11-06 03:11:21 -05:00
relocation.c Btrfs: fix orphan backref nodes 2011-11-10 20:45:05 -05:00
root-tree.c
scrub.c btrfs scrub: handle -ENOMEM from init_ipath() 2011-11-30 18:46:01 +01:00
struct-funcs.c
super.c btrfs: rename the option to nospace_cache 2011-11-11 10:14:57 -05:00
sysfs.c
transaction.c Btrfs: fix tree corruption after multi-thread snapshots and inode_cache flush 2011-11-15 09:53:28 -05:00
transaction.h
tree-defrag.c
tree-log.c btrfs: separate superblock items out of fs_info 2011-11-06 03:04:01 -05:00
tree-log.h
version.h
volumes.c Btrfs: fix nocow when deleting the item 2011-11-10 20:45:04 -05:00
volumes.h Btrfs: fix barrier flushes 2011-11-20 07:21:14 -05:00
xattr.c
xattr.h
zlib.c