diff options
Diffstat (limited to 'kernel/cpuset.c')
-rw-r--r-- | kernel/cpuset.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 4c49188cc49b..824b1c01f410 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c | |||
@@ -981,10 +981,10 @@ static int update_nodemask(struct cpuset *cs, char *buf) | |||
981 | mmarray = kmalloc(ntasks * sizeof(*mmarray), GFP_KERNEL); | 981 | mmarray = kmalloc(ntasks * sizeof(*mmarray), GFP_KERNEL); |
982 | if (!mmarray) | 982 | if (!mmarray) |
983 | goto done; | 983 | goto done; |
984 | write_lock_irq(&tasklist_lock); /* block fork */ | 984 | read_lock(&tasklist_lock); /* block fork */ |
985 | if (atomic_read(&cs->count) <= ntasks) | 985 | if (atomic_read(&cs->count) <= ntasks) |
986 | break; /* got enough */ | 986 | break; /* got enough */ |
987 | write_unlock_irq(&tasklist_lock); /* try again */ | 987 | read_unlock(&tasklist_lock); /* try again */ |
988 | kfree(mmarray); | 988 | kfree(mmarray); |
989 | } | 989 | } |
990 | 990 | ||
@@ -1006,7 +1006,7 @@ static int update_nodemask(struct cpuset *cs, char *buf) | |||
1006 | continue; | 1006 | continue; |
1007 | mmarray[n++] = mm; | 1007 | mmarray[n++] = mm; |
1008 | } while_each_thread(g, p); | 1008 | } while_each_thread(g, p); |
1009 | write_unlock_irq(&tasklist_lock); | 1009 | read_unlock(&tasklist_lock); |
1010 | 1010 | ||
1011 | /* | 1011 | /* |
1012 | * Now that we've dropped the tasklist spinlock, we can | 1012 | * Now that we've dropped the tasklist spinlock, we can |