[Virtio-fs] [PATCH] fuse: refcount FORGET requests

Liu Bo bo.liu at linux.alibaba.com
Fri May 31 19:53:57 UTC 2019


On Fri, May 31, 2019 at 02:59:07PM -0400, Vivek Goyal wrote:
> On Fri, May 31, 2019 at 11:44:55AM -0700, Liu Bo wrote:
> > On Fri, May 31, 2019 at 09:22:28AM -0400, Vivek Goyal wrote:
> > > On Fri, May 31, 2019 at 05:24:03PM +0800, Peng Tao wrote:
> > > > Right now FORGET requests are not tracked and they might be sent
> > > > after DESTROY request.
> > > 
> > > How does that happen?
> > >
> > 
> > A bit more details, it is those FORGETs that remain in HIGHPRI vq,
> > sent before DESTROY but not yet processed by daemon before DESTROY
> > gets back to guest, then they get processed after the 2nd INIT.
> 
> I just posted 3 patches to make sure forget request is not sent after
> destroy. Can you give it a try and see if it solves the problem.
>

Sorry, somehow this can only be reproduced on Peng Tao's setup.

> I also pushed my changes to this branch.
> 
> https://github.com/rhvgoyal/linux/commits/flush-forget
>

The 2nd mount & INIT can only work after vq->fud is released, and

virtio_kill_sb
  fuse_kill_sb_anon
  virtio_fs_free_devs
    #release vq->fud

So it's not necessary to have DESTROY to be the very last one, it only
matters whether we wait for inflight FORGETS before setting vq->fud to
NULL.

Peng's patch seems more fit.

thanks,
-liubo




More information about the Virtio-fs mailing list