Lines Matching refs:piter
184 * @piter: iterator to initialize
188 * Initialize @piter so that it iterates over partitions of @disk.
193 void disk_part_iter_init(struct disk_part_iter *piter, struct gendisk *disk,
201 piter->disk = disk;
202 piter->part = NULL;
205 piter->idx = ptbl->len - 1;
207 piter->idx = 0;
209 piter->idx = 1;
211 piter->flags = flags;
219 * @piter: iterator of interest
221 * Proceed @piter to the next partition and return it.
226 struct hd_struct *disk_part_iter_next(struct disk_part_iter *piter)
232 disk_put_part(piter->part);
233 piter->part = NULL;
237 ptbl = rcu_dereference(piter->disk->part_tbl);
240 if (piter->flags & DISK_PITER_REVERSE) {
242 if (piter->flags & (DISK_PITER_INCL_PART0 |
253 for (; piter->idx != end; piter->idx += inc) {
256 part = rcu_dereference(ptbl->part[piter->idx]);
260 piter->part = part;
262 !(piter->flags & DISK_PITER_INCL_EMPTY) &&
263 !(piter->flags & DISK_PITER_INCL_EMPTY_PART0 &&
264 piter->idx == 0)) {
266 piter->part = NULL;
270 piter->idx += inc;
276 return piter->part;
282 * @piter: iter of interest
284 * Called when iteration is over. Cleans up @piter.
289 void disk_part_iter_exit(struct disk_part_iter *piter)
291 disk_put_part(piter->part);
292 piter->part = NULL;
707 struct disk_part_iter piter;
753 disk_part_iter_init(&piter, disk, 0);
754 while ((part = disk_part_iter_next(&piter)))
756 disk_part_iter_exit(&piter);
902 struct disk_part_iter piter;
916 disk_part_iter_init(&piter, disk,
918 while ((part = disk_part_iter_next(&piter))) {
922 disk_part_iter_exit(&piter);
1083 struct disk_part_iter piter;
1101 disk_part_iter_init(&piter, disk, DISK_PITER_INCL_PART0);
1102 while ((part = disk_part_iter_next(&piter))) {
1119 disk_part_iter_exit(&piter);
1184 struct disk_part_iter piter;
1196 disk_part_iter_init(&piter, sgp, DISK_PITER_INCL_PART0);
1197 while ((part = disk_part_iter_next(&piter)))
1202 disk_part_iter_exit(&piter);
1611 struct disk_part_iter piter;
1625 disk_part_iter_init(&piter, gp, DISK_PITER_INCL_EMPTY_PART0);
1626 while ((hd = disk_part_iter_next(&piter))) {
1669 disk_part_iter_exit(&piter);
1868 struct disk_part_iter piter;
1876 disk_part_iter_init(&piter, disk, DISK_PITER_INCL_EMPTY);
1877 while ((part = disk_part_iter_next(&piter)))
1879 disk_part_iter_exit(&piter);