summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/xcr.h
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2009-04-21 15:53:38 (GMT)
committerChris Mason <chris.mason@oracle.com>2009-04-21 16:45:12 (GMT)
commit546888da82082555a56528730a83f0afd12f33bf (patch)
tree98ee868d1b8a4bd390a980fed707f91419b79fb5 /arch/x86/include/asm/xcr.h
parent8c594ea81d7abbbffdda447b127f8ba8d76f319d (diff)
downloadlinux-546888da82082555a56528730a83f0afd12f33bf.tar.xz
Btrfs: fix btrfs fallocate oops and deadlock
Btrfs fallocate was incorrectly starting a transaction with a lock held on the extent_io tree for the file, which could deadlock. Strictly speaking it was using join_transaction which would be safe, but it is better to move the transaction outside of the lock. When preallocated extents are overwritten, btrfs_mark_buffer_dirty was being called on an unlocked buffer. This was triggering an assertion and oops because the lock is supposed to be held. The bug was calling btrfs_mark_buffer_dirty on a leaf after btrfs_del_item had been run. btrfs_del_item takes care of dirtying things, so the solution is a to skip the btrfs_mark_buffer_dirty call in this case. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'arch/x86/include/asm/xcr.h')
0 files changed, 0 insertions, 0 deletions