/* start_transaction gets us a new handle for a truncate transaction, and extend_transaction tries to extend the existing one a bit. If extend fails, we need to propagate the failure up and restart the transaction in the top-level truncate loop.  */
static handle_t* start_transaction(struct inode *inode)
/* start_transaction gets us a new handle for a truncate transaction, and extend_transaction tries to extend the existing one a bit. If extend fails, we need to propagate the failure up and restart the transaction in the top-level truncate loop.  */
static handle_t* start_transaction(struct inode *inode)
{
	handle_t *result;
	result = ext4_journal_start(inode, blocks_for_truncate(inode));
	if (!IS_ERR(result))
		return result;
	ext4_std_error(inode->i_sb, PTR_ERR(result));
	return result;
}