On Mon, 29 Jan 2024 12:51:59 -0800 Linus Torvalds <torva...@linux-foundation.org> wrote:
> End result: what simple_lookup() does is say "oh, you didn't have the > file, so it's by definition a negative dentry", and thus all it does > is to do "d_add(dentry, NULL)". > > Anyway, removing this was painful. I initially thought "I'll just > remove the calls". But it all ended up cascading into "that's also > wrong". > > So now I have a patch that tries to fix this all up, and it looks like thisL: > > 1 file changed, 50 insertions(+), 219 deletions(-) Thanks, much appreciated. > > because it basically removed all the old code, and replaced it with > much simpler code. > > I'm including the patch here as an attachment, but I want to note very > clearly that this *builds* for me, and it looks a *lot* more obvious > and correct than the old code did, but I haven't tested it. AT ALL. I'm going to stare at them as I test them. Because I want to understand them. I may come back with questions. > > Also note that it depends on my previous patches, so I guess I'll > include them here again just to make it unambiguous. > > Finally - this does *not* fix up the refcounting. I still think the > SRCU stuff is completely broken. But that's another headache. But at > least now the *lookup* parts look like they DTRT wrt eventfs_mutex. > > The SRCU logic from the directory iteration parts still needs crapectomy. I think the not dropping the mutex lock lets me get rid of the SRCU. I added the SRCU when I was hitting the deadlocks with the iput code which I'm not hitting anymore. So getting rid of the SRCU shouldn't be hard. > > AGAIN: these patches (ie particularly that last one - 0004) were all > done entirely "blindly" - I've looked at the code, and fixed the bugs > and problems I've seen by pure code inspection. > > That's great, but it really means that it's all untested. It *looks* > better than the old code, but there may be some silly gotcha that I > have missed. I'll let you know. Oh, does b4 handle attachments? Because this breaks the patchwork flow. I haven't used b4 yet. Thanks, -- Steve