Subject: Re: linux-next: manual merge of the akpm tree with Linus' tree

From: Al Viro <[email-masked]>
Date: Wed, 11 Sep 2013 00:53:49 +0100

On Tue, Sep 10, 2013 at 04:37:19PM -0700, Linus Torvalds wrote:
> On Tue, Sep 10, 2013 at 3:59 PM, Al Viro <[email-masked]> wrote:
> >
> > It's not that bad, actually; I think the variant I've pushed right now
> > (vfs.git#for-next, head at f5e1dd34561e0fb06400b378d595198918833021) should
> > be doing the right thing.  It ought to cover everything in your branch
> > in -next from "fs: bump inode and dentry counters to long" on to the
> > end of queue.
> 
> >From a quick look, this looks pretty broken:
> 
>     if (list_lru_add(&dentry->d_sb->s_dentry_lru, &dentry->d_lru))
>         this_cpu_inc(nr_dentry_unused);
>     dentry->d_flags |= DCACHE_LRU_LIST;
> 
> because if that list_lru_add() can fail, then we shouldn't set the
> DCACHE_LRU_LIST bit either.

list_lru_add() can fail if it's already on the list; leaving the counter
alone should've been conditional on that, setting the flag - no.  Said
that, it probably should be WARN_ON(!...); this_cpu_inc(); ... |= ...;