On 1/25/21 4:39 PM, Linus Torvalds wrote: > On Mon, Jan 25, 2021 at 1:36 PM Jens Axboe <axboe@xxxxxxxxx> wrote: >> >> Patch 2 is the >> mostly ugly part, but not sure how we can do this any better - we need >> to ensure that any sort of revalidation or sync in ->getattr() honors >> it too. > > Yeah, that's not pretty, but I agree - it looks like this just > requires the filesystem to check whether it needs to revalidate or > not. > > But I think that patch could do better than what your patch does. Some > of them are "filesystems could decide to be more finegrained") - your > cifs patch comes to mind - but some of your "return -EAGAIN if cached" > seem to be just plain pointless. Which ones in particular? Outside of the afs one you looked a below, the rest should all be of the "need to do IO of some sort" and hence -EAGAIN is reasonable. cifs could be cleaner, but that'd require more checking in there. I just tried to keep it simple, and leave the harder work for the file system developers if they care. If not, it'll still work just like it does today, we're no worse off there than before (at least from an io_uring POV). But I can go ahead and makes eg cifs more accurate in that regard, if that's what you're objecting to. > In afs, for example, you return -EAGAIN instead of just doing the > read-seqlock thing. That's a really cheap CPU-only operation. We're > talking "cheaper than a spinlock" sequence. Yep agree on that one, that looks silly and should just go away. I've killed it. -- Jens Axboe