diff options
author | Tao Ma <boyu.mt@taobao.com> | 2012-12-10 14:06:00 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2012-12-10 14:06:00 -0500 |
commit | e8e948e7802a2ab05c146d3e72a39b93b5718236 (patch) | |
tree | 3e6914f6b16c457e0d14cee75bf0149f730bbd99 /fs/ext4/namei.c | |
parent | 7335cd3b41b1e704608ca46159641ca9cb598121 (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.c | 10 |
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')) { /* |