c
// Set a flag indicating work is done
io_data->work_done = true;

// In the freeing logic
if (io_data->work_done) {
    kfree(io_data->kiocb);
    kfree(io_data);
}
