Searched refs:zstrm (Results 1 - 3 of 3) sorted by relevance

/linux-4.4.14/drivers/block/zram/
H A Dzcomp.c28 struct zcomp_strm *zstrm; member in struct:zcomp_strm_single
37 /* max possible number of zstrm streams */
39 /* number of available zstrm streams */
65 static void zcomp_strm_free(struct zcomp *comp, struct zcomp_strm *zstrm) zcomp_strm_free() argument
67 if (zstrm->private) zcomp_strm_free()
68 comp->backend->destroy(zstrm->private); zcomp_strm_free()
69 free_pages((unsigned long)zstrm->buffer, 1); zcomp_strm_free()
70 kfree(zstrm); zcomp_strm_free()
79 struct zcomp_strm *zstrm = kmalloc(sizeof(*zstrm), GFP_NOIO); zcomp_strm_alloc() local
80 if (!zstrm) zcomp_strm_alloc()
83 zstrm->private = comp->backend->create(); zcomp_strm_alloc()
88 zstrm->buffer = (void *)__get_free_pages(GFP_NOIO | __GFP_ZERO, 1); zcomp_strm_alloc()
89 if (!zstrm->private || !zstrm->buffer) { zcomp_strm_alloc()
90 zcomp_strm_free(comp, zstrm); zcomp_strm_alloc()
91 zstrm = NULL; zcomp_strm_alloc()
93 return zstrm; zcomp_strm_alloc()
103 struct zcomp_strm *zstrm; zcomp_strm_multi_find() local
108 zstrm = list_entry(zs->idle_strm.next, zcomp_strm_multi_find()
110 list_del(&zstrm->list); zcomp_strm_multi_find()
112 return zstrm; zcomp_strm_multi_find()
114 /* zstrm streams limit reached, wait for idle stream */ zcomp_strm_multi_find()
120 /* allocate new zstrm stream */ zcomp_strm_multi_find()
124 zstrm = zcomp_strm_alloc(comp); zcomp_strm_multi_find()
125 if (!zstrm) { zcomp_strm_multi_find()
134 return zstrm; zcomp_strm_multi_find()
138 static void zcomp_strm_multi_release(struct zcomp *comp, struct zcomp_strm *zstrm) zcomp_strm_multi_release() argument
144 list_add(&zstrm->list, &zs->idle_strm); zcomp_strm_multi_release()
152 zcomp_strm_free(comp, zstrm); zcomp_strm_multi_release()
159 struct zcomp_strm *zstrm; zcomp_strm_multi_set_max_streams() local
168 zstrm = list_entry(zs->idle_strm.next, zcomp_strm_multi_set_max_streams()
170 list_del(&zstrm->list); zcomp_strm_multi_set_max_streams()
171 zcomp_strm_free(comp, zstrm); zcomp_strm_multi_set_max_streams()
181 struct zcomp_strm *zstrm; zcomp_strm_multi_destroy() local
184 zstrm = list_entry(zs->idle_strm.next, zcomp_strm_multi_destroy()
186 list_del(&zstrm->list); zcomp_strm_multi_destroy()
187 zcomp_strm_free(comp, zstrm); zcomp_strm_multi_destroy()
194 struct zcomp_strm *zstrm; zcomp_strm_multi_create() local
212 zstrm = zcomp_strm_alloc(comp); zcomp_strm_multi_create()
213 if (!zstrm) { zcomp_strm_multi_create()
217 list_add(&zstrm->list, &zs->idle_strm); zcomp_strm_multi_create()
225 return zs->zstrm; zcomp_strm_single_find()
229 struct zcomp_strm *zstrm) zcomp_strm_single_release()
244 zcomp_strm_free(comp, zs->zstrm); zcomp_strm_single_destroy()
262 zs->zstrm = zcomp_strm_alloc(comp); zcomp_strm_single_create()
263 if (!zs->zstrm) { zcomp_strm_single_create()
304 void zcomp_strm_release(struct zcomp *comp, struct zcomp_strm *zstrm) zcomp_strm_release() argument
306 comp->strm_release(comp, zstrm); zcomp_strm_release()
309 int zcomp_compress(struct zcomp *comp, struct zcomp_strm *zstrm, zcomp_compress() argument
312 return comp->backend->compress(src, zstrm->buffer, dst_len, zcomp_compress()
313 zstrm->private); zcomp_compress()
228 zcomp_strm_single_release(struct zcomp *comp, struct zcomp_strm *zstrm) zcomp_strm_single_release() argument
H A Dzcomp.h48 void (*strm_release)(struct zcomp *comp, struct zcomp_strm *zstrm);
60 void zcomp_strm_release(struct zcomp *comp, struct zcomp_strm *zstrm);
62 int zcomp_compress(struct zcomp *comp, struct zcomp_strm *zstrm,
H A Dzram_drv.c657 struct zcomp_strm *zstrm = NULL; zram_bvec_write() local
676 zstrm = zcomp_strm_find(zram->comp); zram_bvec_write()
702 ret = zcomp_compress(zram->comp, zstrm, uncmem, &clen); zram_bvec_write()
713 src = zstrm->buffer; zram_bvec_write()
747 zcomp_strm_release(zram->comp, zstrm); zram_bvec_write()
748 zstrm = NULL; zram_bvec_write()
766 if (zstrm) zram_bvec_write()
767 zcomp_strm_release(zram->comp, zstrm); zram_bvec_write()

Completed in 97 milliseconds