Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 402b4183 authored by Tao Ma's avatar Tao Ma
Browse files

ocfs2: Remove masklog ML_XATTR.



Remove mlog(0) from fs/ocfs2/xattr.c and the masklog ML_XATTR.

Signed-off-by: default avatarTao Ma <boyu.mt@taobao.com>
parent 32a42d39
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -102,7 +102,6 @@ static struct mlog_attribute mlog_attrs[MLOG_MAX_BITS] = {
	define_mask(CONN),
	define_mask(CONN),
	define_mask(QUORUM),
	define_mask(QUORUM),
	define_mask(EXPORT),
	define_mask(EXPORT),
	define_mask(XATTR),
	define_mask(QUOTA),
	define_mask(QUOTA),
	define_mask(BASTS),
	define_mask(BASTS),
	define_mask(RESERVATIONS),
	define_mask(RESERVATIONS),
+0 −1
Original line number Original line Diff line number Diff line
@@ -104,7 +104,6 @@
#define ML_CONN		0x0000000004000000ULL /* net connection management */
#define ML_CONN		0x0000000004000000ULL /* net connection management */
#define ML_QUORUM	0x0000000008000000ULL /* net connection quorum */
#define ML_QUORUM	0x0000000008000000ULL /* net connection quorum */
#define ML_EXPORT	0x0000000010000000ULL /* ocfs2 export operations */
#define ML_EXPORT	0x0000000010000000ULL /* ocfs2 export operations */
#define ML_XATTR	0x0000000020000000ULL /* ocfs2 extended attributes */
#define ML_QUOTA	0x0000000040000000ULL /* ocfs2 quota operations */
#define ML_QUOTA	0x0000000040000000ULL /* ocfs2 quota operations */
#define ML_BASTS	0x0000000100000000ULL /* dlmglue asts and basts */
#define ML_BASTS	0x0000000100000000ULL /* dlmglue asts and basts */
#define ML_RESERVATIONS	0x0000000200000000ULL /* ocfs2 alloc reservations */
#define ML_RESERVATIONS	0x0000000200000000ULL /* ocfs2 alloc reservations */
+164 −0
Original line number Original line Diff line number Diff line
@@ -74,6 +74,23 @@ DEFINE_EVENT(ocfs2__pointer, name, \
	TP_PROTO(void *pointer),	\
	TP_PROTO(void *pointer),	\
	TP_ARGS(pointer))
	TP_ARGS(pointer))


DECLARE_EVENT_CLASS(ocfs2__string,
	TP_PROTO(const char *name),
	TP_ARGS(name),
	TP_STRUCT__entry(
		__string(name,name)
	),
	TP_fast_assign(
		__assign_str(name, name);
	),
	TP_printk("%s", __get_str(name))
);

#define DEFINE_OCFS2_STRING_EVENT(name)	\
DEFINE_EVENT(ocfs2__string, name,	\
	TP_PROTO(const char *name),	\
	TP_ARGS(name))

DECLARE_EVENT_CLASS(ocfs2__int_int,
DECLARE_EVENT_CLASS(ocfs2__int_int,
	TP_PROTO(int value1, int value2),
	TP_PROTO(int value1, int value2),
	TP_ARGS(value1, value2),
	TP_ARGS(value1, value2),
@@ -317,6 +334,33 @@ DEFINE_EVENT(ocfs2__ull_uint_uint_uint, name, \
		 unsigned int value2, unsigned int value3),	\
		 unsigned int value2, unsigned int value3),	\
	TP_ARGS(ull, value1, value2, value3))
	TP_ARGS(ull, value1, value2, value3))


DECLARE_EVENT_CLASS(ocfs2__ull_ull_uint_uint,
	TP_PROTO(unsigned long long value1, unsigned long long value2,
		 unsigned int value3, unsigned int value4),
	TP_ARGS(value1, value2, value3, value4),
	TP_STRUCT__entry(
		__field(unsigned long long, value1)
		__field(unsigned long long, value2)
		__field(unsigned int, value3)
		__field(unsigned int, value4)
	),
	TP_fast_assign(
		__entry->value1 = value1;
		__entry->value2 = value2;
		__entry->value3 = value3;
		__entry->value4 = value4;
	),
	TP_printk("%llu %llu %u %u",
		  __entry->value1, __entry->value2,
		  __entry->value3, __entry->value4)
);

#define DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(name)	\
DEFINE_EVENT(ocfs2__ull_ull_uint_uint, name,	\
	TP_PROTO(unsigned long long ull, unsigned long long ull1,	\
		 unsigned int value2, unsigned int value3),	\
	TP_ARGS(ull, ull1, value2, value3))

/* Trace events for fs/ocfs2/alloc.c. */
/* Trace events for fs/ocfs2/alloc.c. */
DECLARE_EVENT_CLASS(ocfs2__btree_ops,
DECLARE_EVENT_CLASS(ocfs2__btree_ops,
	TP_PROTO(unsigned long long owner,\
	TP_PROTO(unsigned long long owner,\
@@ -1645,6 +1689,126 @@ TRACE_EVENT(ocfs2_initialize_super,
);
);


/* End of trace events for fs/ocfs2/super.c. */
/* End of trace events for fs/ocfs2/super.c. */

/* Trace events for fs/ocfs2/xattr.c. */

DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_xattr_block);

DEFINE_OCFS2_UINT_EVENT(ocfs2_xattr_extend_allocation);

TRACE_EVENT(ocfs2_init_xattr_set_ctxt,
	TP_PROTO(const char *name, int meta, int clusters, int credits),
	TP_ARGS(name, meta, clusters, credits),
	TP_STRUCT__entry(
		__string(name, name)
		__field(int, meta)
		__field(int, clusters)
		__field(int, credits)
	),
	TP_fast_assign(
		__assign_str(name, name);
		__entry->meta = meta;
		__entry->clusters = clusters;
		__entry->credits = credits;
	),
	TP_printk("%s %d %d %d", __get_str(name), __entry->meta,
		  __entry->clusters, __entry->credits)
);

DECLARE_EVENT_CLASS(ocfs2__xattr_find,
	TP_PROTO(unsigned long long ino, const char *name, int name_index,
		 unsigned int hash, unsigned long long location,
		 int xe_index),
	TP_ARGS(ino, name, name_index, hash, location, xe_index),
	TP_STRUCT__entry(
		__field(unsigned long long, ino)
		__string(name, name)
		__field(int, name_index)
		__field(unsigned int, hash)
		__field(unsigned long long, location)
		__field(int, xe_index)
	),
	TP_fast_assign(
		__entry->ino = ino;
		__assign_str(name, name);
		__entry->name_index = name_index;
		__entry->hash = hash;
		__entry->location = location;
		__entry->xe_index = xe_index;
	),
	TP_printk("%llu %s %d %u %llu %d", __entry->ino, __get_str(name),
		  __entry->name_index, __entry->hash, __entry->location,
		  __entry->xe_index)
);

#define DEFINE_OCFS2_XATTR_FIND_EVENT(name)					\
DEFINE_EVENT(ocfs2__xattr_find, name,					\
TP_PROTO(unsigned long long ino, const char *name, int name_index,	\
	 unsigned int hash, unsigned long long bucket,			\
	 int xe_index),							\
	TP_ARGS(ino, name, name_index, hash, bucket, xe_index))

DEFINE_OCFS2_XATTR_FIND_EVENT(ocfs2_xattr_bucket_find);

DEFINE_OCFS2_XATTR_FIND_EVENT(ocfs2_xattr_index_block_find);

DEFINE_OCFS2_XATTR_FIND_EVENT(ocfs2_xattr_index_block_find_rec);

DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_iterate_xattr_buckets);

DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_iterate_xattr_bucket);

DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_cp_xattr_block_to_bucket_begin);

DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_cp_xattr_block_to_bucket_end);

DEFINE_OCFS2_ULL_EVENT(ocfs2_xattr_create_index_block_begin);

DEFINE_OCFS2_ULL_EVENT(ocfs2_xattr_create_index_block);

DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_defrag_xattr_bucket);

DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_mv_xattr_bucket_cross_cluster);

DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_divide_xattr_bucket_begin);

DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_divide_xattr_bucket_move);

DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_cp_xattr_bucket);

DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_mv_xattr_buckets);

DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_adjust_xattr_cross_cluster);

DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_add_new_xattr_cluster_begin);

DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_add_new_xattr_cluster);

DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_add_new_xattr_cluster_insert);

DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_extend_xattr_bucket);

DEFINE_OCFS2_ULL_EVENT(ocfs2_add_new_xattr_bucket);

DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_xattr_bucket_value_truncate);

DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_rm_xattr_cluster);

DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_reflink_xattr_header);

DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_create_empty_xattr_block);

DEFINE_OCFS2_STRING_EVENT(ocfs2_xattr_set_entry_bucket);

DEFINE_OCFS2_STRING_EVENT(ocfs2_xattr_set_entry_index_block);

DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_xattr_bucket_value_refcount);

DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_reflink_xattr_buckets);

DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_reflink_xattr_rec);

/* End of trace events for fs/ocfs2/xattr.c. */
#endif /* _TRACE_OCFS2_H */
#endif /* _TRACE_OCFS2_H */


/* This part must be outside protection */
/* This part must be outside protection */
+75 −78
Original line number Original line Diff line number Diff line
@@ -37,7 +37,6 @@
#include <linux/string.h>
#include <linux/string.h>
#include <linux/security.h>
#include <linux/security.h>


#define MLOG_MASK_PREFIX ML_XATTR
#include <cluster/masklog.h>
#include <cluster/masklog.h>


#include "ocfs2.h"
#include "ocfs2.h"
@@ -57,6 +56,7 @@
#include "xattr.h"
#include "xattr.h"
#include "refcounttree.h"
#include "refcounttree.h"
#include "acl.h"
#include "acl.h"
#include "ocfs2_trace.h"


struct ocfs2_xattr_def_value_root {
struct ocfs2_xattr_def_value_root {
	struct ocfs2_xattr_value_root	xv;
	struct ocfs2_xattr_value_root	xv;
@@ -474,8 +474,7 @@ static int ocfs2_validate_xattr_block(struct super_block *sb,
	struct ocfs2_xattr_block *xb =
	struct ocfs2_xattr_block *xb =
		(struct ocfs2_xattr_block *)bh->b_data;
		(struct ocfs2_xattr_block *)bh->b_data;


	mlog(0, "Validating xattr block %llu\n",
	trace_ocfs2_validate_xattr_block((unsigned long long)bh->b_blocknr);
	     (unsigned long long)bh->b_blocknr);


	BUG_ON(!buffer_uptodate(bh));
	BUG_ON(!buffer_uptodate(bh));


@@ -715,11 +714,11 @@ static int ocfs2_xattr_extend_allocation(struct inode *inode,
	u32 prev_clusters, logical_start = le32_to_cpu(vb->vb_xv->xr_clusters);
	u32 prev_clusters, logical_start = le32_to_cpu(vb->vb_xv->xr_clusters);
	struct ocfs2_extent_tree et;
	struct ocfs2_extent_tree et;


	mlog(0, "(clusters_to_add for xattr= %u)\n", clusters_to_add);

	ocfs2_init_xattr_value_extent_tree(&et, INODE_CACHE(inode), vb);
	ocfs2_init_xattr_value_extent_tree(&et, INODE_CACHE(inode), vb);


	while (clusters_to_add) {
	while (clusters_to_add) {
		trace_ocfs2_xattr_extend_allocation(clusters_to_add);

		status = vb->vb_access(handle, INODE_CACHE(inode), vb->vb_bh,
		status = vb->vb_access(handle, INODE_CACHE(inode), vb->vb_bh,
				       OCFS2_JOURNAL_ACCESS_WRITE);
				       OCFS2_JOURNAL_ACCESS_WRITE);
		if (status < 0) {
		if (status < 0) {
@@ -754,8 +753,6 @@ static int ocfs2_xattr_extend_allocation(struct inode *inode,
			 */
			 */
			BUG_ON(why == RESTART_META);
			BUG_ON(why == RESTART_META);


			mlog(0, "restarting xattr value extension for %u"
			     " clusters,.\n", clusters_to_add);
			credits = ocfs2_calc_extend_credits(inode->i_sb,
			credits = ocfs2_calc_extend_credits(inode->i_sb,
							    &vb->vb_xv->xr_list,
							    &vb->vb_xv->xr_list,
							    clusters_to_add);
							    clusters_to_add);
@@ -3246,8 +3243,8 @@ static int ocfs2_init_xattr_set_ctxt(struct inode *inode,
	}
	}


	meta_add += extra_meta;
	meta_add += extra_meta;
	mlog(0, "Set xattr %s, reserve meta blocks = %d, clusters = %d, "
	trace_ocfs2_init_xattr_set_ctxt(xi->xi_name, meta_add,
	     "credits = %d\n", xi->xi_name, meta_add, clusters_add, *credits);
					clusters_add, *credits);


	if (meta_add) {
	if (meta_add) {
		ret = ocfs2_reserve_new_metadata_blocks(osb, meta_add,
		ret = ocfs2_reserve_new_metadata_blocks(osb, meta_add,
@@ -3887,8 +3884,10 @@ static int ocfs2_xattr_bucket_find(struct inode *inode,


	if (found) {
	if (found) {
		xs->here = &xs->header->xh_entries[index];
		xs->here = &xs->header->xh_entries[index];
		mlog(0, "find xattr %s in bucket %llu, entry = %u\n", name,
		trace_ocfs2_xattr_bucket_find(OCFS2_I(inode)->ip_blkno,
		     (unsigned long long)bucket_blkno(xs->bucket), index);
			name, name_index, name_hash,
			(unsigned long long)bucket_blkno(xs->bucket),
			index);
	} else
	} else
		ret = -ENODATA;
		ret = -ENODATA;


@@ -3915,8 +3914,10 @@ static int ocfs2_xattr_index_block_find(struct inode *inode,
	if (le16_to_cpu(el->l_next_free_rec) == 0)
	if (le16_to_cpu(el->l_next_free_rec) == 0)
		return -ENODATA;
		return -ENODATA;


	mlog(0, "find xattr %s, hash = %u, index = %d in xattr tree\n",
	trace_ocfs2_xattr_index_block_find(OCFS2_I(inode)->ip_blkno,
	     name, name_hash, name_index);
					name, name_index, name_hash,
					(unsigned long long)root_bh->b_blocknr,
					-1);


	ret = ocfs2_xattr_get_rec(inode, name_hash, &p_blkno, &first_hash,
	ret = ocfs2_xattr_get_rec(inode, name_hash, &p_blkno, &first_hash,
				  &num_clusters, el);
				  &num_clusters, el);
@@ -3927,9 +3928,10 @@ static int ocfs2_xattr_index_block_find(struct inode *inode,


	BUG_ON(p_blkno == 0 || num_clusters == 0 || first_hash > name_hash);
	BUG_ON(p_blkno == 0 || num_clusters == 0 || first_hash > name_hash);


	mlog(0, "find xattr extent rec %u clusters from %llu, the first hash "
	trace_ocfs2_xattr_index_block_find_rec(OCFS2_I(inode)->ip_blkno,
	     "in the rec is %u\n", num_clusters, (unsigned long long)p_blkno,
					name, name_index, first_hash,
	     first_hash);
					(unsigned long long)p_blkno,
					num_clusters);


	ret = ocfs2_xattr_bucket_find(inode, name_index, name, name_hash,
	ret = ocfs2_xattr_bucket_find(inode, name_index, name, name_hash,
				      p_blkno, first_hash, num_clusters, xs);
				      p_blkno, first_hash, num_clusters, xs);
@@ -3955,8 +3957,9 @@ static int ocfs2_iterate_xattr_buckets(struct inode *inode,
		return -ENOMEM;
		return -ENOMEM;
	}
	}


	mlog(0, "iterating xattr buckets in %u clusters starting from %llu\n",
	trace_ocfs2_iterate_xattr_buckets(
	     clusters, (unsigned long long)blkno);
		(unsigned long long)OCFS2_I(inode)->ip_blkno,
		(unsigned long long)blkno, clusters);


	for (i = 0; i < num_buckets; i++, blkno += bucket->bu_blocks) {
	for (i = 0; i < num_buckets; i++, blkno += bucket->bu_blocks) {
		ret = ocfs2_read_xattr_bucket(bucket, blkno);
		ret = ocfs2_read_xattr_bucket(bucket, blkno);
@@ -3972,8 +3975,7 @@ static int ocfs2_iterate_xattr_buckets(struct inode *inode,
		if (i == 0)
		if (i == 0)
			num_buckets = le16_to_cpu(bucket_xh(bucket)->xh_num_buckets);
			num_buckets = le16_to_cpu(bucket_xh(bucket)->xh_num_buckets);


		mlog(0, "iterating xattr bucket %llu, first hash %u\n",
		trace_ocfs2_iterate_xattr_bucket((unsigned long long)blkno,
		     (unsigned long long)blkno,
		     le32_to_cpu(bucket_xh(bucket)->xh_entries[0].xe_name_hash));
		     le32_to_cpu(bucket_xh(bucket)->xh_entries[0].xe_name_hash));
		if (func) {
		if (func) {
			ret = func(inode, bucket, para);
			ret = func(inode, bucket, para);
@@ -4173,7 +4175,7 @@ static void ocfs2_cp_xattr_block_to_bucket(struct inode *inode,
	char *src = xb_bh->b_data;
	char *src = xb_bh->b_data;
	char *target = bucket_block(bucket, blks - 1);
	char *target = bucket_block(bucket, blks - 1);


	mlog(0, "cp xattr from block %llu to bucket %llu\n",
	trace_ocfs2_cp_xattr_block_to_bucket_begin(
				(unsigned long long)xb_bh->b_blocknr,
				(unsigned long long)xb_bh->b_blocknr,
				(unsigned long long)bucket_blkno(bucket));
				(unsigned long long)bucket_blkno(bucket));


@@ -4211,8 +4213,7 @@ static void ocfs2_cp_xattr_block_to_bucket(struct inode *inode,
	for (i = 0; i < count; i++)
	for (i = 0; i < count; i++)
		le16_add_cpu(&xh->xh_entries[i].xe_name_offset, off_change);
		le16_add_cpu(&xh->xh_entries[i].xe_name_offset, off_change);


	mlog(0, "copy entry: start = %u, size = %u, offset_change = %u\n",
	trace_ocfs2_cp_xattr_block_to_bucket_end(offset, size, off_change);
	     offset, size, off_change);


	sort(target + offset, count, sizeof(struct ocfs2_xattr_entry),
	sort(target + offset, count, sizeof(struct ocfs2_xattr_entry),
	     cmp_xe, swap_xe);
	     cmp_xe, swap_xe);
@@ -4261,7 +4262,7 @@ static int ocfs2_xattr_create_index_block(struct inode *inode,
	struct ocfs2_xattr_tree_root *xr;
	struct ocfs2_xattr_tree_root *xr;
	u16 xb_flags = le16_to_cpu(xb->xb_flags);
	u16 xb_flags = le16_to_cpu(xb->xb_flags);


	mlog(0, "create xattr index block for %llu\n",
	trace_ocfs2_xattr_create_index_block_begin(
				(unsigned long long)xb_bh->b_blocknr);
				(unsigned long long)xb_bh->b_blocknr);


	BUG_ON(xb_flags & OCFS2_XATTR_INDEXED);
	BUG_ON(xb_flags & OCFS2_XATTR_INDEXED);
@@ -4295,8 +4296,7 @@ static int ocfs2_xattr_create_index_block(struct inode *inode,
	 */
	 */
	blkno = ocfs2_clusters_to_blocks(inode->i_sb, bit_off);
	blkno = ocfs2_clusters_to_blocks(inode->i_sb, bit_off);


	mlog(0, "allocate 1 cluster from %llu to xattr block\n",
	trace_ocfs2_xattr_create_index_block((unsigned long long)blkno);
	     (unsigned long long)blkno);


	ret = ocfs2_init_xattr_bucket(xs->bucket, blkno);
	ret = ocfs2_init_xattr_bucket(xs->bucket, blkno);
	if (ret) {
	if (ret) {
@@ -4400,8 +4400,7 @@ static int ocfs2_defrag_xattr_bucket(struct inode *inode,
	entries = (char *)xh->xh_entries;
	entries = (char *)xh->xh_entries;
	xh_free_start = le16_to_cpu(xh->xh_free_start);
	xh_free_start = le16_to_cpu(xh->xh_free_start);


	mlog(0, "adjust xattr bucket in %llu, count = %u, "
	trace_ocfs2_defrag_xattr_bucket(
	     "xh_free_start = %u, xh_name_value_len = %u.\n",
	     (unsigned long long)blkno, le16_to_cpu(xh->xh_count),
	     (unsigned long long)blkno, le16_to_cpu(xh->xh_count),
	     xh_free_start, le16_to_cpu(xh->xh_name_value_len));
	     xh_free_start, le16_to_cpu(xh->xh_name_value_len));


@@ -4503,8 +4502,9 @@ static int ocfs2_mv_xattr_bucket_cross_cluster(struct inode *inode,
	BUG_ON(le16_to_cpu(bucket_xh(first)->xh_num_buckets) < num_buckets);
	BUG_ON(le16_to_cpu(bucket_xh(first)->xh_num_buckets) < num_buckets);
	BUG_ON(OCFS2_XATTR_BUCKET_SIZE == OCFS2_SB(sb)->s_clustersize);
	BUG_ON(OCFS2_XATTR_BUCKET_SIZE == OCFS2_SB(sb)->s_clustersize);


	mlog(0, "move half of xattrs in cluster %llu to %llu\n",
	trace_ocfs2_mv_xattr_bucket_cross_cluster(
	     (unsigned long long)last_cluster_blkno, (unsigned long long)new_blkno);
				(unsigned long long)last_cluster_blkno,
				(unsigned long long)new_blkno);


	ret = ocfs2_mv_xattr_buckets(inode, handle, bucket_blkno(first),
	ret = ocfs2_mv_xattr_buckets(inode, handle, bucket_blkno(first),
				     last_cluster_blkno, new_blkno,
				     last_cluster_blkno, new_blkno,
@@ -4614,8 +4614,8 @@ static int ocfs2_divide_xattr_bucket(struct inode *inode,
	struct ocfs2_xattr_entry *xe;
	struct ocfs2_xattr_entry *xe;
	int blocksize = inode->i_sb->s_blocksize;
	int blocksize = inode->i_sb->s_blocksize;


	mlog(0, "move some of xattrs from bucket %llu to %llu\n",
	trace_ocfs2_divide_xattr_bucket_begin((unsigned long long)blk,
	     (unsigned long long)blk, (unsigned long long)new_blk);
					      (unsigned long long)new_blk);


	s_bucket = ocfs2_xattr_bucket_new(inode);
	s_bucket = ocfs2_xattr_bucket_new(inode);
	t_bucket = ocfs2_xattr_bucket_new(inode);
	t_bucket = ocfs2_xattr_bucket_new(inode);
@@ -4714,7 +4714,7 @@ static int ocfs2_divide_xattr_bucket(struct inode *inode,
	 */
	 */
	xe = &xh->xh_entries[start];
	xe = &xh->xh_entries[start];
	len = sizeof(struct ocfs2_xattr_entry) * (count - start);
	len = sizeof(struct ocfs2_xattr_entry) * (count - start);
	mlog(0, "mv xattr entry len %d from %d to %d\n", len,
	trace_ocfs2_divide_xattr_bucket_move(len,
			(int)((char *)xe - (char *)xh),
			(int)((char *)xe - (char *)xh),
			(int)((char *)xh->xh_entries - (char *)xh));
			(int)((char *)xh->xh_entries - (char *)xh));
	memmove((char *)xh->xh_entries, (char *)xe, len);
	memmove((char *)xh->xh_entries, (char *)xe, len);
@@ -4788,8 +4788,8 @@ static int ocfs2_cp_xattr_bucket(struct inode *inode,


	BUG_ON(s_blkno == t_blkno);
	BUG_ON(s_blkno == t_blkno);


	mlog(0, "cp bucket %llu to %llu, target is %d\n",
	trace_ocfs2_cp_xattr_bucket((unsigned long long)s_blkno,
	     (unsigned long long)s_blkno, (unsigned long long)t_blkno,
				    (unsigned long long)t_blkno,
				    t_is_new);
				    t_is_new);


	s_bucket = ocfs2_xattr_bucket_new(inode);
	s_bucket = ocfs2_xattr_bucket_new(inode);
@@ -4862,8 +4862,8 @@ static int ocfs2_mv_xattr_buckets(struct inode *inode, handle_t *handle,
	int num_buckets = ocfs2_xattr_buckets_per_cluster(osb);
	int num_buckets = ocfs2_xattr_buckets_per_cluster(osb);
	struct ocfs2_xattr_bucket *old_first, *new_first;
	struct ocfs2_xattr_bucket *old_first, *new_first;


	mlog(0, "mv xattrs from cluster %llu to %llu\n",
	trace_ocfs2_mv_xattr_buckets((unsigned long long)last_blk,
	     (unsigned long long)last_blk, (unsigned long long)to_blk);
				     (unsigned long long)to_blk);


	BUG_ON(start_bucket >= num_buckets);
	BUG_ON(start_bucket >= num_buckets);
	if (start_bucket) {
	if (start_bucket) {
@@ -5013,9 +5013,9 @@ static int ocfs2_adjust_xattr_cross_cluster(struct inode *inode,
{
{
	int ret;
	int ret;


	mlog(0, "adjust xattrs from cluster %llu len %u to %llu\n",
	trace_ocfs2_adjust_xattr_cross_cluster(
	     (unsigned long long)bucket_blkno(first), prev_clusters,
			(unsigned long long)bucket_blkno(first),
	     (unsigned long long)new_blk);
			(unsigned long long)new_blk, prev_clusters);


	if (ocfs2_xattr_buckets_per_cluster(OCFS2_SB(inode->i_sb)) > 1) {
	if (ocfs2_xattr_buckets_per_cluster(OCFS2_SB(inode->i_sb)) > 1) {
		ret = ocfs2_mv_xattr_bucket_cross_cluster(inode,
		ret = ocfs2_mv_xattr_bucket_cross_cluster(inode,
@@ -5088,10 +5088,10 @@ static int ocfs2_add_new_xattr_cluster(struct inode *inode,
	struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
	struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
	struct ocfs2_extent_tree et;
	struct ocfs2_extent_tree et;


	mlog(0, "Add new xattr cluster for %llu, previous xattr hash = %u, "
	trace_ocfs2_add_new_xattr_cluster_begin(
	     "previous xattr blkno = %llu\n",
		(unsigned long long)OCFS2_I(inode)->ip_blkno,
		(unsigned long long)OCFS2_I(inode)->ip_blkno,
	     prev_cpos, (unsigned long long)bucket_blkno(first));
		(unsigned long long)bucket_blkno(first),
		prev_cpos, prev_clusters);


	ocfs2_init_xattr_tree_extent_tree(&et, INODE_CACHE(inode), root_bh);
	ocfs2_init_xattr_tree_extent_tree(&et, INODE_CACHE(inode), root_bh);


@@ -5113,8 +5113,7 @@ static int ocfs2_add_new_xattr_cluster(struct inode *inode,
	BUG_ON(num_bits > clusters_to_add);
	BUG_ON(num_bits > clusters_to_add);


	block = ocfs2_clusters_to_blocks(osb->sb, bit_off);
	block = ocfs2_clusters_to_blocks(osb->sb, bit_off);
	mlog(0, "Allocating %u clusters at block %u for xattr in inode %llu\n",
	trace_ocfs2_add_new_xattr_cluster((unsigned long long)block, num_bits);
	     num_bits, bit_off, (unsigned long long)OCFS2_I(inode)->ip_blkno);


	if (bucket_blkno(first) + (prev_clusters * bpc) == block &&
	if (bucket_blkno(first) + (prev_clusters * bpc) == block &&
	    (prev_clusters + num_bits) << osb->s_clustersize_bits <=
	    (prev_clusters + num_bits) << osb->s_clustersize_bits <=
@@ -5130,8 +5129,6 @@ static int ocfs2_add_new_xattr_cluster(struct inode *inode,
		 */
		 */
		v_start = prev_cpos + prev_clusters;
		v_start = prev_cpos + prev_clusters;
		*num_clusters = prev_clusters + num_bits;
		*num_clusters = prev_clusters + num_bits;
		mlog(0, "Add contiguous %u clusters to previous extent rec.\n",
		     num_bits);
	} else {
	} else {
		ret = ocfs2_adjust_xattr_cross_cluster(inode,
		ret = ocfs2_adjust_xattr_cross_cluster(inode,
						       handle,
						       handle,
@@ -5147,8 +5144,8 @@ static int ocfs2_add_new_xattr_cluster(struct inode *inode,
		}
		}
	}
	}


	mlog(0, "Insert %u clusters at block %llu for xattr at %u\n",
	trace_ocfs2_add_new_xattr_cluster_insert((unsigned long long)block,
	     num_bits, (unsigned long long)block, v_start);
						 v_start, num_bits);
	ret = ocfs2_insert_extent(handle, &et, v_start, block,
	ret = ocfs2_insert_extent(handle, &et, v_start, block,
				  num_bits, 0, ctxt->meta_ac);
				  num_bits, 0, ctxt->meta_ac);
	if (ret < 0) {
	if (ret < 0) {
@@ -5183,9 +5180,9 @@ static int ocfs2_extend_xattr_bucket(struct inode *inode,
	u64 end_blk;
	u64 end_blk;
	u16 new_bucket = le16_to_cpu(bucket_xh(first)->xh_num_buckets);
	u16 new_bucket = le16_to_cpu(bucket_xh(first)->xh_num_buckets);


	mlog(0, "extend xattr bucket in %llu, xattr extend rec starting "
	trace_ocfs2_extend_xattr_bucket((unsigned long long)target_blk,
	     "from %llu, len = %u\n", (unsigned long long)target_blk,
					(unsigned long long)bucket_blkno(first),
	     (unsigned long long)bucket_blkno(first), num_clusters);
					num_clusters, new_bucket);


	/* The extent must have room for an additional bucket */
	/* The extent must have room for an additional bucket */
	BUG_ON(new_bucket >=
	BUG_ON(new_bucket >=
@@ -5265,7 +5262,7 @@ static int ocfs2_add_new_xattr_bucket(struct inode *inode,
	/* The bucket at the front of the extent */
	/* The bucket at the front of the extent */
	struct ocfs2_xattr_bucket *first;
	struct ocfs2_xattr_bucket *first;


	mlog(0, "Add new xattr bucket starting from %llu\n",
	trace_ocfs2_add_new_xattr_bucket(
				(unsigned long long)bucket_blkno(target));
				(unsigned long long)bucket_blkno(target));


	/* The first bucket of the original extent */
	/* The first bucket of the original extent */
@@ -5382,8 +5379,8 @@ static int ocfs2_xattr_bucket_value_truncate(struct inode *inode,
	 * modified something.  We have to assume they did, and dirty
	 * modified something.  We have to assume they did, and dirty
	 * the whole bucket.  This leaves us in a consistent state.
	 * the whole bucket.  This leaves us in a consistent state.
	 */
	 */
	mlog(0, "truncate %u in xattr bucket %llu to %d bytes.\n",
	trace_ocfs2_xattr_bucket_value_truncate(
	     xe_off, (unsigned long long)bucket_blkno(bucket), len);
			(unsigned long long)bucket_blkno(bucket), xe_off, len);
	ret = ocfs2_xattr_value_truncate(inode, &vb, len, ctxt);
	ret = ocfs2_xattr_value_truncate(inode, &vb, len, ctxt);
	if (ret) {
	if (ret) {
		mlog_errno(ret);
		mlog_errno(ret);
@@ -5433,8 +5430,9 @@ static int ocfs2_rm_xattr_cluster(struct inode *inode,


	ocfs2_init_dealloc_ctxt(&dealloc);
	ocfs2_init_dealloc_ctxt(&dealloc);


	mlog(0, "rm xattr extent rec at %u len = %u, start from %llu\n",
	trace_ocfs2_rm_xattr_cluster(
	     cpos, len, (unsigned long long)blkno);
			(unsigned long long)OCFS2_I(inode)->ip_blkno,
			(unsigned long long)blkno, cpos, len);


	ocfs2_remove_xattr_clusters_from_cache(INODE_CACHE(inode), blkno,
	ocfs2_remove_xattr_clusters_from_cache(INODE_CACHE(inode), blkno,
					       len);
					       len);
@@ -5538,7 +5536,7 @@ static int ocfs2_xattr_set_entry_bucket(struct inode *inode,
	int ret;
	int ret;
	struct ocfs2_xa_loc loc;
	struct ocfs2_xa_loc loc;


	mlog(0, "Set xattr %s in xattr bucket\n", xi->xi_name);
	trace_ocfs2_xattr_set_entry_bucket(xi->xi_name);


	ocfs2_init_xattr_bucket_xa_loc(&loc, xs->bucket,
	ocfs2_init_xattr_bucket_xa_loc(&loc, xs->bucket,
				       xs->not_found ? NULL : xs->here);
				       xs->not_found ? NULL : xs->here);
@@ -5580,7 +5578,7 @@ static int ocfs2_xattr_set_entry_index_block(struct inode *inode,
{
{
	int ret;
	int ret;


	mlog(0, "Set xattr %s in xattr index block\n", xi->xi_name);
	trace_ocfs2_xattr_set_entry_index_block(xi->xi_name);


	ret = ocfs2_xattr_set_entry_bucket(inode, xi, xs, ctxt);
	ret = ocfs2_xattr_set_entry_bucket(inode, xi, xs, ctxt);
	if (!ret)
	if (!ret)
@@ -6039,7 +6037,7 @@ static int ocfs2_xattr_bucket_value_refcount(struct inode *inode,
	if (ocfs2_meta_ecc(OCFS2_SB(inode->i_sb)))
	if (ocfs2_meta_ecc(OCFS2_SB(inode->i_sb)))
		p = &refcount;
		p = &refcount;


	mlog(0, "refcount bucket %llu, count = %u\n",
	trace_ocfs2_xattr_bucket_value_refcount(
				(unsigned long long)bucket_blkno(bucket),
				(unsigned long long)bucket_blkno(bucket),
				le16_to_cpu(xh->xh_count));
				le16_to_cpu(xh->xh_count));
	for (i = 0; i < le16_to_cpu(xh->xh_count); i++) {
	for (i = 0; i < le16_to_cpu(xh->xh_count); i++) {
@@ -6337,8 +6335,8 @@ static int ocfs2_reflink_xattr_header(handle_t *handle,
	u32 clusters, cpos, p_cluster, num_clusters;
	u32 clusters, cpos, p_cluster, num_clusters;
	unsigned int ext_flags = 0;
	unsigned int ext_flags = 0;


	mlog(0, "reflink xattr in container %llu, count = %u\n",
	trace_ocfs2_reflink_xattr_header((unsigned long long)old_bh->b_blocknr,
	     (unsigned long long)old_bh->b_blocknr, le16_to_cpu(xh->xh_count));
					 le16_to_cpu(xh->xh_count));


	last = &new_xh->xh_entries[le16_to_cpu(new_xh->xh_count)];
	last = &new_xh->xh_entries[le16_to_cpu(new_xh->xh_count)];
	for (i = 0, j = 0; i < le16_to_cpu(xh->xh_count); i++, j++) {
	for (i = 0, j = 0; i < le16_to_cpu(xh->xh_count); i++, j++) {
@@ -6538,7 +6536,7 @@ static int ocfs2_create_empty_xattr_block(struct inode *inode,
		goto out;
		goto out;
	}
	}


	mlog(0, "create new xattr block for inode %llu, index = %d\n",
	trace_ocfs2_create_empty_xattr_block(
				(unsigned long long)fe_bh->b_blocknr, indexed);
				(unsigned long long)fe_bh->b_blocknr, indexed);
	ret = ocfs2_create_xattr_block(inode, fe_bh, &ctxt, indexed,
	ret = ocfs2_create_xattr_block(inode, fe_bh, &ctxt, indexed,
				       ret_bh);
				       ret_bh);
@@ -6950,8 +6948,8 @@ static int ocfs2_reflink_xattr_buckets(handle_t *handle,
		if (ret)
		if (ret)
			mlog_errno(ret);
			mlog_errno(ret);


		mlog(0, "insert new xattr extent rec start %llu len %u to %u\n",
		trace_ocfs2_reflink_xattr_buckets((unsigned long long)new_blkno,
		     (unsigned long long)new_blkno, num_clusters, reflink_cpos);
						  num_clusters, reflink_cpos);


		len -= num_clusters;
		len -= num_clusters;
		blkno += ocfs2_clusters_to_blocks(inode->i_sb, num_clusters);
		blkno += ocfs2_clusters_to_blocks(inode->i_sb, num_clusters);
@@ -6980,8 +6978,7 @@ static int ocfs2_reflink_xattr_rec(struct inode *inode,
	struct ocfs2_alloc_context *data_ac = NULL;
	struct ocfs2_alloc_context *data_ac = NULL;
	struct ocfs2_extent_tree et;
	struct ocfs2_extent_tree et;


	mlog(0, "reflink xattr buckets %llu len %u\n",
	trace_ocfs2_reflink_xattr_rec((unsigned long long)blkno, len);
	     (unsigned long long)blkno, len);


	ocfs2_init_xattr_tree_extent_tree(&et,
	ocfs2_init_xattr_tree_extent_tree(&et,
					  INODE_CACHE(args->reflink->new_inode),
					  INODE_CACHE(args->reflink->new_inode),