On 4/21/22 10:02 PM, David Howells wrote: > Jeffle Xu <jefflexu@xxxxxxxxxxxxxxxxx> wrote: > >> + struct kref unbind_pincount;/* refcount to do daemon unbind */ > > Please use refcount_t or atomic_t, especially as this isn't the refcount for > the structure. Okay, will be done in the next version. > >> - cachefiles_daemon_unbind(cache); >> - >> /* clean up the control file interface */ >> cache->cachefilesd = NULL; >> file->private_data = NULL; >> cachefiles_open = 0; > > Please call cachefiles_daemon_unbind() before the cleanup. Since the cachefiles_struct struct will be freed once the pincount is decreased to 0, "cache->cachefilesd = NULL;" needs to be done before decreasing the pincount. BTW, "cachefiles_open = 0;" indeed should be done only when pincount has been decreased to 0. -- Thanks, Jeffle