Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98ba4031 authored by Lai Jiangshan's avatar Lai Jiangshan Committed by Jens Axboe
Browse files

relay: fix cpu offline problem



relay_open() will close allocated buffers when failed.
but if cpu offlined, some buffer will not be closed.
this patch fixed it.

and did cleanup for relay_reset() too.

Signed-off-by: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent 68aee07f
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -400,7 +400,7 @@ void relay_reset(struct rchan *chan)
	}

	mutex_lock(&relay_channels_mutex);
	for_each_online_cpu(i)
	for_each_possible_cpu(i)
		if (chan->buf[i])
			__relay_reset(chan->buf[i], 0);
	mutex_unlock(&relay_channels_mutex);
@@ -611,9 +611,8 @@ struct rchan *relay_open(const char *base_filename,
	return chan;

free_bufs:
	for_each_online_cpu(i) {
		if (!chan->buf[i])
			break;
	for_each_possible_cpu(i) {
		if (chan->buf[i])
			relay_close_buf(chan->buf[i]);
	}