kernel-ark/fs
Mingming Cao fe55c45236 [PATCH] ext3: remove unnecessary race then retry in ext3_get_block
The extra race-with-truncate-then-retry logic around
ext3_get_block_handle(), which was inherited from ext2, becomes unecessary
for ext3, since we have already obtained the ei->truncate_sem in
ext3_get_block_handle() before calling ext3_alloc_branch().  The
ei->truncate_sem is already there to block concurrent truncate and block
allocation on the same inode.  So the inode's indirect addressing tree
won't be changed after we grab that semaphore.

We could, after get the semaphore, re-verify the branch is up-to-date or
not.  If it has been changed, then get the updated branch.  If we still
need block allocation, we will have a safe version of the branch to work
with in the ext3_find_goal()/ext3_splice_branch().

The code becomes more readable after remove those retry logic.  The patch
also clean up some gotos in ext3_get_block_handle() to make it more
readable.

Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-01 08:59:20 -07:00
..
adfs
affs
afs [PATCH] Exterminate PAGE_BUG 2005-05-01 08:59:01 -07:00
autofs
autofs4 [PATCH] autofs4: tree race fix 2005-05-01 08:59:17 -07:00
befs
bfs
cifs [PATCH] cifs: Update cifs todo list 2005-04-30 11:10:58 -07:00
coda
cramfs
debugfs
devfs
devpts
efs
exportfs
ext2
ext3 [PATCH] ext3: remove unnecessary race then retry in ext3_get_block 2005-05-01 08:59:20 -07:00
fat
freevxfs
hfs [PATCH] hfs, hfsplus: don't leak s_fs_info and fix an oops 2005-05-01 08:59:16 -07:00
hfsplus [PATCH] hfs, hfsplus: don't leak s_fs_info and fix an oops 2005-05-01 08:59:16 -07:00
hostfs [PATCH] uml - hostfs: avoid buffers 2005-05-01 08:58:56 -07:00
hpfs
hppfs
hugetlbfs
isofs
jbd
jffs
jffs2 [PATCH] Exterminate PAGE_BUG 2005-05-01 08:59:01 -07:00
jfs
lockd
minix
msdos
ncpfs
nfs
nfsd
nls
ntfs
openpromfs
partitions
proc [PATCH] procfs: Fix hardlink counts for /proc/<PID>/task 2005-05-01 08:59:03 -07:00
qnx4
ramfs
reiserfs [PATCH] reiserfs endianness: comp_short_keys() cleanup 2005-05-01 08:59:19 -07:00
romfs
smbfs
sysfs
sysv
udf [PATCH] Exterminate PAGE_BUG 2005-05-01 08:59:01 -07:00
ufs
umsdos
vfat
xfs
aio.c [PATCH] aio: optimize io_submit_one() 2005-05-01 08:59:16 -07:00
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf_fdpic.c
binfmt_elf.c [PATCH] Fix error recovery path for arch_setup_additional_pages 2005-04-28 15:17:19 -07:00
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio.c
block_dev.c
buffer.c [PATCH] Exterminate PAGE_BUG 2005-05-01 08:59:01 -07:00
char_dev.c
compat_ioctl.c
compat.c
dcache.c
dcookies.c
direct-io.c
dnotify.c
dquot.c
eventpoll.c
exec.c
fcntl.c [PATCH] convert that currently tests _NSIG directly to use valid_signal() 2005-05-01 08:59:14 -07:00
fifo.c
file_table.c
file.c
filesystems.c
fs-writeback.c
inode.c
ioctl.c
Kconfig
Kconfig.binfmt
libfs.c
locks.c
Makefile
mbcache.c
mpage.c [PATCH] mpage_writepages() page locking fix 2005-05-01 08:58:39 -07:00
namei.c
namespace.c
nfsctl.c
open.c
pipe.c
posix_acl.c
quota_v1.c
quota_v2.c
quota.c
read_write.c
readdir.c
select.c
seq_file.c
stat.c
super.c
xattr_acl.c
xattr.c