https://github.com/torvalds/linux
Revision b2f49033d80c952a0ffc2d5647bc1a0b8a09c1b3 authored by Peter Staubach on 17 February 2006, 21:52:36 UTC, committed by Linus Torvalds on 17 February 2006, 21:59:26 UTC
Fix a deadlock possible in the ext2 file system implementation.  This
deadlock occurs when a file is removed from an ext2 file system which was
mounted with the "sync" mount option.

The problem is that ext2_xattr_delete_inode() was invoking the routine,
sync_dirty_buffer(), using a buffer head which was previously locked via
lock_buffer().  The first thing that sync_dirty_buffer() does is to lock
the buffer head that it was passed.  It does this via lock_buffer().  Oops.

The solution is to unlock the buffer head in ext2_xattr_delete_inode()
before invoking sync_dirty_buffer().  This makes the code in
ext2_xattr_delete_inode() obey the same locking rules as all other callers
of sync_dirty_buffer() in the ext2 file system implementation.

Signed-off-by: Peter Staubach <staubach@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1 parent 614f8f5
History
Tip revision: b2f49033d80c952a0ffc2d5647bc1a0b8a09c1b3 authored by Peter Staubach on 17 February 2006, 21:52:36 UTC
[PATCH] fix deadlock in ext2
Tip revision: b2f4903
File Mode Size
DocBook
RCU
aoe
arm
block
cdrom
connector
cpu-freq
cris
crypto
device-mapper
driver-model
drivers
dvb
early-userspace
fb
filesystems
firmware_class
fujitsu
hwmon
i2c
i2o
i386
ia64
infiniband
input
ioctl
isdn
kbuild
kdump
m68k
mips
networking
parisc
pcmcia
power
powerpc
s390
scsi
serial
sh
sound
sparc
spi
sysctl
telephony
uml
usb
video4linux
vm
w1
watchdog
x86_64
00-INDEX -rw-r--r-- 10.3 KB
BUG-HUNTING -rw-r--r-- 3.6 KB
Changes -rw-r--r-- 12.1 KB
CodingStyle -rw-r--r-- 17.4 KB
DMA-API.txt -rw-r--r-- 19.9 KB
DMA-ISA-LPC.txt -rw-r--r-- 5.2 KB
DMA-mapping.txt -rw-r--r-- 31.2 KB
HOWTO -rw-r--r-- 26.9 KB
IO-mapping.txt -rw-r--r-- 7.8 KB
IPMI.txt -rw-r--r-- 24.6 KB
IRQ-affinity.txt -rw-r--r-- 1.3 KB
MSI-HOWTO.txt -rw-r--r-- 22.8 KB
ManagementStyle -rw-r--r-- 12.9 KB
PCIEBUS-HOWTO.txt -rw-r--r-- 8.6 KB
README.DAC960 -rw-r--r-- 33.9 KB
README.cycladesZ -rw-r--r-- 293 bytes
SAK.txt -rw-r--r-- 2.9 KB
SecurityBugs -rw-r--r-- 1.8 KB
SubmittingDrivers -rw-r--r-- 5.5 KB
SubmittingPatches -rw-r--r-- 17.2 KB
VGA-softcursor.txt -rw-r--r-- 2.0 KB
acpi-hotkey.txt -rw-r--r-- 1.3 KB
applying-patches.txt -rw-r--r-- 19.5 KB
atomic_ops.txt -rw-r--r-- 15.6 KB
basic_profiling.txt -rw-r--r-- 1.7 KB
binfmt_misc.txt -rw-r--r-- 6.0 KB
cachetlb.txt -rw-r--r-- 15.7 KB
cciss.txt -rw-r--r-- 6.5 KB
cli-sti-removal.txt -rw-r--r-- 3.9 KB
computone.txt -rw-r--r-- 20.3 KB
cpqarray.txt -rw-r--r-- 2.2 KB
cpu-hotplug.txt -rw-r--r-- 13.6 KB
cpusets.txt -rw-r--r-- 23.0 KB
cputopology.txt -rw-r--r-- 1.6 KB
dcdbas.txt -rw-r--r-- 3.6 KB
debugging-modules.txt -rw-r--r-- 759 bytes
dell_rbu.txt -rw-r--r-- 4.9 KB
devices.txt -rw-r--r-- 111.5 KB
digiepca.txt -rw-r--r-- 3.7 KB
dnotify.txt -rw-r--r-- 3.5 KB
dontdiff -rw-r--r-- 1.3 KB
eisa.txt -rw-r--r-- 7.1 KB
exception.txt -rw-r--r-- 12.1 KB
feature-removal-schedule.txt -rw-r--r-- 6.1 KB
floppy.txt -rw-r--r-- 8.3 KB
ftape.txt -rw-r--r-- 10.7 KB
hayes-esp.txt -rw-r--r-- 6.5 KB
highuid.txt -rw-r--r-- 2.5 KB
hpet.txt -rw-r--r-- 6.4 KB
hrtimers.txt -rw-r--r-- 8.7 KB
hw_random.txt -rw-r--r-- 2.6 KB
ibm-acpi.txt -rw-r--r-- 26.0 KB
ide.txt -rw-r--r-- 15.4 KB
initrd.txt -rw-r--r-- 13.1 KB
io_ordering.txt -rw-r--r-- 1.9 KB
ioctl-number.txt -rw-r--r-- 7.0 KB
iostats.txt -rw-r--r-- 7.1 KB
isapnp.txt -rw-r--r-- 433 bytes
java.txt -rw-r--r-- 10.7 KB
kernel-doc-nano-HOWTO.txt -rw-r--r-- 5.1 KB
kernel-docs.txt -rw-r--r-- 36.2 KB
kernel-parameters.txt -rw-r--r-- 47.1 KB
keys-request-key.txt -rw-r--r-- 6.2 KB
keys.txt -rw-r--r-- 38.4 KB
kobject.txt -rw-r--r-- 11.3 KB
kprobes.txt -rw-r--r-- 21.3 KB
kref.txt -rw-r--r-- 6.1 KB
laptop-mode.txt -rw-r--r-- 30.7 KB
ldm.txt -rw-r--r-- 3.6 KB
locks.txt -rw-r--r-- 2.6 KB
logo.gif -rw-r--r-- 16.0 KB
logo.txt -rw-r--r-- 563 bytes
magic-number.txt -rw-r--r-- 9.9 KB
mandatory.txt -rw-r--r-- 7.1 KB
mca.txt -rw-r--r-- 11.5 KB
md.txt -rw-r--r-- 14.0 KB
memory.txt -rw-r--r-- 2.1 KB
mono.txt -rw-r--r-- 2.5 KB
moxa-smartio -rw-r--r-- 16.3 KB
mtrr.txt -rw-r--r-- 9.6 KB
mutex-design.txt -rw-r--r-- 5.5 KB
nbd.txt -rw-r--r-- 1.9 KB
nfsroot.txt -rw-r--r-- 7.8 KB
nmi_watchdog.txt -rw-r--r-- 4.2 KB
nommu-mmap.txt -rw-r--r-- 8.7 KB
numastat.txt -rw-r--r-- 861 bytes
oops-tracing.txt -rw-r--r-- 11.3 KB
paride.txt -rw-r--r-- 16.7 KB
parport-lowlevel.txt -rw-r--r-- 32.5 KB
parport.txt -rw-r--r-- 8.8 KB
pci-error-recovery.txt -rw-r--r-- 17.7 KB
pci.txt -rw-r--r-- 11.8 KB
pm.txt -rw-r--r-- 9.7 KB
pnp.txt -rw-r--r-- 6.6 KB
preempt-locking.txt -rw-r--r-- 5.2 KB
prio_tree.txt -rw-r--r-- 5.2 KB
ramdisk.txt -rw-r--r-- 6.3 KB
riscom8.txt -rw-r--r-- 1.3 KB
rocket.txt -rw-r--r-- 7.6 KB
rpc-cache.txt -rw-r--r-- 7.1 KB
rtc.txt -rw-r--r-- 8.1 KB
sched-arch.txt -rw-r--r-- 3.3 KB
sched-coding.txt -rw-r--r-- 4.0 KB
sched-design.txt -rw-r--r-- 7.7 KB
sched-domains.txt -rw-r--r-- 3.6 KB
sched-stats.txt -rw-r--r-- 7.0 KB
seclvl.txt -rw-r--r-- 3.0 KB
serial-console.txt -rw-r--r-- 3.8 KB
sgi-ioc4.txt -rw-r--r-- 2.0 KB
sgi-visws.txt -rw-r--r-- 678 bytes
sharedsubtree.txt -rw-r--r-- 31.9 KB
smart-config.txt -rw-r--r-- 3.1 KB
smp.txt -rw-r--r-- 844 bytes
sonypi.txt -rw-r--r-- 6.2 KB
sparse.txt -rw-r--r-- 2.2 KB
specialix.txt -rw-r--r-- 14.8 KB
spinlocks.txt -rw-r--r-- 8.4 KB
stable_api_nonsense.txt -rw-r--r-- 9.3 KB
stable_kernel_rules.txt -rw-r--r-- 2.5 KB
stallion.txt -rw-r--r-- 17.6 KB
svga.txt -rw-r--r-- 14.1 KB
sx.txt -rw-r--r-- 11.3 KB
sysrq.txt -rw-r--r-- 10.1 KB
time_interpolators.txt -rw-r--r-- 1.4 KB
tipar.txt -rw-r--r-- 2.8 KB
tty.txt -rw-r--r-- 7.3 KB
unicode.txt -rw-r--r-- 6.5 KB
unshare.txt -rw-r--r-- 13.1 KB
voyager.txt -rw-r--r-- 3.4 KB
xterm-linux.xpm -rw-r--r-- 3.5 KB
zorro.txt -rw-r--r-- 2.8 KB

README.DAC960

back to top