aboutsummaryrefslogtreecommitdiffstats
path: root/lib/spinlock_debug.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2010-05-01 10:23:13 -0400
committerThomas Gleixner <tglx@linutronix.de>2010-05-02 14:13:54 -0400
commit360c3e7265901a0231f40121a6ff3fc78172334f (patch)
tree4ea61d260337a5955480be18597ef92732ba39ee /lib/spinlock_debug.c
parent0dc6b732a4543ecf6be4251fa1615bfca49ebd1a (diff)
fs: Prevent dput race
dput() drops dentry->d_lock when it fails to lock inode->i_lock or parent->d_lock. dentry->d_count is 0 at this point so dentry kann be killed and freed by someone else. This leaves dput with a stale pointer in the retry code which results in interesting kernel crashes. Prevent this by incrementing dentry->d_count before dropping the lock. Go back to start after dropping the lock so d_count is decremented again. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'lib/spinlock_debug.c')
0 files changed, 0 insertions, 0 deletions