On Tue, Sep 24, 2019 at 11:26:28AM -0400, Josef Bacik wrote: > On Tue, Sep 24, 2019 at 04:11:07PM +0100, Al Viro wrote: > > On Tue, Sep 24, 2019 at 11:01:45AM -0400, Josef Bacik wrote: > > > > > Sorry I mis-read the code a little bit. This is purely for the subvolume link > > > directories. We haven't wandered down into this directory yet. If the > > > subvolume is being deleted and we still have the fake directory entry for it > > > then we just populate it with this dummy inode and then we can't lookup anything > > > underneath it. Thanks, > > > > Umm... OK, I guess my question would be better stated a bit differently: we > > have a directory inode, with btrfs_lookup() for lookups in it *and* with > > dcache_readdir() called when you try to do getdents(2) on that thing. > > How does that work? > > Sorry I hadn't read through the context. We won't end up with things under this > directory. The lookup will try to look up into the subvolume, see that it's > empty, and just return nothing. There should never be any entries that end up > under this dummy entry. Thanks, Er... Then why not use simple_lookup() in there? Confused...