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: 2aa15890 ("mm: prevent concurrent unmap_mapping_range() on the same inode") and takes out the code that caused its problem. Signed-off-by:Peter Zijlstra <a.p.zijlstra@chello.nl> Reviewed-by:
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Hugh Dickins <hughd@google.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: David Miller <davem@davemloft.net> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Jeff Dike <jdike@addtoit.com> Cc: Richard Weinberger <richard@nod.at> Cc: Tony Luck <tony.luck@intel.com> Cc: Mel Gorman <mel@csn.ul.ie> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Nick Piggin <npiggin@kernel.dk> Cc: Namhyung Kim <namhyung@gmail.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
Showing
- fs/inode.c 0 additions, 1 deletionfs/inode.c
- include/linux/fs.h 0 additions, 2 deletionsinclude/linux/fs.h
- include/linux/mm.h 0 additions, 2 deletionsinclude/linux/mm.h
- include/linux/mm_types.h 0 additions, 1 deletioninclude/linux/mm_types.h
- kernel/fork.c 0 additions, 1 deletionkernel/fork.c
- mm/memory.c 27 additions, 168 deletionsmm/memory.c
- mm/mmap.c 1 addition, 12 deletionsmm/mmap.c
- mm/mremap.c 0 additions, 1 deletionmm/mremap.c
Loading
Please register or sign in to comment