Hi Waiman, On Fri, Feb 15, 2019 at 03:50:02PM -0500, Waiman Long wrote: > Moves all the owner setting code closer to the rwsem-xadd fast paths > directly within rwsem.h file. > > For __down_read() and __down_read_killable(), it is assumed that > rwsem will be marked as reader-owned when the functions return. That > is currently true except in the transient case that the waiter queue > just becomes empty. So a rwsem_set_reader_owned() call is added for > this case.
Sorry, but I'm having a really hard time understanding the paragraph above. You make it sound like you're fixing a bug here, but that doesn't appear to be the case. Please can you elaborate? > The __rwsem_set_reader_owned() call in __rwsem_mark_wake() > is now necessary. > > Signed-off-by: Waiman Long <long...@redhat.com> > --- > kernel/locking/rwsem-xadd.c | 6 +++--- > kernel/locking/rwsem.c | 19 ++----------------- > kernel/locking/rwsem.h | 17 +++++++++++++++-- > 3 files changed, 20 insertions(+), 22 deletions(-) I personally find the existing code easier to read, but I don't know if that's just because I'm used to it... Will