Lines Matching defs:pcb
22 __acquires(pcb->lock)
24 struct erofs_pcpubuf *pcb = &get_cpu_var(erofs_pcb);
26 raw_spin_lock(&pcb->lock);
28 if (requiredpages > pcb->nrpages) {
29 raw_spin_unlock(&pcb->lock);
31 /* (for sparse checker) pretend pcb->lock is still taken */
32 __acquire(pcb->lock);
35 return pcb->ptr;
38 void erofs_put_pcpubuf(void *ptr) __releases(pcb->lock)
40 struct erofs_pcpubuf *pcb = &per_cpu(erofs_pcb, smp_processor_id());
42 DBG_BUGON(pcb->ptr != ptr);
43 raw_spin_unlock(&pcb->lock);
63 struct erofs_pcpubuf *pcb = &per_cpu(erofs_pcb, cpu);
87 raw_spin_lock(&pcb->lock);
88 old_ptr = pcb->ptr;
89 pcb->ptr = ptr;
90 oldpages = pcb->pages;
91 pcb->pages = pages;
92 i = pcb->nrpages;
93 pcb->nrpages = nrpages;
94 raw_spin_unlock(&pcb->lock);
122 struct erofs_pcpubuf *pcb = &per_cpu(erofs_pcb, cpu);
124 raw_spin_lock_init(&pcb->lock);
133 struct erofs_pcpubuf *pcb = &per_cpu(erofs_pcb, cpu);
135 if (pcb->ptr) {
136 vunmap(pcb->ptr);
137 pcb->ptr = NULL;
139 if (!pcb->pages)
142 for (i = 0; i < pcb->nrpages; ++i)
143 if (pcb->pages[i])
144 put_page(pcb->pages[i]);
145 kfree(pcb->pages);
146 pcb->pages = NULL;