From a492ef6a61accb26ab97451791208948266c8d48 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Wed, 9 Dec 2009 21:30:02 -0500 Subject: [PATCH] --- yaml --- r: 174407 b: refs/heads/master c: fab3a549e204172236779f502eccb4f9bf0dc87d h: refs/heads/master i: 174405: 51f359a99441d5f8e3375a678bbabab89f633cdf 174403: 56bfc7515f1064c1fff6ca77b21f28aa7afce48f 174399: 2e779249c50c7fbc3b9da711a468313be03e40bf v: v3 --- [refs] | 2 +- trunk/fs/ext4/extents.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index d4cd53e6af8e..b07f20fa7dcd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a214238d3bb03723f820b0a398928d8e1637c987 +refs/heads/master: fab3a549e204172236779f502eccb4f9bf0dc87d diff --git a/trunk/fs/ext4/extents.c b/trunk/fs/ext4/extents.c index 700206e525da..3a7928f825e4 100644 --- a/trunk/fs/ext4/extents.c +++ b/trunk/fs/ext4/extents.c @@ -1762,7 +1762,9 @@ int ext4_ext_walk_space(struct inode *inode, ext4_lblk_t block, while (block < last && block != EXT_MAX_BLOCK) { num = last - block; /* find extent for this block */ + down_read(&EXT4_I(inode)->i_data_sem); path = ext4_ext_find_extent(inode, block, path); + up_read(&EXT4_I(inode)->i_data_sem); if (IS_ERR(path)) { err = PTR_ERR(path); path = NULL; @@ -3724,10 +3726,8 @@ int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, * Walk the extent tree gathering extent information. * ext4_ext_fiemap_cb will push extents back to user. */ - down_read(&EXT4_I(inode)->i_data_sem); error = ext4_ext_walk_space(inode, start_blk, len_blks, ext4_ext_fiemap_cb, fieinfo); - up_read(&EXT4_I(inode)->i_data_sem); } return error;