mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	xfs: convert kmem_free() for kvmalloc users to kvfree()
Start getting rid of kmem_free() by converting all the cases where memory can come from vmalloc interfaces to calling kvfree() directly. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
This commit is contained in:
		
							parent
							
								
									afdc115559
								
							
						
					
					
						commit
						4929257613
					
				
					 15 changed files with 44 additions and 44 deletions
				
			
		|  | @ -167,7 +167,7 @@ xfs_get_acl(struct inode *inode, int type, bool rcu) | |||
| 		acl = ERR_PTR(error); | ||||
| 	} | ||||
| 
 | ||||
| 	kmem_free(args.value); | ||||
| 	kvfree(args.value); | ||||
| 	return acl; | ||||
| } | ||||
| 
 | ||||
|  | @ -204,7 +204,7 @@ __xfs_set_acl(struct inode *inode, struct posix_acl *acl, int type) | |||
| 	} | ||||
| 
 | ||||
| 	error = xfs_attr_change(&args); | ||||
| 	kmem_free(args.value); | ||||
| 	kvfree(args.value); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * If the attribute didn't exist to start with that's fine. | ||||
|  |  | |||
|  | @ -108,7 +108,7 @@ STATIC void | |||
| xfs_attri_item_free( | ||||
| 	struct xfs_attri_log_item	*attrip) | ||||
| { | ||||
| 	kmem_free(attrip->attri_item.li_lv_shadow); | ||||
| 	kvfree(attrip->attri_item.li_lv_shadow); | ||||
| 	xfs_attri_log_nameval_put(attrip->attri_nameval); | ||||
| 	kmem_cache_free(xfs_attri_cache, attrip); | ||||
| } | ||||
|  | @ -251,7 +251,7 @@ static inline struct xfs_attrd_log_item *ATTRD_ITEM(struct xfs_log_item *lip) | |||
| STATIC void | ||||
| xfs_attrd_item_free(struct xfs_attrd_log_item *attrdp) | ||||
| { | ||||
| 	kmem_free(attrdp->attrd_item.li_lv_shadow); | ||||
| 	kvfree(attrdp->attrd_item.li_lv_shadow); | ||||
| 	kmem_cache_free(xfs_attrd_cache, attrdp); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -40,7 +40,7 @@ STATIC void | |||
| xfs_bui_item_free( | ||||
| 	struct xfs_bui_log_item	*buip) | ||||
| { | ||||
| 	kmem_free(buip->bui_item.li_lv_shadow); | ||||
| 	kvfree(buip->bui_item.li_lv_shadow); | ||||
| 	kmem_cache_free(xfs_bui_cache, buip); | ||||
| } | ||||
| 
 | ||||
|  | @ -201,7 +201,7 @@ xfs_bud_item_release( | |||
| 	struct xfs_bud_log_item	*budp = BUD_ITEM(lip); | ||||
| 
 | ||||
| 	xfs_bui_release(budp->bud_buip); | ||||
| 	kmem_free(budp->bud_item.li_lv_shadow); | ||||
| 	kvfree(budp->bud_item.li_lv_shadow); | ||||
| 	kmem_cache_free(xfs_bud_cache, budp); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1044,7 +1044,7 @@ xfs_buf_item_free( | |||
| 	struct xfs_buf_log_item	*bip) | ||||
| { | ||||
| 	xfs_buf_item_free_format(bip); | ||||
| 	kmem_free(bip->bli_item.li_lv_shadow); | ||||
| 	kvfree(bip->bli_item.li_lv_shadow); | ||||
| 	kmem_cache_free(xfs_buf_item_cache, bip); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -53,7 +53,7 @@ xfs_qm_dqdestroy( | |||
| { | ||||
| 	ASSERT(list_empty(&dqp->q_lru)); | ||||
| 
 | ||||
| 	kmem_free(dqp->q_logitem.qli_item.li_lv_shadow); | ||||
| 	kvfree(dqp->q_logitem.qli_item.li_lv_shadow); | ||||
| 	mutex_destroy(&dqp->q_qlock); | ||||
| 
 | ||||
| 	XFS_STATS_DEC(dqp->q_mount, xs_qm_dquot); | ||||
|  |  | |||
|  | @ -40,7 +40,7 @@ STATIC void | |||
| xfs_efi_item_free( | ||||
| 	struct xfs_efi_log_item	*efip) | ||||
| { | ||||
| 	kmem_free(efip->efi_item.li_lv_shadow); | ||||
| 	kvfree(efip->efi_item.li_lv_shadow); | ||||
| 	if (efip->efi_format.efi_nextents > XFS_EFI_MAX_FAST_EXTENTS) | ||||
| 		kmem_free(efip); | ||||
| 	else | ||||
|  | @ -229,7 +229,7 @@ static inline struct xfs_efd_log_item *EFD_ITEM(struct xfs_log_item *lip) | |||
| STATIC void | ||||
| xfs_efd_item_free(struct xfs_efd_log_item *efdp) | ||||
| { | ||||
| 	kmem_free(efdp->efd_item.li_lv_shadow); | ||||
| 	kvfree(efdp->efd_item.li_lv_shadow); | ||||
| 	if (efdp->efd_format.efd_nextents > XFS_EFD_MAX_FAST_EXTENTS) | ||||
| 		kmem_free(efdp); | ||||
| 	else | ||||
|  |  | |||
|  | @ -63,7 +63,7 @@ STATIC void | |||
| xfs_icreate_item_release( | ||||
| 	struct xfs_log_item	*lip) | ||||
| { | ||||
| 	kmem_free(ICR_ITEM(lip)->ic_item.li_lv_shadow); | ||||
| 	kvfree(ICR_ITEM(lip)->ic_item.li_lv_shadow); | ||||
| 	kmem_cache_free(xfs_icreate_cache, ICR_ITEM(lip)); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -856,7 +856,7 @@ xfs_inode_item_destroy( | |||
| 	ASSERT(iip->ili_item.li_buf == NULL); | ||||
| 
 | ||||
| 	ip->i_itemp = NULL; | ||||
| 	kmem_free(iip->ili_item.li_lv_shadow); | ||||
| 	kvfree(iip->ili_item.li_lv_shadow); | ||||
| 	kmem_cache_free(xfs_ili_cache, iip); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -493,7 +493,7 @@ xfs_attrmulti_attr_get( | |||
| 		error = -EFAULT; | ||||
| 
 | ||||
| out_kfree: | ||||
| 	kmem_free(args.value); | ||||
| 	kvfree(args.value); | ||||
| 	return error; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1662,7 +1662,7 @@ out_destroy_workqueue: | |||
| out_free_iclog: | ||||
| 	for (iclog = log->l_iclog; iclog; iclog = prev_iclog) { | ||||
| 		prev_iclog = iclog->ic_next; | ||||
| 		kmem_free(iclog->ic_data); | ||||
| 		kvfree(iclog->ic_data); | ||||
| 		kmem_free(iclog); | ||||
| 		if (prev_iclog == log->l_iclog) | ||||
| 			break; | ||||
|  | @ -2119,7 +2119,7 @@ xlog_dealloc_log( | |||
| 	iclog = log->l_iclog; | ||||
| 	for (i = 0; i < log->l_iclog_bufs; i++) { | ||||
| 		next_iclog = iclog->ic_next; | ||||
| 		kmem_free(iclog->ic_data); | ||||
| 		kvfree(iclog->ic_data); | ||||
| 		kmem_free(iclog); | ||||
| 		iclog = next_iclog; | ||||
| 	} | ||||
|  |  | |||
|  | @ -339,7 +339,7 @@ xlog_cil_alloc_shadow_bufs( | |||
| 			 * the buffer, only the log vector header and the iovec | ||||
| 			 * storage. | ||||
| 			 */ | ||||
| 			kmem_free(lip->li_lv_shadow); | ||||
| 			kvfree(lip->li_lv_shadow); | ||||
| 			lv = xlog_kvmalloc(buf_size); | ||||
| 
 | ||||
| 			memset(lv, 0, xlog_cil_iovec_space(niovecs)); | ||||
|  |  | |||
|  | @ -361,7 +361,7 @@ xlog_find_verify_cycle( | |||
| 	*new_blk = -1; | ||||
| 
 | ||||
| out: | ||||
| 	kmem_free(buffer); | ||||
| 	kvfree(buffer); | ||||
| 	return error; | ||||
| } | ||||
| 
 | ||||
|  | @ -477,7 +477,7 @@ xlog_find_verify_log_record( | |||
| 		*last_blk = i; | ||||
| 
 | ||||
| out: | ||||
| 	kmem_free(buffer); | ||||
| 	kvfree(buffer); | ||||
| 	return error; | ||||
| } | ||||
| 
 | ||||
|  | @ -731,7 +731,7 @@ validate_head: | |||
| 			goto out_free_buffer; | ||||
| 	} | ||||
| 
 | ||||
| 	kmem_free(buffer); | ||||
| 	kvfree(buffer); | ||||
| 	if (head_blk == log_bbnum) | ||||
| 		*return_head_blk = 0; | ||||
| 	else | ||||
|  | @ -745,7 +745,7 @@ validate_head: | |||
| 	return 0; | ||||
| 
 | ||||
| out_free_buffer: | ||||
| 	kmem_free(buffer); | ||||
| 	kvfree(buffer); | ||||
| 	if (error) | ||||
| 		xfs_warn(log->l_mp, "failed to find log head"); | ||||
| 	return error; | ||||
|  | @ -999,7 +999,7 @@ xlog_verify_tail( | |||
| 		"Tail block (0x%llx) overwrite detected. Updated to 0x%llx", | ||||
| 			 orig_tail, *tail_blk); | ||||
| out: | ||||
| 	kmem_free(buffer); | ||||
| 	kvfree(buffer); | ||||
| 	return error; | ||||
| } | ||||
| 
 | ||||
|  | @ -1046,7 +1046,7 @@ xlog_verify_head( | |||
| 	error = xlog_rseek_logrec_hdr(log, *head_blk, *tail_blk, | ||||
| 				      XLOG_MAX_ICLOGS, tmp_buffer, | ||||
| 				      &tmp_rhead_blk, &tmp_rhead, &tmp_wrapped); | ||||
| 	kmem_free(tmp_buffer); | ||||
| 	kvfree(tmp_buffer); | ||||
| 	if (error < 0) | ||||
| 		return error; | ||||
| 
 | ||||
|  | @ -1365,7 +1365,7 @@ xlog_find_tail( | |||
| 		error = xlog_clear_stale_blocks(log, tail_lsn); | ||||
| 
 | ||||
| done: | ||||
| 	kmem_free(buffer); | ||||
| 	kvfree(buffer); | ||||
| 
 | ||||
| 	if (error) | ||||
| 		xfs_warn(log->l_mp, "failed to locate log tail"); | ||||
|  | @ -1399,6 +1399,7 @@ xlog_find_zeroed( | |||
| 	xfs_daddr_t	new_blk, last_blk, start_blk; | ||||
| 	xfs_daddr_t     num_scan_bblks; | ||||
| 	int	        error, log_bbnum = log->l_logBBsize; | ||||
| 	int		ret = 1; | ||||
| 
 | ||||
| 	*blk_no = 0; | ||||
| 
 | ||||
|  | @ -1413,8 +1414,7 @@ xlog_find_zeroed( | |||
| 	first_cycle = xlog_get_cycle(offset); | ||||
| 	if (first_cycle == 0) {		/* completely zeroed log */ | ||||
| 		*blk_no = 0; | ||||
| 		kmem_free(buffer); | ||||
| 		return 1; | ||||
| 		goto out_free_buffer; | ||||
| 	} | ||||
| 
 | ||||
| 	/* check partially zeroed log */ | ||||
|  | @ -1424,8 +1424,8 @@ xlog_find_zeroed( | |||
| 
 | ||||
| 	last_cycle = xlog_get_cycle(offset); | ||||
| 	if (last_cycle != 0) {		/* log completely written to */ | ||||
| 		kmem_free(buffer); | ||||
| 		return 0; | ||||
| 		ret = 0; | ||||
| 		goto out_free_buffer; | ||||
| 	} | ||||
| 
 | ||||
| 	/* we have a partially zeroed log */ | ||||
|  | @ -1471,10 +1471,10 @@ xlog_find_zeroed( | |||
| 
 | ||||
| 	*blk_no = last_blk; | ||||
| out_free_buffer: | ||||
| 	kmem_free(buffer); | ||||
| 	kvfree(buffer); | ||||
| 	if (error) | ||||
| 		return error; | ||||
| 	return 1; | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  | @ -1583,7 +1583,7 @@ xlog_write_log_records( | |||
| 	} | ||||
| 
 | ||||
| out_free_buffer: | ||||
| 	kmem_free(buffer); | ||||
| 	kvfree(buffer); | ||||
| 	return error; | ||||
| } | ||||
| 
 | ||||
|  | @ -2183,7 +2183,7 @@ xlog_recover_add_to_trans( | |||
| 		"bad number of regions (%d) in inode log format", | ||||
| 				  in_f->ilf_size); | ||||
| 			ASSERT(0); | ||||
| 			kmem_free(ptr); | ||||
| 			kvfree(ptr); | ||||
| 			return -EFSCORRUPTED; | ||||
| 		} | ||||
| 
 | ||||
|  | @ -2197,7 +2197,7 @@ xlog_recover_add_to_trans( | |||
| 	"log item region count (%d) overflowed size (%d)", | ||||
| 				item->ri_cnt, item->ri_total); | ||||
| 		ASSERT(0); | ||||
| 		kmem_free(ptr); | ||||
| 		kvfree(ptr); | ||||
| 		return -EFSCORRUPTED; | ||||
| 	} | ||||
| 
 | ||||
|  | @ -2227,7 +2227,7 @@ xlog_recover_free_trans( | |||
| 		/* Free the regions in the item. */ | ||||
| 		list_del(&item->ri_list); | ||||
| 		for (i = 0; i < item->ri_cnt; i++) | ||||
| 			kmem_free(item->ri_buf[i].i_addr); | ||||
| 			kvfree(item->ri_buf[i].i_addr); | ||||
| 		/* Free the item itself */ | ||||
| 		kmem_free(item->ri_buf); | ||||
| 		kmem_free(item); | ||||
|  | @ -3024,7 +3024,7 @@ xlog_do_recovery_pass( | |||
| 
 | ||||
| 		hblks = xlog_logrec_hblks(log, rhead); | ||||
| 		if (hblks != 1) { | ||||
| 			kmem_free(hbp); | ||||
| 			kvfree(hbp); | ||||
| 			hbp = xlog_alloc_buffer(log, hblks); | ||||
| 		} | ||||
| 	} else { | ||||
|  | @ -3038,7 +3038,7 @@ xlog_do_recovery_pass( | |||
| 		return -ENOMEM; | ||||
| 	dbp = xlog_alloc_buffer(log, BTOBB(h_size)); | ||||
| 	if (!dbp) { | ||||
| 		kmem_free(hbp); | ||||
| 		kvfree(hbp); | ||||
| 		return -ENOMEM; | ||||
| 	} | ||||
| 
 | ||||
|  | @ -3199,9 +3199,9 @@ xlog_do_recovery_pass( | |||
| 	} | ||||
| 
 | ||||
|  bread_err2: | ||||
| 	kmem_free(dbp); | ||||
| 	kvfree(dbp); | ||||
|  bread_err1: | ||||
| 	kmem_free(hbp); | ||||
| 	kvfree(hbp); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Submit buffers that have been added from the last record processed, | ||||
|  |  | |||
|  | @ -36,7 +36,7 @@ STATIC void | |||
| xfs_cui_item_free( | ||||
| 	struct xfs_cui_log_item	*cuip) | ||||
| { | ||||
| 	kmem_free(cuip->cui_item.li_lv_shadow); | ||||
| 	kvfree(cuip->cui_item.li_lv_shadow); | ||||
| 	if (cuip->cui_format.cui_nextents > XFS_CUI_MAX_FAST_EXTENTS) | ||||
| 		kmem_free(cuip); | ||||
| 	else | ||||
|  | @ -207,7 +207,7 @@ xfs_cud_item_release( | |||
| 	struct xfs_cud_log_item	*cudp = CUD_ITEM(lip); | ||||
| 
 | ||||
| 	xfs_cui_release(cudp->cud_cuip); | ||||
| 	kmem_free(cudp->cud_item.li_lv_shadow); | ||||
| 	kvfree(cudp->cud_item.li_lv_shadow); | ||||
| 	kmem_cache_free(xfs_cud_cache, cudp); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -36,7 +36,7 @@ STATIC void | |||
| xfs_rui_item_free( | ||||
| 	struct xfs_rui_log_item	*ruip) | ||||
| { | ||||
| 	kmem_free(ruip->rui_item.li_lv_shadow); | ||||
| 	kvfree(ruip->rui_item.li_lv_shadow); | ||||
| 	if (ruip->rui_format.rui_nextents > XFS_RUI_MAX_FAST_EXTENTS) | ||||
| 		kmem_free(ruip); | ||||
| 	else | ||||
|  | @ -206,7 +206,7 @@ xfs_rud_item_release( | |||
| 	struct xfs_rud_log_item	*rudp = RUD_ITEM(lip); | ||||
| 
 | ||||
| 	xfs_rui_release(rudp->rud_ruip); | ||||
| 	kmem_free(rudp->rud_item.li_lv_shadow); | ||||
| 	kvfree(rudp->rud_item.li_lv_shadow); | ||||
| 	kmem_cache_free(xfs_rud_cache, rudp); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1059,10 +1059,10 @@ out_free: | |||
| 	 */ | ||||
| 	if (rsum_cache != mp->m_rsum_cache) { | ||||
| 		if (error) { | ||||
| 			kmem_free(mp->m_rsum_cache); | ||||
| 			kvfree(mp->m_rsum_cache); | ||||
| 			mp->m_rsum_cache = rsum_cache; | ||||
| 		} else { | ||||
| 			kmem_free(rsum_cache); | ||||
| 			kvfree(rsum_cache); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  | @ -1233,7 +1233,7 @@ void | |||
| xfs_rtunmount_inodes( | ||||
| 	struct xfs_mount	*mp) | ||||
| { | ||||
| 	kmem_free(mp->m_rsum_cache); | ||||
| 	kvfree(mp->m_rsum_cache); | ||||
| 	if (mp->m_rbmip) | ||||
| 		xfs_irele(mp->m_rbmip); | ||||
| 	if (mp->m_rsumip) | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Dave Chinner
						Dave Chinner