diff options
Diffstat (limited to 'kernel/relay.c')
| -rw-r--r-- | kernel/relay.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/kernel/relay.c b/kernel/relay.c index 8d13a7855c08..09ac2008f77b 100644 --- a/kernel/relay.c +++ b/kernel/relay.c | |||
| @@ -400,7 +400,7 @@ void relay_reset(struct rchan *chan) | |||
| 400 | } | 400 | } |
| 401 | 401 | ||
| 402 | mutex_lock(&relay_channels_mutex); | 402 | mutex_lock(&relay_channels_mutex); |
| 403 | for_each_online_cpu(i) | 403 | for_each_possible_cpu(i) |
| 404 | if (chan->buf[i]) | 404 | if (chan->buf[i]) |
| 405 | __relay_reset(chan->buf[i], 0); | 405 | __relay_reset(chan->buf[i], 0); |
| 406 | mutex_unlock(&relay_channels_mutex); | 406 | mutex_unlock(&relay_channels_mutex); |
| @@ -611,10 +611,9 @@ struct rchan *relay_open(const char *base_filename, | |||
| 611 | return chan; | 611 | return chan; |
| 612 | 612 | ||
| 613 | free_bufs: | 613 | free_bufs: |
| 614 | for_each_online_cpu(i) { | 614 | for_each_possible_cpu(i) { |
| 615 | if (!chan->buf[i]) | 615 | if (chan->buf[i]) |
| 616 | break; | 616 | relay_close_buf(chan->buf[i]); |
| 617 | relay_close_buf(chan->buf[i]); | ||
| 618 | } | 617 | } |
| 619 | 618 | ||
| 620 | kref_put(&chan->kref, relay_destroy_channel); | 619 | kref_put(&chan->kref, relay_destroy_channel); |
| @@ -1318,12 +1317,9 @@ static ssize_t relay_file_splice_read(struct file *in, | |||
| 1318 | if (ret < 0) | 1317 | if (ret < 0) |
| 1319 | break; | 1318 | break; |
| 1320 | else if (!ret) { | 1319 | else if (!ret) { |
| 1321 | if (spliced) | 1320 | if (flags & SPLICE_F_NONBLOCK) |
| 1322 | break; | ||
| 1323 | if (flags & SPLICE_F_NONBLOCK) { | ||
| 1324 | ret = -EAGAIN; | 1321 | ret = -EAGAIN; |
| 1325 | break; | 1322 | break; |
| 1326 | } | ||
| 1327 | } | 1323 | } |
| 1328 | 1324 | ||
| 1329 | *ppos += ret; | 1325 | *ppos += ret; |
