Messages in this thread | | | Date | Fri, 13 Sep 2013 12:12:20 -0700 | Subject | Re: linux-next: manual merge of the akpm tree with Linus' tree | From | Linus Torvalds <> |
| |
On Thu, Sep 12, 2013 at 6:12 PM, Linus Torvalds <torvalds@linux-foundation.org> wrote: > > Damn, the code is too confused. I have to go to a highschool parent > back-to-school meeting, so I won't get to this until maybe on a plane > tomorrow. Al, can you please give this a look?
I'm on a plane. I have gogo. Here's my current TOTALLY UNTESTED patch.
It tries to consolidate the dentry LRU stuff into a few helper functions that right now have anal checking of the flags. Maybe I overdid it, but the code was really confusing, and I think we got the free dentry counts wrong, and the bits wrong too, so I tried to be extra careful.
There are several cases: - d_lru_add/del: fairly obvious - d_lru_isolate: this is when the LRU callbacks ask us to remove the entry from the list. This is different from d_lru_del() only in that it uses the raw list removal, not the lru list helper function. I'm not sure that's right, but that's what the code used to do. - d_lru_shrink_move: move from the "global" lru list to a private shrinker list - d_shrink_add/del: fairly obvious.
And then "denty_lru_add/del" that actually take the current state into account and do the right thing. Those we had before, I'm just explaining the difference from the low-level operations that have fixed "from this state to that" semantics
Hmm?
Does it work? Who knows.. But *if* it works, I think it has a higher chance of getting all the rules for bits and free object counting right.
Somebody not in a plane please double-check my low-oxygen-pressure thinking..
Linus [unhandled content-type:application/octet-stream] | |