On 08/22/2010 11:34 AM, sf...@users.sourceforge.net wrote:
> Lou Gosselin:
>    
>> I'm speculating here: my guess is that the VMM is pointing to a struct
>> inode which has been copied up by aufs into a new inode, but the VMM
>> continues to refer to the old one. The new and old struct inode continue
>> to share i_ino #. If this is the case, would it be possible to assign
>> the old inode struct a new unique i_ino?
>>
>> The rational being that the # should be unique per device, and the old
>> struct inode is never accessed using the old # anyways. (The old struct
>> is never accessed at all outside of mmap, which continues to use it's
>> pointer).  The unique inode number would solve the current ambiguity.
>>      
> Interesting.
> It will be difficult but worth to consider.
> In remount-phase, aufs may be able to unhash the cached dentries
> (inodes). If this unhashing is done in safe, then VFS will ignore the
> unhashed dentry and next lookup will not re-use the cached one. It means
> a new dentry/inode will be created (not shared) and a new inum will be
> assigned.
> There are many places in kernel to test whether a dentry is unhashed or
> not, I am afraid we (or only I) have to check all d_unhashed() calls.
> Also it will cost high since the unhashed dentry/inode are still in
> memory but they will not be re-used.
>    
A bit foreign to me, but maybe I can try and give it a shot if I get 
time. It is not a high priority though.
It still requires aufs to output an inode list per branch.

Lou Gosselin


------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 

Reply via email to