Re: [RFC] lustre treatment of dentry->d_name

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

 



On Tue, Oct 21, 2014 at 03:46:02AM +0000, Drokin, Oleg wrote:

> > 	a) what protects ->d_name in ll_intent_file_open()?  It copies
> > ->d_name.name and ->d_name.len into local variables and proceeds to
> > use those; what's to guarantee that dentry won't get hit with d_move()
> > halfway through that?  None of the locks that would give an exclusion
> > against d_move() appear to be held…
> 
> You are right. We hit something very similar not too long ago.
> > 
> > 	b) what stabilizes *dentryp->d_name in do_statahead_enter()?

> Same as above.
> All of that would go away once we get rid of the wrapper and unroll the
> vfs ops.
> 
> Hopefully this makes at least some sense to you.

OK...  I'd gone and ripped some of that stuff out today; see if what's in
vfs.git#for-oleg makes sense...

Another question: what's wrong with d_splice_alias() or d_materialise_unique()?
I.e. why do we need ll_splice_alias()?  I have patches in local queue
(soon to show up in for-next) that merge d_splice_alias() and
d_materialise_unique(), essentially teaching the former to deal with one
case d_materialise_unique() can handle while d_splice_alias() couldn't.
If you need something not covered by those, it would be interesting to
find out if it would make sense to fold _that_ into d_splice_alias() as well...
--
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




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux