OpenCloudOS-Kernel/fs/ext2
Peter Staubach b2f49033d8 [PATCH] fix deadlock in ext2
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>
2006-02-17 13:59:26 -08:00
..
Makefile [PATCH] xip: ext2: execute in place 2005-06-24 00:06:41 -07:00
acl.c [PATCH] Fix two ext[23] uninitialized warnings 2006-02-03 08:32:05 -08:00
acl.h [PATCH] remove <linux/xattr_acl.h> 2005-06-23 09:45:33 -07:00
balloc.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
bitmap.c [PATCH] fs/ext2/bitmap.c: ext2_count_free() is only required #ifdef EXT2FS_DEBUG 2006-01-10 08:01:56 -08:00
dir.c ext2: trivial indentation fix. 2006-01-11 01:38:27 +01:00
ext2.h [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
file.c [PATCH] xip: reduce code duplication 2005-06-24 00:06:41 -07:00
fsync.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ialloc.c [PATCH] quota: fix error code for ext2_new_inode() 2006-02-03 08:32:09 -08:00
inode.c [PATCH] Direct Migration V9: Avoid writeback / page_migrate() method 2006-02-01 08:53:17 -08:00
ioctl.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
namei.c [PATCH] ext2: remove d_splice_alias NULL check from ext2_lookup 2006-01-14 18:27:10 -08:00
super.c [PATCH] ext2: print xip mount option in ext2_show_options 2006-02-03 08:32:07 -08:00
symlink.c Fix nasty ncpfs symlink handling bug. 2005-08-19 18:02:56 -07:00
xattr.c [PATCH] fix deadlock in ext2 2006-02-17 13:59:26 -08:00
xattr.h [PATCH] ext2: Enable atomic inode security labeling 2005-09-09 13:57:27 -07:00
xattr_security.c [PATCH] ext2: Enable atomic inode security labeling 2005-09-09 13:57:27 -07:00
xattr_trusted.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
xattr_user.c [PATCH] remove ext2 xattr permission checks 2006-01-10 08:01:30 -08:00
xip.c [PATCH] fix xip sparse file handling in ext2 2005-07-27 16:25:53 -07:00
xip.h [PATCH] xip: ext2: execute in place 2005-06-24 00:06:41 -07:00