[PATCH] lockdep: annotate reiserfs
reiserfs seems to have another locking level layer for the i_mutex due to the xattrs-are-a-directory thing. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
36e8e57832
commit
4df46240a1
@@ -424,7 +424,7 @@ int xattr_readdir(struct file *file, filldir_t filler, void *buf)
|
|||||||
int res = -ENOTDIR;
|
int res = -ENOTDIR;
|
||||||
if (!file->f_op || !file->f_op->readdir)
|
if (!file->f_op || !file->f_op->readdir)
|
||||||
goto out;
|
goto out;
|
||||||
mutex_lock(&inode->i_mutex);
|
mutex_lock_nested(&inode->i_mutex, I_MUTEX_XATTR);
|
||||||
// down(&inode->i_zombie);
|
// down(&inode->i_zombie);
|
||||||
res = -ENOENT;
|
res = -ENOENT;
|
||||||
if (!IS_DEADDIR(inode)) {
|
if (!IS_DEADDIR(inode)) {
|
||||||
|
@@ -570,13 +570,14 @@ struct inode {
|
|||||||
* 3: quota file
|
* 3: quota file
|
||||||
*
|
*
|
||||||
* The locking order between these classes is
|
* The locking order between these classes is
|
||||||
* parent -> child -> normal -> quota
|
* parent -> child -> normal -> xattr -> quota
|
||||||
*/
|
*/
|
||||||
enum inode_i_mutex_lock_class
|
enum inode_i_mutex_lock_class
|
||||||
{
|
{
|
||||||
I_MUTEX_NORMAL,
|
I_MUTEX_NORMAL,
|
||||||
I_MUTEX_PARENT,
|
I_MUTEX_PARENT,
|
||||||
I_MUTEX_CHILD,
|
I_MUTEX_CHILD,
|
||||||
|
I_MUTEX_XATTR,
|
||||||
I_MUTEX_QUOTA
|
I_MUTEX_QUOTA
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user