summaryrefslogtreecommitdiffstats
path: root/fs/configfs
diff options
context:
space:
mode:
authorMark Fasheh <mark.fasheh@oracle.com>2006-10-20 14:55:54 -0700
committerMark Fasheh <mark.fasheh@oracle.com>2006-12-01 18:28:34 -0800
commit55ed16029d597622db8121270e687373b5e31722 (patch)
treea8ffbd1fe4d867f48eada13fc24b6bbfc70f245d /fs/configfs
parent1fabe1481fac9e01bf8bffa60a2307ef379aa5de (diff)
downloadlinux-55ed16029d597622db8121270e687373b5e31722.tar.gz
linux-55ed16029d597622db8121270e687373b5e31722.tar.bz2
linux-55ed16029d597622db8121270e687373b5e31722.zip
configfs: mutex_lock_nested() fix
configfs_unregister_subsystem() nests a pair of inode i_mutex acquisitions, and thus needs annotation via mutex_lock_nested(). Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/configfs')
-rw-r--r--fs/configfs/dir.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 8a3b6a1a6ad1..452cfd1e785f 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -1176,8 +1176,9 @@ void configfs_unregister_subsystem(struct configfs_subsystem *subsys)
return;
}
- mutex_lock(&configfs_sb->s_root->d_inode->i_mutex);
- mutex_lock(&dentry->d_inode->i_mutex);
+ mutex_lock_nested(&configfs_sb->s_root->d_inode->i_mutex,
+ I_MUTEX_PARENT);
+ mutex_lock_nested(&dentry->d_inode->i_mutex, I_MUTEX_CHILD);
if (configfs_detach_prep(dentry)) {
printk(KERN_ERR "configfs: Tried to unregister non-empty subsystem!\n");
}