summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorChao Yu2015-02-05 11:02:44 +0100
committerJaegeuk Kim2015-03-03 18:58:48 +0100
commit91c5d9bce7fef638add2cd36676e157354784d0f (patch)
tree4b76ff5882d97f4db40f2f91dda27847bbbd3b29 /fs
parentf2fs: support fast lookup in extent cache (diff)
downloadkernel-qcow2-linux-91c5d9bce7fef638add2cd36676e157354784d0f.tar.gz
kernel-qcow2-linux-91c5d9bce7fef638add2cd36676e157354784d0f.tar.xz
kernel-qcow2-linux-91c5d9bce7fef638add2cd36676e157354784d0f.zip
f2fs: switch to check FI_NO_EXTENT in f2fs_{lookup,update}_extent_cache
This patch switch to check FI_NO_EXTENT in f2fs_{lookup,update}_extent_cache instead of f2fs_{lookup,update}_extent_tree or {lookup,update}_extent_info. No functionality modification in this patch. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/f2fs/data.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 08a71ae3ab8d..ad99b7a295b4 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -273,9 +273,6 @@ static bool lookup_extent_info(struct inode *inode, pgoff_t pgofs,
pgoff_t start_fofs, end_fofs;
block_t start_blkaddr;
- if (is_inode_flag_set(fi, FI_NO_EXTENT))
- return false;
-
read_lock(&fi->ext_lock);
if (fi->ext.len == 0) {
read_unlock(&fi->ext_lock);
@@ -306,9 +303,6 @@ static bool update_extent_info(struct inode *inode, pgoff_t fofs,
block_t start_blkaddr, end_blkaddr;
int need_update = true;
- if (is_inode_flag_set(fi, FI_NO_EXTENT))
- return false;
-
write_lock(&fi->ext_lock);
start_fofs = fi->ext.fofs;
@@ -542,9 +536,6 @@ static bool f2fs_lookup_extent_tree(struct inode *inode, pgoff_t pgofs,
struct extent_tree *et;
struct extent_node *en;
- if (is_inode_flag_set(F2FS_I(inode), FI_NO_EXTENT))
- return false;
-
trace_f2fs_lookup_extent_tree_start(inode, pgofs);
down_read(&sbi->extent_tree_lock);
@@ -586,9 +577,6 @@ static void f2fs_update_extent_tree(struct inode *inode, pgoff_t fofs,
struct extent_info ei, dei;
unsigned int endofs;
- if (is_inode_flag_set(F2FS_I(inode), FI_NO_EXTENT))
- return;
-
trace_f2fs_update_extent_tree(inode, fofs, blkaddr);
down_write(&sbi->extent_tree_lock);
@@ -780,6 +768,9 @@ out:
static bool f2fs_lookup_extent_cache(struct inode *inode, pgoff_t pgofs,
struct extent_info *ei)
{
+ if (is_inode_flag_set(F2FS_I(inode), FI_NO_EXTENT))
+ return false;
+
if (test_opt(F2FS_I_SB(inode), EXTENT_CACHE))
return f2fs_lookup_extent_tree(inode, pgofs, ei);
@@ -796,6 +787,9 @@ void f2fs_update_extent_cache(struct dnode_of_data *dn)
/* Update the page address in the parent node */
__set_data_blkaddr(dn);
+ if (is_inode_flag_set(fi, FI_NO_EXTENT))
+ return;
+
fofs = start_bidx_of_node(ofs_of_node(dn->node_page), fi) +
dn->ofs_in_node;