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
Raw File
Tip revision: b2f49033d80c952a0ffc2d5647bc1a0b8a09c1b3 authored by Peter Staubach on 17 February 2006, 21:52:36 UTC
[PATCH] fix deadlock in ext2
Tip revision: b2f4903
lifeview.txt
collecting data about the lifeview models and the config coding on
gpio pins 0-9 ...
==================================================================

bt878:
 LR50 rev. Q ("PARTS: 7031505116), Tuner wurde als Nr. 5 erkannt, Eingänge
 SVideo, TV, Composite, Audio, Remote. CP9..1=100001001 (1: 0-Ohm-Widerstand
 gegen GND unbestückt; 0: bestückt)

------------------------------------------------------------------------------

saa7134:
		/* LifeView FlyTV Platinum FM (LR214WF) */
		/* "Peter Missel <peter.missel@onlinehome.de> */
		.name           = "LifeView FlyTV Platinum FM",
		/*      GP27    MDT2005 PB4 pin 10 */
		/*      GP26    MDT2005 PB3 pin 9 */
		/*      GP25    MDT2005 PB2 pin 8 */
		/*      GP23    MDT2005 PB1 pin 7 */
		/*      GP22    MDT2005 PB0 pin 6 */
		/*      GP21    MDT2005 PB5 pin 11 */
		/*      GP20    MDT2005 PB6 pin 12 */
		/*      GP19    MDT2005 PB7 pin 13 */
		/*      nc      MDT2005 PA3 pin 2 */
		/*      Remote  MDT2005 PA2 pin 1 */
		/*      GP18    MDT2005 PA1 pin 18 */
		/*      nc      MDT2005 PA0 pin 17 strap low */

		/*      GP17    Strap "GP7"=High */
		/*      GP16    Strap "GP6"=High
				0=Radio 1=TV
				Drives SA630D ENCH1 and HEF4052 A1 pins
				to do FM radio through SIF input */
		/*      GP15    nc */
		/*      GP14    nc */
		/*      GP13    nc */
		/*      GP12    Strap "GP5" = High */
		/*      GP11    Strap "GP4" = High */
		/*      GP10    Strap "GP3" = High */
		/*      GP09    Strap "GP2" = Low */
		/*      GP08    Strap "GP1" = Low */
		/*      GP07.00 nc */
back to top