ext4: add a new nolock flag in ext4_map_blocks
authorZheng Liu <wenqing.lz@taobao.com>
Mon, 9 Jul 2012 20:29:29 +0000 (16:29 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 9 Jul 2012 20:29:29 +0000 (16:29 -0400)
commit729f52c6be51013c9268e5fc85acbc1091286fdb
treec3e8a6348ef23fcf15797b9f68905ec666ec43f8
parentfbe104942d3ff44f6802e8e4a3fbf267c1fb9ac4
ext4: add a new nolock flag in ext4_map_blocks

EXT4_GET_BLOCKS_NO_LOCK flag is added to indicate that we don't need
to acquire i_data_sem lock in ext4_map_blocks.  Meanwhile, it changes
ext4_get_block() to not start a new journal because when we do a
overwrite dio, there is no any metadata that needs to be modified.

We define a new function called ext4_get_block_write_nolock, which is
used in dio overwrite nolock.  In this function, it doesn't try to
acquire i_data_sem lock and doesn't start a new journal as it does a
lookup.

CC: Tao Ma <tm@tao.ma>
CC: Eric Sandeen <sandeen@redhat.com>
CC: Robin Dong <hao.bigrat@gmail.com>
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/ext4.h
fs/ext4/inode.c