aboutsummaryrefslogtreecommitdiff
path: root/fs/inode.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-13 17:00:50 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-13 17:00:50 -0700
commitcd7945397d4784318668fbbbfa99e4c6fcf30b3b (patch)
tree16dc1b5d84dea20d062153b30a70ee9ec85f43ba /fs/inode.c
parent2f1c2b8155865ba3c2909f468ac8be60f52ed56b (diff)
parent310fa7a36722017088af123043ebd231cd6bc559 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs fixes from Al Viro: "A bunch of assorted fixes; Jan's freezing stuff still _not_ in there and neither is mm fun ;-/" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: restore smp_mb() in unlock_new_inode() vfs: fix return value from do_last() vfs: fix double put after complete_walk() udf: Fix deadlock in udf_release_file() vfs: Correctly set the dir i_mutex lockdep class
Diffstat (limited to 'fs/inode.c')
-rw-r--r--fs/inode.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/inode.c b/fs/inode.c
index d3ebdbe723d..83ab215baab 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -938,8 +938,7 @@ void lockdep_annotate_inode_mutex_key(struct inode *inode)
struct file_system_type *type = inode->i_sb->s_type;
/* Set new key only if filesystem hasn't already changed it */
- if (!lockdep_match_class(&inode->i_mutex,
- &type->i_mutex_key)) {
+ if (lockdep_match_class(&inode->i_mutex, &type->i_mutex_key)) {
/*
* ensure nobody is actually holding i_mutex
*/
@@ -966,6 +965,7 @@ void unlock_new_inode(struct inode *inode)
spin_lock(&inode->i_lock);
WARN_ON(!(inode->i_state & I_NEW));
inode->i_state &= ~I_NEW;
+ smp_mb();
wake_up_bit(&inode->i_state, __I_NEW);
spin_unlock(&inode->i_lock);
}