]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.25/patches.fixes/ocfs2-Remove-unused-ocfs2_restore_xattr_block.patch
Revert "Move xen patchset to new version's subdir."
[people/teissler/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.fixes / ocfs2-Remove-unused-ocfs2_restore_xattr_block.patch
diff --git a/src/patches/suse-2.6.27.25/patches.fixes/ocfs2-Remove-unused-ocfs2_restore_xattr_block.patch b/src/patches/suse-2.6.27.25/patches.fixes/ocfs2-Remove-unused-ocfs2_restore_xattr_block.patch
new file mode 100644 (file)
index 0000000..20e0625
--- /dev/null
@@ -0,0 +1,81 @@
+From: Tao Ma <tao.ma@oracle.com>
+Date: Fri, 17 Oct 2008 12:44:36 +0800
+Subject: ocfs2: Remove unused ocfs2_restore_xattr_block().
+
+Since now ocfs2 supports empty xattr buckets, we will never remove
+the xattr index tree even if all the xattrs are removed, so this
+function will never be called. So remove it.
+
+Signed-off-by: Tao Ma <tao.ma@oracle.com>
+Signed-off-by: Joel Becker <joel.becker@oracle.com>
+Signed-off-by: Mark Fasheh <mfasheh@suse.com>
+---
+ fs/ocfs2/xattr.c |   48 ------------------------------------------------
+ 1 files changed, 0 insertions(+), 48 deletions(-)
+
+Index: linux-2.6.27-ocfs2/fs/ocfs2/xattr.c
+===================================================================
+--- linux-2.6.27-ocfs2.orig/fs/ocfs2/xattr.c
++++ linux-2.6.27-ocfs2/fs/ocfs2/xattr.c
+@@ -1792,52 +1792,6 @@ cleanup:
+ }
+ /*
+- * When all the xattrs are deleted from index btree, the ocfs2_xattr_tree
+- * will be erased and ocfs2_xattr_block will have its ocfs2_xattr_header
+- * re-initialized.
+- */
+-static int ocfs2_restore_xattr_block(struct inode *inode,
+-                                   struct ocfs2_xattr_search *xs)
+-{
+-      int ret;
+-      handle_t *handle;
+-      struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
+-      struct ocfs2_xattr_block *xb =
+-              (struct ocfs2_xattr_block *)xs->xattr_bh->b_data;
+-      struct ocfs2_extent_list *el = &xb->xb_attrs.xb_root.xt_list;
+-      u16 xb_flags = le16_to_cpu(xb->xb_flags);
+-
+-      BUG_ON(!(xb_flags & OCFS2_XATTR_INDEXED) ||
+-              le16_to_cpu(el->l_next_free_rec) != 0);
+-
+-      handle = ocfs2_start_trans(osb, OCFS2_XATTR_BLOCK_UPDATE_CREDITS);
+-      if (IS_ERR(handle)) {
+-              ret = PTR_ERR(handle);
+-              handle = NULL;
+-              goto out;
+-      }
+-
+-      ret = ocfs2_journal_access(handle, inode, xs->xattr_bh,
+-                                 OCFS2_JOURNAL_ACCESS_WRITE);
+-      if (ret < 0) {
+-              mlog_errno(ret);
+-              goto out_commit;
+-      }
+-
+-      memset(&xb->xb_attrs, 0, inode->i_sb->s_blocksize -
+-             offsetof(struct ocfs2_xattr_block, xb_attrs));
+-
+-      xb->xb_flags = cpu_to_le16(xb_flags & ~OCFS2_XATTR_INDEXED);
+-
+-      ocfs2_journal_dirty(handle, xs->xattr_bh);
+-
+-out_commit:
+-      ocfs2_commit_trans(osb, handle);
+-out:
+-      return ret;
+-}
+-
+-/*
+  * ocfs2_xattr_block_set()
+  *
+  * Set, replace or remove an extended attribute into external block.
+@@ -1947,8 +1901,6 @@ out:
+       }
+       ret = ocfs2_xattr_set_entry_index_block(inode, xi, xs);
+-      if (!ret && xblk->xb_attrs.xb_root.xt_list.l_next_free_rec == 0)
+-              ret = ocfs2_restore_xattr_block(inode, xs);
+ end: