On Fri, May 02, 2014 at 11:40:22PM +0100, Al Viro wrote: > On Fri, May 02, 2014 at 02:18:43PM -0700, Linus Torvalds wrote: > > On Fri, May 2, 2014 at 2:08 PM, Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > > There's more of the "delete from shrink list not owned by us" in select parent. > > > Proposed patch appended. > > > > Ahh. Clearly this needs more work before I pull. > > *nod* > > Besides, I want to put Miklos' "don't bother with RCU in shrink_dentry_list()" > in there as soon as select_collect() has been dealt with. I don't think > that the currently posted patch for select_collect() is right, though - > see my reply to parent posting. Basically, I think we should treat "it's > on the shrink list already" as "increment data->found and keep going". IOW, > if (on shrink list) { > data->found++; > } else { > if (on lru list) > d_lru_del > if (refcount is zero) { > d_shrink_add > data->found++; > } > } > if (data->found) > ret = need_resched() ? D_WALK_QUIT : D_WALK_NORETRY; See vfs.git#dentry_kill-3; warning - this is completely untested and I would really like comments on spinning case there (i.e. the one where select_collect() finds some stuff already on some other shrink list and nothing with zero refcount that wouldn't be there). In that case (and it's basically "somebody else is evicting stuff in our subtree and they'd already picked everything we want evicted") I just let the loop in check_submounts_and_drop() repeat (we do have cond_resched() there). Any better suggestions would be welcome... -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html