mm: Remove i_mmap_lock lockbreak
authorPeter Zijlstra <[email protected]>
Wed, 25 May 2011 00:12:04 +0000 (17:12 -0700)
committerLinus Torvalds <[email protected]>
Wed, 25 May 2011 15:39:17 +0000 (08:39 -0700)
commit97a894136f29802da19a15541de3c019e1ca147e
tree1fd3f92ba92a37d5d8527a1f41458091d0a944dc
parente4c70a6629f9c74c4b0de258a3951890e9047c82
mm: Remove i_mmap_lock lockbreak

Hugh says:
 "The only significant loser, I think, would be page reclaim (when
  concurrent with truncation): could spin for a long time waiting for
  the i_mmap_mutex it expects would soon be dropped? "

Counter points:
 - cpu contention makes the spin stop (need_resched())
 - zap pages should be freeing pages at a higher rate than reclaim
   ever can

I think the simplification of the truncate code is definitely worth it.

Effectively reverts: 2aa15890f3c ("mm: prevent concurrent
unmap_mapping_range() on the same inode") and takes out the code that
caused its problem.

Signed-off-by: Peter Zijlstra <[email protected]>
Reviewed-by: KAMEZAWA Hiroyuki <[email protected]>
Cc: Hugh Dickins <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: David Miller <[email protected]>
Cc: Martin Schwidefsky <[email protected]>
Cc: Russell King <[email protected]>
Cc: Paul Mundt <[email protected]>
Cc: Jeff Dike <[email protected]>
Cc: Richard Weinberger <[email protected]>
Cc: Tony Luck <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: KOSAKI Motohiro <[email protected]>
Cc: Nick Piggin <[email protected]>
Cc: Namhyung Kim <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
fs/inode.c
include/linux/fs.h
include/linux/mm.h
include/linux/mm_types.h
kernel/fork.c
mm/memory.c
mm/mmap.c
mm/mremap.c