diff options
Diffstat (limited to 'kernel/futex.c')
-rw-r--r-- | kernel/futex.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/futex.c b/kernel/futex.c index e7a35f1039e7..a6cec3270c78 100644 --- a/kernel/futex.c +++ b/kernel/futex.c | |||
@@ -168,7 +168,9 @@ static void get_futex_key_refs(union futex_key *key) | |||
168 | 168 | ||
169 | switch (key->both.offset & (FUT_OFF_INODE|FUT_OFF_MMSHARED)) { | 169 | switch (key->both.offset & (FUT_OFF_INODE|FUT_OFF_MMSHARED)) { |
170 | case FUT_OFF_INODE: | 170 | case FUT_OFF_INODE: |
171 | atomic_inc(&key->shared.inode->i_count); | 171 | spin_lock(&key->shared.inode->i_lock); |
172 | key->shared.inode->i_count++; | ||
173 | spin_unlock(&key->shared.inode->i_lock); | ||
172 | break; | 174 | break; |
173 | case FUT_OFF_MMSHARED: | 175 | case FUT_OFF_MMSHARED: |
174 | atomic_inc(&key->private.mm->mm_count); | 176 | atomic_inc(&key->private.mm->mm_count); |