diff --git a/[refs] b/[refs] index 0c82209253be..cfc7ac3274ce 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 94bebf4d1b8e7719f0f3944c037a21cfd99a4af7 +refs/heads/master: d3fc373ac5061cab7a654502b942e7d00e77f733 diff --git a/trunk/fs/sysfs/inode.c b/trunk/fs/sysfs/inode.c index 1a81ebce20e9..dbd820f9aeed 100644 --- a/trunk/fs/sysfs/inode.c +++ b/trunk/fs/sysfs/inode.c @@ -215,7 +215,7 @@ static inline void orphan_all_buffers(struct inode *node) struct sysfs_buffer_collection *set = node->i_private; struct sysfs_buffer *buf; - mutex_lock(&node->i_mutex); + mutex_lock_nested(&node->i_mutex, I_MUTEX_CHILD); if (node->i_private) { list_for_each_entry(buf, &set->associates, associates) { down(&buf->sem); @@ -272,7 +272,7 @@ int sysfs_hash_and_remove(struct dentry * dir, const char * name) return -ENOENT; parent_sd = dir->d_fsdata; - mutex_lock(&dir->d_inode->i_mutex); + mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT); list_for_each_entry(sd, &parent_sd->s_children, s_sibling) { if (!sd->s_element) continue;