summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2003-02-03 17:01:56 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2003-02-03 17:01:56 -0800
commit46b11ba936036868bd84dc0777f835af7851b1e1 (patch)
treed419fd77439cb4830a54e7aefb4321f3b1322edb /include/linux
parentb345e6d2a8865bc2c42bb5b186ff700a8723993e (diff)
[PATCH] fix i_sem contention in sys_unlink()
Truncates can take a very long time. Especially if there is a lot of writeout happening, because truncate must wait on in-progress I/O. And sys_unlink() is performing that truncate while holding the parent directory's i_sem. This basically shuts down new accesses to the entire directory until the synchronous I/O completes. In the testing I've been doing, that directory is /tmp, and this hurts. So change sys_unlink() to perform the actual truncate outside i_sem. When there is a continuous streaming write to the same disk, this patch reduces the time for `make -j4 bzImage' from 370 seconds to 220.
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions