diff
+ 	bool to_free_freed = false;
 	if (io_data->read) {
 		kfree(io_data->to_free);
+ 		to_free_freed = true;
 	}
+ 	if (!to_free_freed)
 		ffs_free_buffer(io_data);
 	kfree(io_data);
