diff options
Diffstat (limited to 'fs/ocfs2/resize.c')
| -rw-r--r-- | fs/ocfs2/resize.c | 45 | 
1 files changed, 20 insertions, 25 deletions
diff --git a/fs/ocfs2/resize.c b/fs/ocfs2/resize.c index dacd553d861..d5da6f62414 100644 --- a/fs/ocfs2/resize.c +++ b/fs/ocfs2/resize.c @@ -27,7 +27,6 @@  #include <linux/fs.h>  #include <linux/types.h> -#define MLOG_MASK_PREFIX ML_DISK_ALLOC  #include <cluster/masklog.h>  #include "ocfs2.h" @@ -39,6 +38,7 @@  #include "super.h"  #include "sysfile.h"  #include "uptodate.h" +#include "ocfs2_trace.h"  #include "buffer_head_io.h"  #include "suballoc.h" @@ -53,8 +53,6 @@   */  static u16 ocfs2_calc_new_backup_super(struct inode *inode,  				       struct ocfs2_group_desc *gd, -				       int new_clusters, -				       u32 first_new_cluster,  				       u16 cl_cpg,  				       int set)  { @@ -82,7 +80,6 @@ static u16 ocfs2_calc_new_backup_super(struct inode *inode,  		backups++;  	} -	mlog_exit_void();  	return backups;  } @@ -103,8 +100,8 @@ static int ocfs2_update_last_group_and_inode(handle_t *handle,  	u16 cl_bpc = le16_to_cpu(cl->cl_bpc);  	u16 cl_cpg = le16_to_cpu(cl->cl_cpg); -	mlog_entry("(new_clusters=%d, first_new_cluster = %u)\n", -		   new_clusters, first_new_cluster); +	trace_ocfs2_update_last_group_and_inode(new_clusters, +						first_new_cluster);  	ret = ocfs2_journal_access_gd(handle, INODE_CACHE(bm_inode),  				      group_bh, OCFS2_JOURNAL_ACCESS_WRITE); @@ -128,8 +125,6 @@ static int ocfs2_update_last_group_and_inode(handle_t *handle,  				     OCFS2_FEATURE_COMPAT_BACKUP_SB)) {  		backups = ocfs2_calc_new_backup_super(bm_inode,  						     group, -						     new_clusters, -						     first_new_cluster,  						     cl_cpg, 1);  		le16_add_cpu(&group->bg_free_bits_count, -1 * backups);  	} @@ -158,7 +153,7 @@ static int ocfs2_update_last_group_and_inode(handle_t *handle,  	spin_lock(&OCFS2_I(bm_inode)->ip_lock);  	OCFS2_I(bm_inode)->ip_clusters = le32_to_cpu(fe->i_clusters); -	le64_add_cpu(&fe->i_size, new_clusters << osb->s_clustersize_bits); +	le64_add_cpu(&fe->i_size, (u64)new_clusters << osb->s_clustersize_bits);  	spin_unlock(&OCFS2_I(bm_inode)->ip_lock);  	i_size_write(bm_inode, le64_to_cpu(fe->i_size)); @@ -168,15 +163,14 @@ out_rollback:  	if (ret < 0) {  		ocfs2_calc_new_backup_super(bm_inode,  					    group, -					    new_clusters, -					    first_new_cluster,  					    cl_cpg, 0);  		le16_add_cpu(&group->bg_free_bits_count, backups);  		le16_add_cpu(&group->bg_bits, -1 * num_bits);  		le16_add_cpu(&group->bg_free_bits_count, -1 * num_bits);  	}  out: -	mlog_exit(ret); +	if (ret) +		mlog_errno(ret);  	return ret;  } @@ -281,8 +275,6 @@ int ocfs2_group_extend(struct inode * inode, int new_clusters)  	u32 first_new_cluster;  	u64 lgd_blkno; -	mlog_entry_void(); -  	if (ocfs2_is_hard_readonly(osb) || ocfs2_is_soft_readonly(osb))  		return -EROFS; @@ -342,7 +334,8 @@ int ocfs2_group_extend(struct inode * inode, int new_clusters)  		goto out_unlock;  	} -	mlog(0, "extend the last group at %llu, new clusters = %d\n", + +	trace_ocfs2_group_extend(  	     (unsigned long long)le64_to_cpu(group->bg_blkno), new_clusters);  	handle = ocfs2_start_trans(osb, OCFS2_GROUP_EXTEND_CREDITS); @@ -377,7 +370,6 @@ out_mutex:  	iput(main_bm_inode);  out: -	mlog_exit_void();  	return ret;  } @@ -471,8 +463,7 @@ int ocfs2_group_add(struct inode *inode, struct ocfs2_new_group_input *input)  	struct ocfs2_chain_list *cl;  	struct ocfs2_chain_rec *cr;  	u16 cl_bpc; - -	mlog_entry_void(); +	u64 bg_ptr;  	if (ocfs2_is_hard_readonly(osb) || ocfs2_is_soft_readonly(osb))  		return -EROFS; @@ -517,17 +508,17 @@ int ocfs2_group_add(struct inode *inode, struct ocfs2_new_group_input *input)  	ret = ocfs2_verify_group_and_input(main_bm_inode, fe, input, group_bh);  	if (ret) {  		mlog_errno(ret); -		goto out_unlock; +		goto out_free_group_bh;  	} -	mlog(0, "Add a new group  %llu in chain = %u, length = %u\n", -	     (unsigned long long)input->group, input->chain, input->clusters); +	trace_ocfs2_group_add((unsigned long long)input->group, +			       input->chain, input->clusters, input->frees);  	handle = ocfs2_start_trans(osb, OCFS2_GROUP_ADD_CREDITS);  	if (IS_ERR(handle)) {  		mlog_errno(PTR_ERR(handle));  		ret = -EINVAL; -		goto out_unlock; +		goto out_free_group_bh;  	}  	cl_bpc = le16_to_cpu(fe->id2.i_chain.cl_bpc); @@ -542,12 +533,14 @@ int ocfs2_group_add(struct inode *inode, struct ocfs2_new_group_input *input)  	}  	group = (struct ocfs2_group_desc *)group_bh->b_data; +	bg_ptr = le64_to_cpu(group->bg_next_group);  	group->bg_next_group = cr->c_blkno;  	ocfs2_journal_dirty(handle, group_bh);  	ret = ocfs2_journal_access_di(handle, INODE_CACHE(main_bm_inode),  				      main_bm_bh, OCFS2_JOURNAL_ACCESS_WRITE);  	if (ret < 0) { +		group->bg_next_group = cpu_to_le64(bg_ptr);  		mlog_errno(ret);  		goto out_commit;  	} @@ -570,7 +563,7 @@ int ocfs2_group_add(struct inode *inode, struct ocfs2_new_group_input *input)  	spin_lock(&OCFS2_I(main_bm_inode)->ip_lock);  	OCFS2_I(main_bm_inode)->ip_clusters = le32_to_cpu(fe->i_clusters); -	le64_add_cpu(&fe->i_size, input->clusters << osb->s_clustersize_bits); +	le64_add_cpu(&fe->i_size, (u64)input->clusters << osb->s_clustersize_bits);  	spin_unlock(&OCFS2_I(main_bm_inode)->ip_lock);  	i_size_write(main_bm_inode, le64_to_cpu(fe->i_size)); @@ -578,8 +571,11 @@ int ocfs2_group_add(struct inode *inode, struct ocfs2_new_group_input *input)  out_commit:  	ocfs2_commit_trans(osb, handle); -out_unlock: + +out_free_group_bh:  	brelse(group_bh); + +out_unlock:  	brelse(main_bm_bh);  	ocfs2_inode_unlock(main_bm_inode, 1); @@ -589,6 +585,5 @@ out_mutex:  	iput(main_bm_inode);  out: -	mlog_exit_void();  	return ret;  }  | 
