diff options
Diffstat (limited to 'fs/ocfs2/xattr.c')
-rw-r--r-- | fs/ocfs2/xattr.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c index 123d378aba9e..3b059cf2eb45 100644 --- a/fs/ocfs2/xattr.c +++ b/fs/ocfs2/xattr.c | |||
@@ -636,8 +636,7 @@ leave: | |||
636 | } | 636 | } |
637 | 637 | ||
638 | static int __ocfs2_remove_xattr_range(struct inode *inode, | 638 | static int __ocfs2_remove_xattr_range(struct inode *inode, |
639 | struct buffer_head *root_bh, | 639 | struct ocfs2_xattr_value_buf *vb, |
640 | struct ocfs2_xattr_value_root *xv, | ||
641 | u32 cpos, u32 phys_cpos, u32 len, | 640 | u32 cpos, u32 phys_cpos, u32 len, |
642 | struct ocfs2_xattr_set_ctxt *ctxt) | 641 | struct ocfs2_xattr_set_ctxt *ctxt) |
643 | { | 642 | { |
@@ -645,16 +644,11 @@ static int __ocfs2_remove_xattr_range(struct inode *inode, | |||
645 | u64 phys_blkno = ocfs2_clusters_to_blocks(inode->i_sb, phys_cpos); | 644 | u64 phys_blkno = ocfs2_clusters_to_blocks(inode->i_sb, phys_cpos); |
646 | handle_t *handle = ctxt->handle; | 645 | handle_t *handle = ctxt->handle; |
647 | struct ocfs2_extent_tree et; | 646 | struct ocfs2_extent_tree et; |
648 | struct ocfs2_xattr_value_buf vb = { | ||
649 | .vb_bh = root_bh, | ||
650 | .vb_xv = xv, | ||
651 | .vb_access = ocfs2_journal_access, | ||
652 | }; | ||
653 | 647 | ||
654 | ocfs2_init_xattr_value_extent_tree(&et, inode, &vb); | 648 | ocfs2_init_xattr_value_extent_tree(&et, inode, vb); |
655 | 649 | ||
656 | ret = vb.vb_access(handle, inode, vb.vb_bh, | 650 | ret = vb->vb_access(handle, inode, vb->vb_bh, |
657 | OCFS2_JOURNAL_ACCESS_WRITE); | 651 | OCFS2_JOURNAL_ACCESS_WRITE); |
658 | if (ret) { | 652 | if (ret) { |
659 | mlog_errno(ret); | 653 | mlog_errno(ret); |
660 | goto out; | 654 | goto out; |
@@ -667,9 +661,9 @@ static int __ocfs2_remove_xattr_range(struct inode *inode, | |||
667 | goto out; | 661 | goto out; |
668 | } | 662 | } |
669 | 663 | ||
670 | le32_add_cpu(&vb.vb_xv->xr_clusters, -len); | 664 | le32_add_cpu(&vb->vb_xv->xr_clusters, -len); |
671 | 665 | ||
672 | ret = ocfs2_journal_dirty(handle, vb.vb_bh); | 666 | ret = ocfs2_journal_dirty(handle, vb->vb_bh); |
673 | if (ret) { | 667 | if (ret) { |
674 | mlog_errno(ret); | 668 | mlog_errno(ret); |
675 | goto out; | 669 | goto out; |
@@ -693,6 +687,11 @@ static int ocfs2_xattr_shrink_size(struct inode *inode, | |||
693 | int ret = 0; | 687 | int ret = 0; |
694 | u32 trunc_len, cpos, phys_cpos, alloc_size; | 688 | u32 trunc_len, cpos, phys_cpos, alloc_size; |
695 | u64 block; | 689 | u64 block; |
690 | struct ocfs2_xattr_value_buf vb = { | ||
691 | .vb_bh = root_bh, | ||
692 | .vb_xv = xv, | ||
693 | .vb_access = ocfs2_journal_access, | ||
694 | }; | ||
696 | 695 | ||
697 | if (old_clusters <= new_clusters) | 696 | if (old_clusters <= new_clusters) |
698 | return 0; | 697 | return 0; |
@@ -701,7 +700,8 @@ static int ocfs2_xattr_shrink_size(struct inode *inode, | |||
701 | trunc_len = old_clusters - new_clusters; | 700 | trunc_len = old_clusters - new_clusters; |
702 | while (trunc_len) { | 701 | while (trunc_len) { |
703 | ret = ocfs2_xattr_get_clusters(inode, cpos, &phys_cpos, | 702 | ret = ocfs2_xattr_get_clusters(inode, cpos, &phys_cpos, |
704 | &alloc_size, &xv->xr_list); | 703 | &alloc_size, |
704 | &vb.vb_xv->xr_list); | ||
705 | if (ret) { | 705 | if (ret) { |
706 | mlog_errno(ret); | 706 | mlog_errno(ret); |
707 | goto out; | 707 | goto out; |
@@ -710,7 +710,7 @@ static int ocfs2_xattr_shrink_size(struct inode *inode, | |||
710 | if (alloc_size > trunc_len) | 710 | if (alloc_size > trunc_len) |
711 | alloc_size = trunc_len; | 711 | alloc_size = trunc_len; |
712 | 712 | ||
713 | ret = __ocfs2_remove_xattr_range(inode, root_bh, xv, cpos, | 713 | ret = __ocfs2_remove_xattr_range(inode, &vb, cpos, |
714 | phys_cpos, alloc_size, | 714 | phys_cpos, alloc_size, |
715 | ctxt); | 715 | ctxt); |
716 | if (ret) { | 716 | if (ret) { |