Lines Matching refs:stream

47 	void *stream;
53 struct squashfs_stream *stream)
55 mutex_lock(&stream->mutex);
56 list_add(&decomp_strm->list, &stream->strm_list);
57 mutex_unlock(&stream->mutex);
58 wake_up(&stream->wait);
64 struct squashfs_stream *stream;
68 stream = kzalloc(sizeof(*stream), GFP_KERNEL);
69 if (!stream)
72 stream->comp_opts = comp_opts;
73 mutex_init(&stream->mutex);
74 INIT_LIST_HEAD(&stream->strm_list);
75 init_waitqueue_head(&stream->wait);
87 decomp_strm->stream = msblk->decompressor->init(msblk,
88 stream->comp_opts);
89 if (IS_ERR(decomp_strm->stream)) {
90 err = PTR_ERR(decomp_strm->stream);
94 list_add(&decomp_strm->list, &stream->strm_list);
95 stream->avail_decomp = 1;
96 return stream;
100 kfree(stream);
107 struct squashfs_stream *stream = msblk->stream;
108 if (stream) {
111 while (!list_empty(&stream->strm_list)) {
112 decomp_strm = list_entry(stream->strm_list.prev,
115 msblk->decompressor->free(decomp_strm->stream);
117 stream->avail_decomp--;
119 WARN_ON(stream->avail_decomp);
120 kfree(stream->comp_opts);
121 kfree(stream);
127 struct squashfs_stream *stream)
132 mutex_lock(&stream->mutex);
135 if (!list_empty(&stream->strm_list)) {
136 decomp_strm = list_entry(stream->strm_list.prev,
139 mutex_unlock(&stream->mutex);
147 if (stream->avail_decomp >= msblk->max_thread_num)
155 decomp_strm->stream = msblk->decompressor->init(msblk,
156 stream->comp_opts);
157 if (IS_ERR(decomp_strm->stream)) {
162 stream->avail_decomp++;
163 WARN_ON(stream->avail_decomp > msblk->max_thread_num);
165 mutex_unlock(&stream->mutex);
173 mutex_unlock(&stream->mutex);
174 wait_event(stream->wait,
175 !list_empty(&stream->strm_list));
187 struct squashfs_stream *stream = msblk->stream;
188 struct decomp_stream *decomp_stream = get_decomp_stream(msblk, stream);
189 res = msblk->decompressor->decompress(msblk, decomp_stream->stream,
191 put_decomp_stream(decomp_stream, stream);