Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 622976
Collapse All | Expand All

(-)a/include/sys/rwlock.h (-17 / +2 lines)
Lines 50-83 typedef struct { Link Here
50
static inline void
50
static inline void
51
spl_rw_set_owner(krwlock_t *rwp)
51
spl_rw_set_owner(krwlock_t *rwp)
52
{
52
{
53
        unsigned long flags;
54
55
        spl_rwsem_lock_irqsave(&SEM(rwp)->wait_lock, flags);
56
        rwp->rw_owner = current;
53
        rwp->rw_owner = current;
57
        spl_rwsem_unlock_irqrestore(&SEM(rwp)->wait_lock, flags);
58
}
54
}
59
55
60
static inline void
56
static inline void
61
spl_rw_clear_owner(krwlock_t *rwp)
57
spl_rw_clear_owner(krwlock_t *rwp)
62
{
58
{
63
        unsigned long flags;
64
65
        spl_rwsem_lock_irqsave(&SEM(rwp)->wait_lock, flags);
66
        rwp->rw_owner = NULL;
59
        rwp->rw_owner = NULL;
67
        spl_rwsem_unlock_irqrestore(&SEM(rwp)->wait_lock, flags);
68
}
60
}
69
61
70
static inline kthread_t *
62
static inline kthread_t *
71
rw_owner(krwlock_t *rwp)
63
rw_owner(krwlock_t *rwp)
72
{
64
{
73
        unsigned long flags;
65
        return rwp->rw_owner;
74
        kthread_t *owner;
75
76
        spl_rwsem_lock_irqsave(&SEM(rwp)->wait_lock, flags);
77
        owner = rwp->rw_owner;
78
        spl_rwsem_unlock_irqrestore(&SEM(rwp)->wait_lock, flags);
79
80
        return owner;
81
}
66
}
82
67
83
static inline int
68
static inline int
Lines 94-100 RW_READ_HELD(krwlock_t *rwp) Link Here
94
static inline int
79
static inline int
95
RW_WRITE_HELD(krwlock_t *rwp)
80
RW_WRITE_HELD(krwlock_t *rwp)
96
{
81
{
97
	return (spl_rwsem_is_locked(SEM(rwp)) && rw_owner(rwp) == current);
82
	return (rw_owner(rwp) == current);
98
}
83
}
99
84
100
static inline int
85
static inline int

Return to bug 622976