[PATCH 2/3] f2fs: switch to check FI_NO_EXTENT in f2fs_{lookup,update}_extent_cache
From: Chao Yu
Date: Thu Feb 05 2015 - 05:03:37 EST
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@xxxxxxxxxxx>
---
fs/f2fs/data.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 112db9c..45b97a5 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;
--
2.2.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/