]>
Commit | Line | Data |
---|---|---|
f4b37741 | 1 | #include <sys/rwlock.h> |
f1ca4da6 | 2 | |
3 | int | |
ed61a7d0 | 4 | __rw_read_held(krwlock_t *rwlp) |
f1ca4da6 | 5 | { |
6 | BUG_ON(rwlp->rw_magic != RW_MAGIC); | |
7 | ||
ed61a7d0 | 8 | if (__rw_lock_held(rwlp) && rwlp->rw_owner == NULL) { |
f1ca4da6 | 9 | return 1; |
10 | } | |
f1b59d26 | 11 | |
f1ca4da6 | 12 | return 0; |
13 | } | |
ed61a7d0 | 14 | EXPORT_SYMBOL(__rw_read_held); |
f1ca4da6 | 15 | |
16 | int | |
ed61a7d0 | 17 | __rw_write_held(krwlock_t *rwlp) |
f1ca4da6 | 18 | { |
19 | BUG_ON(rwlp->rw_magic != RW_MAGIC); | |
20 | ||
ed61a7d0 | 21 | if (rwlp->rw_owner == current) { |
f1ca4da6 | 22 | return 1; |
23 | } | |
24 | ||
25 | return 0; | |
26 | } | |
ed61a7d0 | 27 | EXPORT_SYMBOL(__rw_write_held); |
f1ca4da6 | 28 | |
29 | int | |
ed61a7d0 | 30 | __rw_lock_held(krwlock_t *rwlp) |
f1ca4da6 | 31 | { |
32 | BUG_ON(rwlp->rw_magic != RW_MAGIC); | |
33 | ||
ed61a7d0 | 34 | #ifdef CONFIG_RWSEM_GENERIC_SPINLOCK |
35 | if (rwlp->rw_sem.activity != 0) { | |
36 | #else | |
37 | if (rwlp->rw_sem.count != 0) { | |
38 | #endif | |
f1ca4da6 | 39 | return 1; |
40 | } | |
41 | ||
42 | return 0; | |
43 | } | |
ed61a7d0 | 44 | EXPORT_SYMBOL(__rw_lock_held); |