aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ocfs2/extent_map.c6
-rw-r--r--fs/ocfs2/extent_map.h3
-rw-r--r--fs/ocfs2/xattr.c7
3 files changed, 11 insertions, 5 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
542int ocfs2_xattr_get_clusters(struct inode *inode, u32 v_cluster, 542int 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 }
597out: 601out:
598 if (eb_bh) 602 if (eb_bh)
diff --git a/fs/ocfs2/extent_map.h b/fs/ocfs2/extent_map.h
index 9942f47efda7..e79d41c2c909 100644
--- a/fs/ocfs2/extent_map.h
+++ b/fs/ocfs2/extent_map.h
@@ -55,7 +55,8 @@ int ocfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
55 55
56int ocfs2_xattr_get_clusters(struct inode *inode, u32 v_cluster, 56int ocfs2_xattr_get_clusters(struct inode *inode, u32 v_cluster,
57 u32 *p_cluster, u32 *num_clusters, 57 u32 *p_cluster, u32 *num_clusters,
58 struct ocfs2_extent_list *el); 58 struct ocfs2_extent_list *el,
59 unsigned int *extent_flags);
59 60
60int ocfs2_read_virt_blocks(struct inode *inode, u64 v_block, int nr, 61int ocfs2_read_virt_blocks(struct inode *inode, u64 v_block, int nr,
61 struct buffer_head *bhs[], int flags, 62 struct buffer_head *bhs[], int flags,
diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c
index 1bf12c453f99..dda49c00362a 100644
--- a/fs/ocfs2/xattr.c
+++ b/fs/ocfs2/xattr.c
@@ -704,7 +704,7 @@ static int ocfs2_xattr_shrink_size(struct inode *inode,
704 while (trunc_len) { 704 while (trunc_len) {
705 ret = ocfs2_xattr_get_clusters(inode, cpos, &phys_cpos, 705 ret = ocfs2_xattr_get_clusters(inode, cpos, &phys_cpos,
706 &alloc_size, 706 &alloc_size,
707 &vb->vb_xv->xr_list); 707 &vb->vb_xv->xr_list, NULL);
708 if (ret) { 708 if (ret) {
709 mlog_errno(ret); 709 mlog_errno(ret);
710 goto out; 710 goto out;
@@ -959,7 +959,7 @@ static int ocfs2_xattr_get_value_outside(struct inode *inode,
959 cpos = 0; 959 cpos = 0;
960 while (cpos < clusters) { 960 while (cpos < clusters) {
961 ret = ocfs2_xattr_get_clusters(inode, cpos, &p_cluster, 961 ret = ocfs2_xattr_get_clusters(inode, cpos, &p_cluster,
962 &num_clusters, el); 962 &num_clusters, el, NULL);
963 if (ret) { 963 if (ret) {
964 mlog_errno(ret); 964 mlog_errno(ret);
965 goto out; 965 goto out;
@@ -1198,7 +1198,8 @@ static int __ocfs2_xattr_set_value_outside(struct inode *inode,
1198 1198
1199 while (cpos < clusters) { 1199 while (cpos < clusters) {
1200 ret = ocfs2_xattr_get_clusters(inode, cpos, &p_cluster, 1200 ret = ocfs2_xattr_get_clusters(inode, cpos, &p_cluster,
1201 &num_clusters, &xv->xr_list); 1201 &num_clusters, &xv->xr_list,
1202 NULL);
1202 if (ret) { 1203 if (ret) {
1203 mlog_errno(ret); 1204 mlog_errno(ret);
1204 goto out; 1205 goto out;