ocfs2: Pass value buf to ocfs2_xattr_update_entry().
authorJoel Becker <joel.becker@oracle.com>
Tue, 9 Dec 2008 23:46:15 +0000 (15:46 -0800)
committerMark Fasheh <mfasheh@suse.com>
Mon, 5 Jan 2009 16:40:33 +0000 (08:40 -0800)
ocfs2_xattr_update_entry() updates the entry portion of an xattr buffer.
This can be part of multiple metadata block types, so pass the buffer in
via an ocfs2_xattr_value_buf.

Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
fs/ocfs2/xattr.c

index 409f9eeec703e9c18c07d1f53d8d8b926e4ddc80..6a056122771dfc3e1950f9c4b8dc2796acce4868 100644 (file)
@@ -1282,12 +1282,13 @@ static int ocfs2_xattr_update_entry(struct inode *inode,
                                    handle_t *handle,
                                    struct ocfs2_xattr_info *xi,
                                    struct ocfs2_xattr_search *xs,
+                                   struct ocfs2_xattr_value_buf *vb,
                                    size_t offs)
 {
        int ret;
 
-       ret = ocfs2_journal_access(handle, inode, xs->xattr_bh,
-                                  OCFS2_JOURNAL_ACCESS_WRITE);
+       ret = vb->vb_access(handle, inode, vb->vb_bh,
+                           OCFS2_JOURNAL_ACCESS_WRITE);
        if (ret) {
                mlog_errno(ret);
                goto out;
@@ -1301,7 +1302,7 @@ static int ocfs2_xattr_update_entry(struct inode *inode,
                ocfs2_xattr_set_local(xs->here, 0);
        ocfs2_xattr_hash_entry(inode, xs->header, xs->here);
 
-       ret = ocfs2_journal_dirty(handle, xs->xattr_bh);
+       ret = ocfs2_journal_dirty(handle, vb->vb_bh);
        if (ret < 0)
                mlog_errno(ret);
 out:
@@ -1345,7 +1346,7 @@ static int ocfs2_xattr_set_value_outside(struct inode *inode,
                mlog_errno(ret);
                return ret;
        }
-       ret = ocfs2_xattr_update_entry(inode, ctxt->handle, xi, xs, offs);
+       ret = ocfs2_xattr_update_entry(inode, ctxt->handle, xi, xs, &vb, offs);
        if (ret < 0) {
                mlog_errno(ret);
                return ret;
@@ -1574,6 +1575,7 @@ static int ocfs2_xattr_set_entry(struct inode *inode,
                                                               handle,
                                                               xi,
                                                               xs,
+                                                              &vb,
                                                               offs);
                                if (ret < 0) {
                                        mlog_errno(ret);