summaryrefslogtreecommitdiffstats
path: root/fs/ext4/namei.c
diff options
context:
space:
mode:
authorTao Ma <boyu.mt@taobao.com>2012-12-10 14:06:00 -0500
committerTheodore Ts'o <tytso@mit.edu>2012-12-10 14:06:00 -0500
commite8e948e7802a2ab05c146d3e72a39b93b5718236 (patch)
tree3e6914f6b16c457e0d14cee75bf0149f730bbd99 /fs/ext4/namei.c
parent7335cd3b41b1e704608ca46159641ca9cb598121 (diff)
ext4: let ext4_find_entry handle inline data
Create a new function ext4_find_inline_entry() to handle the case of inline data. Signed-off-by: Tao Ma <boyu.mt@taobao.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/namei.c')
-rw-r--r--fs/ext4/namei.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index d50684b9149..b498cafed12 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -1015,7 +1015,6 @@ static inline int search_dirblock(struct buffer_head *bh,
d_name, offset, res_dir);
}
-
/*
* Directory block splitting, compacting
*/
@@ -1198,6 +1197,15 @@ static struct buffer_head * ext4_find_entry (struct inode *dir,
namelen = d_name->len;
if (namelen > EXT4_NAME_LEN)
return NULL;
+
+ if (ext4_has_inline_data(dir)) {
+ int has_inline_data = 1;
+ ret = ext4_find_inline_entry(dir, d_name, res_dir,
+ &has_inline_data);
+ if (has_inline_data)
+ return ret;
+ }
+
if ((namelen <= 2) && (name[0] == '.') &&
(name[1] == '.' || name[1] == '\0')) {
/*