]> git.baikalelectronics.ru Git - kernel.git/commit
dcache: get/release read lock in read_seqbegin_or_lock() & friend
authorWaiman Long <Waiman.Long@hp.com>
Thu, 12 Sep 2013 14:55:35 +0000 (10:55 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 12 Sep 2013 16:25:23 +0000 (09:25 -0700)
commitc2db643c9101a9c15a9c885956e52c5a3b60ea6e
tree25e3bccce50977e9199df4ee0445a3af9e5da708
parentccfc61ec18282d8708d4b3a889fb0a8df80aa87c
dcache: get/release read lock in read_seqbegin_or_lock() & friend

This patch modifies read_seqbegin_or_lock() and need_seqretry() to use
newly introduced read_seqlock_excl() and read_sequnlock_excl()
primitives so that they won't change the sequence number even if they
fall back to take the lock.  This is OK as no change to the protected
data structure is being made.

It will prevent one fallback to lock taking from cascading into a series
of lock taking reducing performance because of the sequence number
change.  It will also allow other sequence readers to go forward while
an exclusive reader lock is taken.

This patch also updates some of the inaccurate comments in the code.

Signed-off-by: Waiman Long <Waiman.Long@hp.com>
To: Alexander Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/dcache.c