]> git.baikalelectronics.ru Git - kernel.git/commit
vfs: Fix absolute RCU path walk failures due to uninitialized seq number
authorTim Chen <tim.c.chen@linux.intel.com>
Fri, 15 Apr 2011 18:39:29 +0000 (11:39 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 15 Apr 2011 22:28:12 +0000 (15:28 -0700)
commitd76c607fe5e34bf1fa5e523b3e921a6e1424f635
tree37bd46f1d30534d8f03a186338295b653e75886c
parent37e90e218b5497208f05b51622ee8da5a41ea5a2
vfs: Fix absolute RCU path walk failures due to uninitialized seq number

During RCU walk in path_lookupat and path_openat, the rcu lookup
frequently failed if looking up an absolute path, because when root
directory was looked up, seq number was not properly set in nameidata.

We dropped out of RCU walk in nameidata_drop_rcu due to mismatch in
directory entry's seq number.  We reverted to slow path walk that need
to take references.

With the following patch, I saw a 50% increase in an exim mail server
benchmark throughput on a 4-socket Nehalem-EX system.

Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Cc: stable@kernel.org (v2.6.38)
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/namei.c