Hello,

I found an issue with multiple mounts of a single ecryptfs filesystem. It can 
be demonstrated in the script below.

The encrypted filesystem crypt is mounted to the mount points user1 and user2. 
Data written to user2 is not visible in the directory user1, unless it is 
unmounted and remounted again.

I suspect the problem with the function ecryptfs_d_revalidate, which calls 
revalidate of the lower_dentry in return.

So in this example, after writing to user2, the lower filesystem has a valid 
cached dentry, but the user1 dentry is now not in sync.

I've attached a very simple quick & dirty patch, which basically disables the 
dentry cache, but resolves this problem. The performance impact seems to be low.


Cheers 

  Michael


-------------------------
# crypt contains encrypted files
# user1 and user2 contains decrypted files
mount -t ecryptfs crypt user1 ${OPTIONS} 
mount -t ecryptfs crypt user2 ${OPTIONS} 
echo "Hallo Welt" > user1/test.txt
echo "Hello World" > user2/test.txt

#Reads "Hallo Welt"
cat user1/test.txt

umount user1
mount -t ecryptfs crypt user1 ${OPTIONS} 

#Reads "Hello World"
cat user1/test.txt
--------------------------

-- 
Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten 
Browser-Versionen downloaden: http://www.gmx.net/de/go/browser

-- 
Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: 
http://www.gmx.net/de/go/multimessenger

Attachment: disable_dentry_cache.patch
Description: Binary data

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
eCryptfs-devel mailing list
eCryptfs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecryptfs-devel

Reply via email to