From: Sunil Mushran <sunil.mushran@oracle.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH 1/1] Ocfs2: Let ocfs2 support fiemap for symlink and fast symlink.
Date: Mon, 21 Dec 2009 16:47:56 -0800 [thread overview]
Message-ID: <4B30173C.8000303@oracle.com> (raw)
In-Reply-To: <1261215910-16398-1-git-send-email-tristan.ye@oracle.com>
Can you add a comment atop ocfs2_fiemap_inline() saying that
this function handles fiemap for both inline data and fast symlink.
Just want to be clear about this considering the function name
suggests it is inline-data only.
Also, change the comment in ocfs2_fiemap()... "Handle inline-data and
fast symlink separately".
You can add my ack to your next post with the changes.
Acked-by: Sunil Mushran <sunil.mushran@oracle.com>
Tristan Ye wrote:
> For fast symlink, it can be treated the same as inlined files since
> the data extent we want to return of both case all were stored in
> metadata block. For symlink, it can be simply treated the same as we
> did for regular files.
>
> Signed-off-by: Tristan Ye <tristan.ye@oracle.com>
> ---
> fs/ocfs2/extent_map.c | 15 ++++++++++++---
> fs/ocfs2/symlink.c | 2 ++
> 2 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c
> index 843db64..3b5e435 100644
> --- a/fs/ocfs2/extent_map.c
> +++ b/fs/ocfs2/extent_map.c
> @@ -37,6 +37,7 @@
> #include "extent_map.h"
> #include "inode.h"
> #include "super.h"
> +#include "symlink.h"
>
> #include "buffer_head_io.h"
>
> @@ -715,11 +716,18 @@ static int ocfs2_fiemap_inline(struct inode *inode, struct buffer_head *di_bh,
> struct ocfs2_inode_info *oi = OCFS2_I(inode);
>
> di = (struct ocfs2_dinode *)di_bh->b_data;
> - id_count = le16_to_cpu(di->id2.i_data.id_count);
> + if (ocfs2_inode_is_fast_symlink(inode))
> + id_count = ocfs2_fast_symlink_chars(inode->i_sb);
> + else
> + id_count = le16_to_cpu(di->id2.i_data.id_count);
>
> if (map_start < id_count) {
> phys = oi->ip_blkno << inode->i_sb->s_blocksize_bits;
> - phys += offsetof(struct ocfs2_dinode, id2.i_data.id_data);
> + if (ocfs2_inode_is_fast_symlink(inode))
> + phys += offsetof(struct ocfs2_dinode, id2.i_symlink);
> + else
> + phys += offsetof(struct ocfs2_dinode,
> + id2.i_data.id_data);
>
> ret = fiemap_fill_next_extent(fieinfo, 0, phys, id_count,
> flags);
> @@ -758,7 +766,8 @@ int ocfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
> /*
> * Handle inline-data separately.
> */
> - if (OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) {
> + if ((OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) ||
> + ocfs2_inode_is_fast_symlink(inode)) {
> ret = ocfs2_fiemap_inline(inode, di_bh, fieinfo, map_start);
> goto out_unlock;
> }
> diff --git a/fs/ocfs2/symlink.c b/fs/ocfs2/symlink.c
> index e342103..49b133c 100644
> --- a/fs/ocfs2/symlink.c
> +++ b/fs/ocfs2/symlink.c
> @@ -163,6 +163,7 @@ const struct inode_operations ocfs2_symlink_inode_operations = {
> .getxattr = generic_getxattr,
> .listxattr = ocfs2_listxattr,
> .removexattr = generic_removexattr,
> + .fiemap = ocfs2_fiemap,
> };
> const struct inode_operations ocfs2_fast_symlink_inode_operations = {
> .readlink = ocfs2_readlink,
> @@ -174,4 +175,5 @@ const struct inode_operations ocfs2_fast_symlink_inode_operations = {
> .getxattr = generic_getxattr,
> .listxattr = ocfs2_listxattr,
> .removexattr = generic_removexattr,
> + .fiemap = ocfs2_fiemap,
> };
>
next prev parent reply other threads:[~2009-12-22 0:47 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-19 9:45 [Ocfs2-devel] [PATCH 1/1] Ocfs2: Let ocfs2 support fiemap for symlink and fast symlink Tristan Ye
2009-12-22 0:47 ` Sunil Mushran [this message]
2009-12-22 1:18 ` tristan
-- strict thread matches above, loose matches on Subject: below --
2009-12-22 1:11 Tristan Ye
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B30173C.8000303@oracle.com \
--to=sunil.mushran@oracle.com \
--cc=ocfs2-devel@oss.oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.