On Fri, 29 Aug 2025 at 09:33, Steven Rostedt <rost...@goodmis.org> wrote: > > I just realized that I'm using the rhashtable as an "does this hash exist".
The question is still *why*? Just use the hash. Don't do anything to it. Don't mess with it. > I could get the content of the item that matches the hash and compare it to > what was used to create the hash in the first place. If there's a reference > counter or some other identifier I could use to know that the passed in vma > is the same as what is in the hash table, I can use this to know if the > hash needs to be updated with the new information or not. No such information exists. Sure, we have reference counts for everything: to a very close approximation, any memory allocation with external visibility has to be reference counted for correctness. But those reference counts are never going to tell you whether they are the *same* object that they were last time you looked at it, or just a new allocation that happens to have the same pointer. Don't even *TRY*. You still haven't explained why you would care. Your patch that used inode numbers didn't care. It just used the numbers. SO JUST USE THE NUMBERS, for chissake! Don't make them mean anything. Don't try to think they mean something. The *reason* I htink hashing 'struct file *' is better than the alternative is exactly that it *cannot* mean anything. It will get re-used quite actively, even when nobody actually changes any of the files. So you are forced to deal with this correctly, even though you seem to be fighting dealing with it correctly tooth and nail. And at no point have you explained why you can't just treat it as meaningless numbers. The patch that started this all did exactly that. It just used the *wrong* numbers, and I pointed out why they were wrong, and why you shouldn't use those numbers. Linus