Bug 414981
Summary: | [RHEL5.2] Kernel panic upon unmounting ecryptfs overlay | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 5 | Reporter: | Jarod Wilson <jarod> |
Component: | kernel | Assignee: | Eric Sandeen <esandeen> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Martin Jenner <mjenner> |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 5.2 | CC: | dzickus, karsten, lwang, mhalcrow |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2008-08-04 20:01:43 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 448732 |
Description
Jarod Wilson
2007-12-06 22:33:38 UTC
Thus far, I've been unable to reproduce this one, but will keep an eye out for it... Based on the size of the function (0x83) looks like this is prior to the patch I did which shows actual mount options... and we know that we had some bad pointer manipulation when bad mount options were given, so this may just be random corruption. The real problem here is likely: BUG: Dentry ffff810019a20df8{i=7ff37,n=twofish.txt} still in use (-1) [unmount of ecryptfs ecryptfs] the "-1" is atomic_read(&dentry->d_count). Hm, refcounting problems? and then it looks like the old show_options tried to manipulate some of the dentries, and sb->s_root was null... hm, interesting, it was the hald thread that oopsed. But after the above BUG() message, I think all bets are off. I'd like to know why the dentry was in use. If we don't see it again I'll close it and chalk it up to the memory corruption problems we fixed, but I'll leave it open a while to see if we see it again. Ah... any chance you had a readonly mount underneath, or some other file open failure? As phro pointed out: Index: ecryptfs-kernel-2.6.24-rc3/main.c =================================================================== --- ecryptfs-kernel-2.6.24-rc3.orig/main.c +++ ecryptfs-kernel-2.6.24-rc3/main.c @@ -138,11 +138,14 @@ int ecryptfs_init_persistent_file(struct inode_info->lower_file = dentry_open(lower_dentry, lower_mnt, (O_RDWR | O_LARGEFILE)); - if (IS_ERR(inode_info->lower_file)) + if (IS_ERR(inode_info->lower_file)) { + dget(lower_dentry); + mntget(lower_mnt); inode_info->lower_file = dentry_open(lower_dentry, lower_mnt, (O_RDONLY | O_LARGEFILE)); + } if (IS_ERR(inode_info->lower_file)) { printk(KERN_ERR "Error opening lower persistent file " "for lower_dentry [0x%p] and lower_mnt [0x%p]\n", this might explain the -1 refcount. I'm not able to reproduce this so far using the -88 kernel. We've never seen this again, and I think that the patch as shown in comment #3 (which is in the rhel5.2 and upstream code, now) is the likely (fixed) culprit. |