{"push_id":2642236166,"size":1,"distinct_size":1,"ref":"refs/heads/o8.1","head":"59f09aefde52ef0a89684d087374690878cb77f2","before":"81945b5cf2738e2aa37233ff5a598beb24273694","commits":[{"sha":"59f09aefde52ef0a89684d087374690878cb77f2","author":{"name":"Al Viro","email":"de609eb4d5d70b1d38ec6642adbfc33a2781f63c@zeniv.linux.org.uk"},"message":"lock_parent() needs to recheck if dentry got __dentry_kill'ed under it\n\ncommit 3b821409632ab778d46e807516b457dfa72736ed upstream.\n\nIn case when dentry passed to lock_parent() is protected from freeing only\nby the fact that it's on a shrink list and trylock of parent fails, we\ncould get hit by __dentry_kill() (and subsequent dentry_kill(parent))\nbetween unlocking dentry and locking presumed parent.  We need to recheck\nthat dentry is alive once we lock both it and parent *and* postpone\nrcu_read_unlock() until after that point.  Otherwise we could return\na pointer to struct dentry that already is rcu-scheduled for freeing, with\n->d_lock held on it; caller's subsequent attempt to unlock it can end\nup with memory corruption.\n\nCc: stable@vger.kernel.org # 3.12+, counting backports\nSigned-off-by: Al Viro <viro@zeniv.linux.org.uk>\nSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>","distinct":true,"url":"https://api.github.com/repos/Nithin552/kernel_zuk_8996/commits/59f09aefde52ef0a89684d087374690878cb77f2"}]}
{"actor":{"display_login":"Nithin552"}}