Home
last modified time | relevance | path

Searched refs:folioq (Results 1 – 15 of 15) sorted by relevance

/linux/include/linux/
H A Dfolio_queue.h53 static inline void folioq_init(struct folio_queue *folioq, unsigned int rreq_id) in folioq_init() argument
55 folio_batch_init(&folioq->vec); in folioq_init()
56 folioq->next = NULL; in folioq_init()
57 folioq->prev = NULL; in folioq_init()
58 folioq->marks = 0; in folioq_init()
59 folioq->marks2 = 0; in folioq_init()
60 folioq->marks3 = 0; in folioq_init()
61 folioq->rreq_id = rreq_id; in folioq_init()
62 folioq->debug_id = 0; in folioq_init()
72 static inline unsigned int folioq_nr_slots(const struct folio_queue *folioq) in folioq_nr_slots() argument
[all …]
H A Diov_iter.h151 const struct folio_queue *folioq = iter->folioq; in iterate_folioq() local
155 if (slot == folioq_nr_slots(folioq)) { in iterate_folioq()
157 folioq = folioq->next; in iterate_folioq()
162 struct folio *folio = folioq_folio(folioq, slot); in iterate_folioq()
170 fsize = folioq_folio_size(folioq, slot); in iterate_folioq()
182 if (slot == folioq_nr_slots(folioq) && folioq->next) { in iterate_folioq()
183 folioq = folioq->next; in iterate_folioq()
192 iter->folioq = folioq; in iterate_folioq()
H A Dnetfs.h463 void netfs_folioq_free(struct folio_queue *folioq,
/linux/Documentation/core-api/
H A Dfolio_queue.rst64 void folioq_init(struct folio_queue *folioq);
77 unsigned int folioq_append(struct folio_queue *folioq,
80 unsigned int folioq_append_mark(struct folio_queue *folioq,
91 void folioq_clear(struct folio_queue *folioq, unsigned int slot);
104 struct folio *folioq_folio(const struct folio_queue *folioq,
110 unsigned int folioq_folio_order(const struct folio_queue *folioq,
113 size_t folioq_folio_size(const struct folio_queue *folioq,
126 unsigned int folioq_nr_slots(const struct folio_queue *folioq);
128 unsigned int folioq_count(struct folio_queue *folioq);
130 bool folioq_full(struct folio_queue *folioq);
[all …]
/linux/fs/netfs/
H A Diterator.c199 const struct folio_queue *folioq = iter->folioq; in netfs_limit_folioq() local
210 if (slot >= folioq_nr_slots(folioq)) { in netfs_limit_folioq()
211 folioq = folioq->next; in netfs_limit_folioq()
217 size_t flen = folioq_folio_size(folioq, slot); in netfs_limit_folioq()
230 if (slot >= folioq_nr_slots(folioq)) { in netfs_limit_folioq()
231 folioq = folioq->next; in netfs_limit_folioq()
234 } while (folioq); in netfs_limit_folioq()
H A Dread_pgpriv2.c168 struct folio_queue *folioq = creq->buffer.tail; in netfs_pgpriv2_unlock_copied_folios() local
173 if (slot >= folioq_nr_slots(folioq)) { in netfs_pgpriv2_unlock_copied_folios()
174 folioq = rolling_buffer_delete_spent(&creq->buffer); in netfs_pgpriv2_unlock_copied_folios()
183 folio = folioq_folio(folioq, slot); in netfs_pgpriv2_unlock_copied_folios()
210 folioq_clear(folioq, slot); in netfs_pgpriv2_unlock_copied_folios()
212 if (slot >= folioq_nr_slots(folioq)) { in netfs_pgpriv2_unlock_copied_folios()
213 folioq = rolling_buffer_delete_spent(&creq->buffer); in netfs_pgpriv2_unlock_copied_folios()
214 if (!folioq) in netfs_pgpriv2_unlock_copied_folios()
223 creq->buffer.tail = folioq; in netfs_pgpriv2_unlock_copied_folios()
H A Dread_collect.c43 struct folio_queue *folioq, in netfs_unlock_read_folio() argument
47 struct folio *folio = folioq_folio(folioq, slot); in netfs_unlock_read_folio()
78 folioq_clear(folioq, slot); in netfs_unlock_read_folio()
96 folioq_clear(folioq, slot); in netfs_unlock_read_folio()
105 struct folio_queue *folioq = rreq->buffer.tail; in netfs_read_unlock_folios() local
114 if (slot >= folioq_nr_slots(folioq)) { in netfs_read_unlock_folios()
115 folioq = rolling_buffer_delete_spent(&rreq->buffer); in netfs_read_unlock_folios()
116 if (!folioq) { in netfs_read_unlock_folios()
132 folio = folioq_folio(folioq, slot); in netfs_read_unlock_folios()
138 order = folioq_folio_order(folioq, slot); in netfs_read_unlock_folios()
[all …]
H A Dwrite_collect.c114 struct folio_queue *folioq = wreq->buffer.tail; in netfs_writeback_unlock_folios() local
118 if (WARN_ON_ONCE(!folioq)) { in netfs_writeback_unlock_folios()
130 if (slot >= folioq_nr_slots(folioq)) { in netfs_writeback_unlock_folios()
131 folioq = rolling_buffer_delete_spent(&wreq->buffer); in netfs_writeback_unlock_folios()
132 if (!folioq) in netfs_writeback_unlock_folios()
143 folio = folioq_folio(folioq, slot); in netfs_writeback_unlock_folios()
170 folioq_clear(folioq, slot); in netfs_writeback_unlock_folios()
172 if (slot >= folioq_nr_slots(folioq)) { in netfs_writeback_unlock_folios()
173 folioq = rolling_buffer_delete_spent(&wreq->buffer); in netfs_writeback_unlock_folios()
174 if (!folioq) in netfs_writeback_unlock_folios()
[all …]
H A Drolling_buffer.c48 void netfs_folioq_free(struct folio_queue *folioq, in netfs_folioq_free() argument
51 trace_netfs_folioq(folioq, trace); in netfs_folioq_free()
53 kfree(folioq); in netfs_folioq_free()
97 if (roll->iter.folioq == head && in rolling_buffer_make_space()
99 roll->iter.folioq = fq; in rolling_buffer_make_space()
H A Dwrite_issue.c170 wreq_iter->folioq_slot >= folioq_nr_slots(wreq_iter->folioq)) in netfs_prepare_write()
894 for (fq = (struct folio_queue *)iter->folioq; fq; fq = fq->next) { in netfs_writeback_single()
/linux/lib/
H A Diov_iter.c534 const struct folio_queue *folioq = i->folioq; in iov_iter_folioq_advance() local
541 if (slot >= folioq_nr_slots(folioq)) { in iov_iter_folioq_advance()
542 folioq = folioq->next; in iov_iter_folioq_advance()
548 size_t fsize = folioq_folio_size(folioq, slot); in iov_iter_folioq_advance()
554 if (slot >= folioq_nr_slots(folioq) && folioq->next) { in iov_iter_folioq_advance()
555 folioq = folioq->next; in iov_iter_folioq_advance()
562 i->folioq = folioq; in iov_iter_folioq_advance()
587 const struct folio_queue *folioq = i->folioq; in iov_iter_folioq_revert() local
594 folioq = folioq->prev; in iov_iter_folioq_revert()
595 slot = folioq_nr_slots(folioq); in iov_iter_folioq_revert()
[all …]
H A Dkunit_iov_iter.c368 struct folio_queue *folioq, *next;
370 for (folioq = data; folioq; folioq = next) { in iov_kunit_destroy_folioq()
371 next = folioq->next; in iov_kunit_destroy_folioq() local
372 for (int i = 0; i < folioq_nr_slots(folioq); i++) in iov_kunit_destroy_folioq()
373 if (folioq_folio(folioq, i)) in iov_kunit_destroy_folioq()
374 folio_put(folioq_folio(folioq, i)); in iov_kunit_destroy_folioq()
375 kfree(folioq); in iov_kunit_destroy_folioq()
381 struct folio_queue *folioq,
384 iov_kunit_load_folioq(struct kunit * test,struct iov_iter * iter,int dir,struct folio_queue * folioq,struct page ** pages,size_t npages) iov_kunit_load_folioq() argument
407 struct folio_queue *folioq; iov_kunit_create_folioq() local
423 struct folio_queue *folioq; iov_kunit_copy_to_folioq() local
485 struct folio_queue *folioq; iov_kunit_copy_from_folioq() local
863 struct folio_queue *folioq; iov_kunit_extract_pages_folioq() local
[all...]
H A Dscatterlist.c1275 const struct folio_queue *folioq = iter->folioq; in extract_folioq_to_sg() local
1281 BUG_ON(!folioq); in extract_folioq_to_sg()
1283 if (slot >= folioq_nr_slots(folioq)) { in extract_folioq_to_sg()
1284 folioq = folioq->next; in extract_folioq_to_sg()
1285 if (WARN_ON_ONCE(!folioq)) in extract_folioq_to_sg()
1291 struct folio *folio = folioq_folio(folioq, slot); in extract_folioq_to_sg()
1292 size_t fsize = folioq_folio_size(folioq, slot); in extract_folioq_to_sg()
1308 if (slot >= folioq_nr_slots(folioq)) { in extract_folioq_to_sg()
1309 if (!folioq->next) { in extract_folioq_to_sg()
1313 folioq = folioq->next; in extract_folioq_to_sg()
[all …]
/linux/fs/smb/client/
H A Dsmbdirect.c2536 const struct folio_queue *folioq = iter->folioq; in smb_extract_folioq_to_rdma() local
2541 BUG_ON(!folioq); in smb_extract_folioq_to_rdma()
2543 if (slot >= folioq_nr_slots(folioq)) { in smb_extract_folioq_to_rdma()
2544 folioq = folioq->next; in smb_extract_folioq_to_rdma()
2545 if (WARN_ON_ONCE(!folioq)) in smb_extract_folioq_to_rdma()
2551 struct folio *folio = folioq_folio(folioq, slot); in smb_extract_folioq_to_rdma()
2552 size_t fsize = folioq_folio_size(folioq, slot); in smb_extract_folioq_to_rdma()
2567 if (slot >= folioq_nr_slots(folioq)) { in smb_extract_folioq_to_rdma()
2568 if (!folioq->next) { in smb_extract_folioq_to_rdma()
2572 folioq = folioq->next; in smb_extract_folioq_to_rdma()
[all …]
H A Dsmb2ops.c4368 struct folio_queue *folioq; in cifs_clear_folioq_buffer() local
4370 while ((folioq = buffer)) { in cifs_clear_folioq_buffer()
4371 for (int s = 0; s < folioq_count(folioq); s++) in cifs_clear_folioq_buffer()
4372 if (folioq_is_marked(folioq, s)) in cifs_clear_folioq_buffer()
4373 folio_put(folioq_folio(folioq, s)); in cifs_clear_folioq_buffer()
4374 buffer = folioq->next; in cifs_clear_folioq_buffer()
4375 kfree(folioq); in cifs_clear_folioq_buffer()
4576 cifs_copy_folioq_to_iter(struct folio_queue *folioq, size_t data_size, in cifs_copy_folioq_to_iter() argument
4579 for (; folioq; folioq = folioq->next) { in cifs_copy_folioq_to_iter()
4580 for (int s = 0; s < folioq_count(folioq); s++) { in cifs_copy_folioq_to_iter()
[all …]