Re: [PATCH 08/15] knfsd: spawn kernel thread to probe callback channel

Neil Brown
2007-08-27T23:26:56Z

On Monday August 27, bfields@fieldses.org wrote:
>
> +/* Reference counting, callback cleanup, etc., all look racy as heck.
> + * And why is cb_set an atomic? */

Agreed.... so do we really want this code in mainline? is the old
code so bad that this is better?

- cb_set should not be atomic.
- This looks like a job for async-rpc rather than a kernel thread
- If you do use a thread, you at least want __module_get before
starting the thread, and module_put_and_exit to terminate the
thread.
- Can you just use 'cb_client' rather than cb_set? If you move
rpc_create into the thread, you don't need to set cb_client until
the callback is successful. Then add a 'cb_active' flag bit
so that you don't have two callbacks at the same time, and it
should be less racy..

The other 14 patches all look ok.

Thanks,
NeilBrown