Jeffle Xu <jefflexu@xxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxx> Acked-by: David Howells <dhowells@xxxxxxxxxx> -- Linux-cachefs mailing list Linux-cachefs@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/linux-cachefs