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

From: Alex Elder <[email-masked]>
Date: Tue, 10 Jan 2012 18:10:22 -0800

On Wed, 2012-01-11 at 01:31 +0000, Al Viro wrote:
> On Wed, Jan 11, 2012 at 12:27:44PM +1100, Stephen Rothwell wrote:
> > Hi Sage,
> > 
> > Today's linux-next merge of the ceph tree got a conflict in
> > fs/ceph/super.c between commit 3c5184ef1216 ("ceph: d_alloc_root() may
> > fail") from Linus' tree and commit 26d913cdd955 ("ceph: always initialize
> > the dentry in open_root_dentry()") from the ceph tree.
> > 
> > I fixed it up (see below) and can carry the fix as necessary.
> 
> Ahem...  
> 
> >  +			root = d_obtain_alias(inode);
> >  +		}
> > + 		ceph_init_dentry(root);
> 
> What will happen if dentry returned by d_obtain_alias() had already existed?

I had *exactly* the same reaction, and maybe the code would
have been a little less surprising if the null check were
in the caller (here)  rather than in ceph_init_dentry().

					-Alex