Page MenuHomeFreeBSD

D27498.id80455.diff
No OneTemporary

D27498.id80455.diff

Index: head/sys/kern/kern_cpuset.c
===================================================================
--- head/sys/kern/kern_cpuset.c
+++ head/sys/kern/kern_cpuset.c
@@ -207,9 +207,13 @@
{
cpusetid_t id;
- if (refcount_release(&set->cs_ref) == 0)
+ if (refcount_release_if_not_last(&set->cs_ref))
return;
mtx_lock_spin(&cpuset_lock);
+ if (!refcount_release(&set->cs_ref)) {
+ mtx_unlock_spin(&cpuset_lock);
+ return;
+ }
LIST_REMOVE(set, cs_siblings);
id = set->cs_id;
if (id != CPUSET_INVALID)
@@ -229,9 +233,13 @@
cpuset_rel_defer(struct setlist *head, struct cpuset *set)
{
- if (refcount_release(&set->cs_ref) == 0)
+ if (refcount_release_if_not_last(&set->cs_ref))
return;
mtx_lock_spin(&cpuset_lock);
+ if (!refcount_release(&set->cs_ref)) {
+ mtx_unlock_spin(&cpuset_lock);
+ return;
+ }
LIST_REMOVE(set, cs_siblings);
if (set->cs_id != CPUSET_INVALID)
LIST_REMOVE(set, cs_link);

File Metadata

Mime Type
text/plain
Expires
Fri, May 22, 8:29 PM (17 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33430049
Default Alt Text
D27498.id80455.diff (925 B)

Event Timeline