https://github.com/torvalds/linux
Revision 1f23920dbf1377fa9e4aef4f3d20c34a06a71a35 authored by Felix Blyakher on 08 May 2009, 00:49:45 UTC, committed by Felix Blyakher on 02 June 2009, 03:59:29 UTC
Regreesion from commit ef8f7fc, which rearranged the code in
xfs_swap_extents() leading to double unlock of xfs inode ilock.
That resulted in xfs_fsr deadlocking itself on platforms, which
don't handle double unlock of rw_semaphore nicely. It caused the
count go negative, which represents the write holder, without
really having one. ia64 is one of the platforms where deadlock
was easily reproduced and the fix was tested.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Felix Blyakher <felixb@sgi.com>
1 parent 28e2117
History
Tip revision: 1f23920dbf1377fa9e4aef4f3d20c34a06a71a35 authored by Felix Blyakher on 08 May 2009, 00:49:45 UTC
xfs: fix double unlock in xfs_swap_extents()
Tip revision: 1f23920
File Mode Size
Documentation
arch
block
crypto
drivers
firmware
fs
include
init
ipc
kernel
lib
mm
net
samples
scripts
security
sound
usr
virt
.gitignore -rw-r--r-- 867 bytes
.mailmap -rw-r--r-- 3.9 KB
COPYING -rw-r--r-- 18.3 KB
CREDITS -rw-r--r-- 91.5 KB
Kbuild -rw-r--r-- 2.4 KB
MAINTAINERS -rw-r--r-- 109.2 KB
Makefile -rw-r--r-- 53.6 KB
README -rw-r--r-- 16.7 KB
REPORTING-BUGS -rw-r--r-- 3.1 KB

README

back to top