Lines Matching refs:isi
29 static int iomap_swapfile_add_extent(struct iomap_swapfile_info *isi)
31 struct iomap *iomap = &isi->iomap;
39 if (unlikely(isi->nr_pages >= isi->sis->max))
41 max_pages = isi->sis->max - isi->nr_pages;
65 if (isi->lowest_ppage > first_ppage_reported)
66 isi->lowest_ppage = first_ppage_reported;
67 if (isi->highest_ppage < (next_ppage - 1))
68 isi->highest_ppage = next_ppage - 1;
71 error = add_swap_extent(isi->sis, isi->nr_pages, nr_pages, first_ppage);
74 isi->nr_extents += error;
75 isi->nr_pages += nr_pages;
88 struct iomap_swapfile_info *isi = data;
116 if (iomap->bdev != isi->sis->bdev) {
121 if (isi->iomap.length == 0) {
123 memcpy(&isi->iomap, iomap, sizeof(isi->iomap));
124 } else if (isi->iomap.addr + isi->iomap.length == iomap->addr) {
126 isi->iomap.length += iomap->length;
129 error = iomap_swapfile_add_extent(isi);
132 memcpy(&isi->iomap, iomap, sizeof(isi->iomap));
145 struct iomap_swapfile_info isi = {
165 ops, &isi, iomap_swapfile_activate_actor);
173 if (isi.iomap.length) {
174 ret = iomap_swapfile_add_extent(&isi);
184 if (isi.nr_pages == 0) {
189 *pagespan = 1 + isi.highest_ppage - isi.lowest_ppage;
190 sis->max = isi.nr_pages;
191 sis->pages = isi.nr_pages - 1;
192 sis->highest_bit = isi.nr_pages - 1;
193 return isi.nr_extents;