| .. | .. | 
|---|
| 426 | 426 |  	mutex_unlock(&dir_ui->ui_mutex); | 
|---|
| 427 | 427 |   | 
|---|
| 428 | 428 |  	ubifs_release_budget(c, &req); | 
|---|
 | 429 | +	fscrypt_free_filename(&nm);  | 
|---|
| 429 | 430 |   | 
|---|
| 430 | 431 |  	return 0; | 
|---|
| 431 | 432 |   | 
|---|
| .. | .. | 
|---|
| 1118 | 1119 |  	int err, sz_change, len = strlen(symname); | 
|---|
| 1119 | 1120 |  	struct fscrypt_str disk_link; | 
|---|
| 1120 | 1121 |  	struct ubifs_budget_req req = { .new_ino = 1, .new_dent = 1, | 
|---|
| 1121 |  | -					.new_ino_d = ALIGN(len, 8),  | 
|---|
| 1122 | 1122 |  					.dirtied_ino = 1 }; | 
|---|
| 1123 | 1123 |  	struct fscrypt_name nm; | 
|---|
| 1124 | 1124 |   | 
|---|
| .. | .. | 
|---|
| 1134 | 1134 |  	 * Budget request settings: new inode, new direntry and changing parent | 
|---|
| 1135 | 1135 |  	 * directory inode. | 
|---|
| 1136 | 1136 |  	 */ | 
|---|
 | 1137 | +	req.new_ino_d = ALIGN(disk_link.len - 1, 8);  | 
|---|
| 1137 | 1138 |  	err = ubifs_budget_space(c, &req); | 
|---|
| 1138 | 1139 |  	if (err) | 
|---|
| 1139 | 1140 |  		return err; | 
|---|
| .. | .. | 
|---|
| 1289 | 1290 |  	if (unlink) { | 
|---|
| 1290 | 1291 |  		ubifs_assert(c, inode_is_locked(new_inode)); | 
|---|
| 1291 | 1292 |   | 
|---|
 | 1293 | +		/* Budget for old inode's data when its nlink > 1. */  | 
|---|
 | 1294 | +		req.dirtied_ino_d = ALIGN(ubifs_inode(new_inode)->data_len, 8);  | 
|---|
| 1292 | 1295 |  		err = ubifs_purge_xattrs(new_inode); | 
|---|
| 1293 | 1296 |  		if (err) | 
|---|
| 1294 | 1297 |  			return err; | 
|---|
| .. | .. | 
|---|
| 1531 | 1534 |  		return err; | 
|---|
| 1532 | 1535 |  	} | 
|---|
| 1533 | 1536 |   | 
|---|
 | 1537 | +	err = ubifs_budget_space(c, &req);  | 
|---|
 | 1538 | +	if (err)  | 
|---|
 | 1539 | +		goto out;  | 
|---|
 | 1540 | +  | 
|---|
| 1534 | 1541 |  	lock_4_inodes(old_dir, new_dir, NULL, NULL); | 
|---|
| 1535 | 1542 |   | 
|---|
| 1536 | 1543 |  	time = current_time(old_dir); | 
|---|
| .. | .. | 
|---|
| 1556 | 1563 |  	unlock_4_inodes(old_dir, new_dir, NULL, NULL); | 
|---|
| 1557 | 1564 |  	ubifs_release_budget(c, &req); | 
|---|
| 1558 | 1565 |   | 
|---|
 | 1566 | +out:  | 
|---|
| 1559 | 1567 |  	fscrypt_free_filename(&fst_nm); | 
|---|
| 1560 | 1568 |  	fscrypt_free_filename(&snd_nm); | 
|---|
| 1561 | 1569 |  	return err; | 
|---|