We will use this later in the series to add PI functions on "add".
Signed-off-by: Gregory Haskins <ghaskins@novell.com>
---
kernel/rtmutex.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/kernel/rtmutex.c b/kernel/rtmutex.c
index 12de859..62fdc3d 100644
--- a/kernel/rtmutex.c
+++ b/kernel/rtmutex.c
@@ -1122,6 +1122,12 @@ static void rw_check_held(struct rw_mutex *rwm)
# define rw_check_held(rwm) do { } while (0)
#endif
+static inline void
+rt_rwlock_add_reader(struct reader_lock_struct *rls, struct rw_mutex *rwm)
+{
+ list_add(&rls->list, &rwm->readers);
+}
+
/*
* The fast path does not add itself to the reader list to keep
* from needing to grab the spinlock. We need to add the owner
@@ -1163,7 +1169,7 @@ rt_rwlock_update_owner(struct rw_mutex *rwm, struct task_struct *own)
if (rls->list.prev && !list_empty(&rls->list))
return;
- list_add(&rls->list, &rwm->readers);
+ rt_rwlock_add_reader(rls, rwm);
/* change to reader, so no one else updates too */
rt_rwlock_set_owner(rwm, RT_RW_READER, RT_RWLOCK_CHECK);
@@ -1197,7 +1203,7 @@ static int try_to_take_rw_read(struct rw_mutex *rwm, int mtx)
* it hasn't been added to the link list yet.
*/
if (!rls->list.prev || list_empty(&rls->list))
- list_add(&rls->list, &rwm->readers);
+ rt_rwlock_add_reader(rls, rwm);
rt_rwlock_set_owner(rwm, RT_RW_READER, 0);
rls->count++;
incr = 0;
@@ -1276,7 +1282,7 @@ static int try_to_take_rw_read(struct rw_mutex *rwm, int mtx)
rls->lock = rwm;
rls->count = 1;
WARN_ON(rls->list.prev && !list_empty(&rls->list));
- list_add(&rls->list, &rwm->readers);
+ rt_rwlock_add_reader(rls, rwm);
} else
WARN_ON_ONCE(1);
spin_unlock(¤t->pi_lock);
@@ -1473,7 +1479,7 @@ __rt_read_fasttrylock(struct rw_mutex *rwm)
spin_lock(&mutex->wait_lock);
rls = ¤t->owned_read_locks[reader_count];
if (!rls->list.prev || list_empty(&rls->list))
- list_add(&rls->list, &rwm->readers);
+ rt_rwlock_add_reader(rlw, rwm);
spin_unlock(&mutex->wait_lock);
} else
spin_unlock(¤t->pi_lock);
@@ -2083,7 +2089,7 @@ rt_mutex_downgrade_write(struct rw_mutex *rwm)
/* Set us up for multiple readers or conflicts */
- list_add(&rls->list, &rwm->readers);
+ rt_rwlock_add_reader(rls, rwm);
rwm->owner = RT_RW_READER;
/*
--
| Greg Kroah-Hartman | [PATCH 005/196] Chinese: add translation of SubmittingDrivers |
| Nick Piggin | [patch] my mmu notifier sample driver |
| Sean | Re: [AppArmor 39/45] AppArmor: Profile loading and manipulation, pathname matching |
| Arjan van de Ven | [Patch v2] Make PCI extended config space (MMCONFIG) a driver opt-in |
git: | |
| Antonio Almeida | HTB accuracy for high speed |
| Gerrit Renker | [PATCH 0/37] dccp: Feature negotiation - last call for comments |
| Jens Axboe | Re: [BUG] New Kernel Bugs |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
