Re: [PATCH] ceph: trivial comment fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 16 Jan 2014, J. Bruce Fields wrote:
> On Thu, Jan 16, 2014 at 04:03:38PM -0800, Sage Weil wrote:
> > On Thu, 16 Jan 2014, J. Bruce Fields wrote:
> > > From: "J. Bruce Fields" <bfields@xxxxxxxxxx>
> > > 
> > > "disconnected" is too easily confused with "DCACHE_DISCONNECTED".  I
> > > think "unhashed" is the more precise term here.
> > 
> > Good point.  Applied, thanks!
> 
> Thanks!  While I'm looking, there's another d_find_alias() caller in
> build_inode_path.  What's that?  (Do the mds protocol messages actually
> use full paths?)  And will this break if you get a DCACHE_DISCONNECTED
> or an unhashed alias?

They build a path relative to the first non-snapped parent, which in most 
cases is either no path at all (just an ino) or a single path segment.  
The exception is if you are inside a snapshotted directory (e.g. 
a/b/.snap/mysnap/c/d), in which case it can be deeper.  In any case, I 
think the only problem is if you have a disconnected dentry from an old 
nfs filename for an inode within a snapshot.  There may be some issues 
there (nfs reexport + snaps isn't currently part of the test suite), but 
in general I don't think there is any issue with disconnected dentries.

sage


> 
> --b.
> 
> > sage
> > 
> > 
> > > 
> > > Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
> > > ---
> > >  fs/ceph/caps.c |    6 +++---
> > >  1 file changed, 3 insertions(+), 3 deletions(-)
> > > 
> > > Just ran across this while wondering what d_find_alias callers do....
> > > 
> > > diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
> > > index 3c0a4bd..697f9d7 100644
> > > --- a/fs/ceph/caps.c
> > > +++ b/fs/ceph/caps.c
> > > @@ -2350,11 +2350,11 @@ static void invalidate_aliases(struct inode *inode)
> > >  	d_prune_aliases(inode);
> > >  	/*
> > >  	 * For non-directory inode, d_find_alias() only returns
> > > -	 * connected dentry. After calling d_invalidate(), the
> > > -	 * dentry become disconnected.
> > > +	 * hashed dentry. After calling d_invalidate(), the
> > > +	 * dentry becomes unhashed.
> > >  	 *
> > >  	 * For directory inode, d_find_alias() can return
> > > -	 * disconnected dentry. But directory inode should have
> > > +	 * unhashed dentry. But directory inode should have
> > >  	 * one alias at most.
> > >  	 */
> > >  	while ((dn = d_find_alias(inode))) {
> > > -- 
> > > 1.7.9.5
> > > 
> > > 
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux