summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@jeffreymahoney.com>2010-03-19 15:35:46 -0400
committerTyler Hicks <tyhicks@linux.vnet.ibm.com>2010-04-19 14:42:13 -0500
commit133b8f9d632cc23715c6d72d1c5ac449e054a12a (patch)
tree4559634958e6da3f7a3e2b5ae1229b9e3924d5fa /fs
parentcfce08c6bdfb20ade979284e55001ca1f100ed51 (diff)
ecryptfs: fix use with tmpfs by removing d_drop from ecryptfs_destroy_inode
Since tmpfs has no persistent storage, it pins all its dentries in memory so they have d_count=1 when other file systems would have d_count=0. ->lookup is only used to create new dentries. If the caller doesn't instantiate it, it's freed immediately at dput(). ->readdir reads directly from the dcache and depends on the dentries being hashed. When an ecryptfs mount is mounted, it associates the lower file and dentry with the ecryptfs files as they're accessed. When it's umounted and destroys all the in-memory ecryptfs inodes, it fput's the lower_files and d_drop's the lower_dentries. Commit 4981e081 added this and a d_delete in 2008 and several months later commit caeeeecf removed the d_delete. I believe the d_drop() needs to be removed as well. The d_drop effectively hides any file that has been accessed via ecryptfs from the underlying tmpfs since it depends on it being hashed for it to be accessible. I've removed the d_drop on my development node and see no ill effects with basic testing on both tmpfs and persistent storage. As a side effect, after ecryptfs d_drops the dentries on tmpfs, tmpfs BUGs on umount. This is due to the dentries being unhashed. tmpfs->kill_sb is kill_litter_super which calls d_genocide to drop the reference pinning the dentry. It skips unhashed and negative dentries, but shrink_dcache_for_umount_subtree doesn't. Since those dentries still have an elevated d_count, we get a BUG(). This patch removes the d_drop call and fixes both issues. This issue was reported at: https://bugzilla.novell.com/show_bug.cgi?id=567887 Reported-by: Árpád Bíró <biroa@demasz.hu> Signed-off-by: Jeff Mahoney <jeffm@suse.com> Cc: Dustin Kirkland <kirkland@canonical.com> Cc: stable@kernel.org Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/ecryptfs/super.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/ecryptfs/super.c b/fs/ecryptfs/super.c
index b15a43a80ab7..1a037f77aa52 100644
--- a/fs/ecryptfs/super.c
+++ b/fs/ecryptfs/super.c
@@ -85,7 +85,6 @@ static void ecryptfs_destroy_inode(struct inode *inode)
if (lower_dentry->d_inode) {
fput(inode_info->lower_file);
inode_info->lower_file = NULL;
- d_drop(lower_dentry);
}
}
ecryptfs_destroy_crypt_stat(&inode_info->crypt_stat);
p main, development code repositoryroot
summaryrefslogtreecommitdiff
path: root/connectivity/inc
AgeCommit message (Expand)AuthorFilesLines
2012-05-29-Werror=conversionStephan Bergmann1-1/+5
2012-05-29WaE: signed/unsigned etc.Caolán McNamara1-1/+1
2012-05-29switch connectivity to gbuildDavid Tardon1-39/+0
2012-05-29OSubComponent.hxx is included by a header from inc -> moveDavid Tardon2-1/+95
2012-04-16callcatcher: update listCaolán McNamara1-1/+0
2012-04-16callcatcher: update unused codeCaolán McNamara1-23/+0
2012-03-29Remove unused code in connectiviy.Santiago Martinez1-2/+0
2012-03-29remove dangling declarationCaolán McNamara1-1/+0
2012-03-29Remove unused code in sqlnodeSantiago Martinez1-2/+0
2012-03-29removed duplicate includes in connectivityTakeshi Abe2-2/+0
2012-03-21chmod -xTor Lillqvist1-0/+0
2012-03-14Enable -Wnon-virtual-dtor for GCC 4.6Stephan Bergmann6-0/+37
2012-03-08Removed unused code.Santiago Martinez1-1/+0
2012-02-21More --disable-database-connectivity work, still experimentalTor Lillqvist1-0/+2
2012-02-13Fix typos in commentsElton Chung1-1/+1
2012-01-26Code cleanup: ( () ) replaced by (())Alexander Bergmann3-12/+12
2012-01-23Fix for fdo43460 Part XLIV getLength() to isEmpty()Olivier Hallot1-1/+1
2012-01-18janitorial: typo in commentsLionel Elie Mamane1-2/+2
2011-11-27remove precompiled_xxx.hxx/cxxNorbert Thiebaud2-365/+0
2011-11-27remove include of pch header in connectivityNorbert Thiebaud2-2/+0
2011-11-27remove PCH support in dmake-moduleNorbert Thiebaud1-8/+0
2011-11-19only used with higher debug levelCaolán McNamara1-3/+2
2011-11-19callcatcher: remove some unused codeCaolán McNamara1-1/+1
2011-11-14Removed comphelper -> unotools processfactory.hxx duplication.Stephan Bergmann1-1/+0
2011-10-30factorise multiple SQL_ISRULEOR2 implementations into oneLionel Elie Mamane1-0/+7
2011-10-30wrong logic in commentLionel Elie Mamane1-1/+1
2011-10-30Typo/spelling in commentLionel Elie Mamane1-1/+1
2011-10-30Return proper UNKNOWN_RULE instead of 0 for unknown ruleLionel Elie Mamane1-1/+1
2011-10-30Introduce combined 2&3 test for SQL TokenLionel Elie Mamane1-0/+2
2011-10-30overhaul / enhance / translate / ... commentsLionel Elie Mamane1-13/+13
2011-10-04WaE: deletion of pointer to incomplete type; no destructor calledTor Lillqvist1-1/+12
2011-09-07sho