[PATCH v11 03/22] cachefiles: unbind cachefiles gracefully in on-demand mode

David Howells dhowells at redhat.com
Tue May 10 22:53:18 AEST 2022


Jeffle Xu <jefflexu at linux.alibaba.com> wrote:

> Add a refcount to avoid the deadlock in on-demand read mode. The
> on-demand read mode will pin the corresponding cachefiles object for
> each anonymous fd. The cachefiles object is unpinned when the anonymous
> fd gets closed. When the user daemon exits and the fd of
> "/dev/cachefiles" device node gets closed, it will wait for all
> cahcefiles objects getting withdrawn. Then if there's any anonymous fd
> getting closed after the fd of the device node, the user daemon will
> hang forever, waiting for all objects getting withdrawn.
> 
> To fix this, add a refcount indicating if there's any object pinned by
> anonymous fds. The cachefiles cache gets unbound and withdrawn when the
> refcount is decreased to 0. It won't change the behaviour of the
> original mode, in which case the cachefiles cache gets unbound and
> withdrawn as long as the fd of the device node gets closed.
> 
> Signed-off-by: Jeffle Xu <jefflexu at linux.alibaba.com>

Acked-by: David Howells <dhowells at redhat.com>



More information about the Linux-erofs mailing list