diff options
author | Tao Ma <tao.ma@oracle.com> | 2009-08-17 23:41:57 -0400 |
---|---|---|
committer | Joel Becker <joel.becker@oracle.com> | 2009-09-22 23:09:39 -0400 |
commit | 1061f9c1c9f81ed88b5d268a95d8e3ace80da63a (patch) | |
tree | de43d1c1122ade36f079f0381712bc0f06556ac5 /fs/ocfs2/extent_map.c | |
parent | a9063ab9a3827483007124bdb6f9877f0ab4c3f5 (diff) |
ocfs2: Return extent flags for xattr value tree.
With the new refcount tree, xattr value can also be refcounted
among multiple files. So return the appropriate extent flags
so that CoW can used it later.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Diffstat (limited to 'fs/ocfs2/extent_map.c')
-rw-r--r-- | fs/ocfs2/extent_map.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c index 40b51056bb32..843db64e9d4a 100644 --- a/fs/ocfs2/extent_map.c +++ b/fs/ocfs2/extent_map.c | |||
@@ -541,7 +541,8 @@ static void ocfs2_relative_extent_offsets(struct super_block *sb, | |||
541 | 541 | ||
542 | int ocfs2_xattr_get_clusters(struct inode *inode, u32 v_cluster, | 542 | int ocfs2_xattr_get_clusters(struct inode *inode, u32 v_cluster, |
543 | u32 *p_cluster, u32 *num_clusters, | 543 | u32 *p_cluster, u32 *num_clusters, |
544 | struct ocfs2_extent_list *el) | 544 | struct ocfs2_extent_list *el, |
545 | unsigned int *extent_flags) | ||
545 | { | 546 | { |
546 | int ret = 0, i; | 547 | int ret = 0, i; |
547 | struct buffer_head *eb_bh = NULL; | 548 | struct buffer_head *eb_bh = NULL; |
@@ -593,6 +594,9 @@ int ocfs2_xattr_get_clusters(struct inode *inode, u32 v_cluster, | |||
593 | *p_cluster = *p_cluster + coff; | 594 | *p_cluster = *p_cluster + coff; |
594 | if (num_clusters) | 595 | if (num_clusters) |
595 | *num_clusters = ocfs2_rec_clusters(el, rec) - coff; | 596 | *num_clusters = ocfs2_rec_clusters(el, rec) - coff; |
597 | |||
598 | if (extent_flags) | ||
599 | *extent_flags = rec->e_flags; | ||
596 | } | 600 | } |
597 | out: | 601 | out: |
598 | if (eb_bh) | 602 | if (eb_bh) |