Lines Matching refs:stream

48 	void *stream;
54 struct squashfs_stream *stream)
56 mutex_lock(&stream->mutex);
57 list_add(&decomp_strm->list, &stream->strm_list);
58 mutex_unlock(&stream->mutex);
59 wake_up(&stream->wait);
65 struct squashfs_stream *stream;
69 stream = kzalloc(sizeof(*stream), GFP_KERNEL);
70 if (!stream)
73 stream->comp_opts = comp_opts;
74 mutex_init(&stream->mutex);
75 INIT_LIST_HEAD(&stream->strm_list);
76 init_waitqueue_head(&stream->wait);
88 decomp_strm->stream = msblk->decompressor->init(msblk,
89 stream->comp_opts);
90 if (IS_ERR(decomp_strm->stream)) {
91 err = PTR_ERR(decomp_strm->stream);
95 list_add(&decomp_strm->list, &stream->strm_list);
96 stream->avail_decomp = 1;
97 return stream;
101 kfree(stream);
108 struct squashfs_stream *stream = msblk->stream;
109 if (stream) {
112 while (!list_empty(&stream->strm_list)) {
113 decomp_strm = list_entry(stream->strm_list.prev,
116 msblk->decompressor->free(decomp_strm->stream);
118 stream->avail_decomp--;
120 WARN_ON(stream->avail_decomp);
121 kfree(stream->comp_opts);
122 kfree(stream);
128 struct squashfs_stream *stream)
133 mutex_lock(&stream->mutex);
136 if (!list_empty(&stream->strm_list)) {
137 decomp_strm = list_entry(stream->strm_list.prev,
140 mutex_unlock(&stream->mutex);
148 if (stream->avail_decomp >= MAX_DECOMPRESSOR)
156 decomp_strm->stream = msblk->decompressor->init(msblk,
157 stream->comp_opts);
158 if (IS_ERR(decomp_strm->stream)) {
163 stream->avail_decomp++;
164 WARN_ON(stream->avail_decomp > MAX_DECOMPRESSOR);
166 mutex_unlock(&stream->mutex);
174 mutex_unlock(&stream->mutex);
175 wait_event(stream->wait,
176 !list_empty(&stream->strm_list));
188 struct squashfs_stream *stream = msblk->stream;
189 struct decomp_stream *decomp_stream = get_decomp_stream(msblk, stream);
190 res = msblk->decompressor->decompress(msblk, decomp_stream->stream,
192 put_decomp_stream(decomp_stream, stream);