• Home
  • Raw
  • Download

Lines Matching refs:handle

220 static int mark_swapfiles(struct swap_map_handle *handle, unsigned int flags)  in mark_swapfiles()  argument
229 swsusp_header->image = handle->first_sector; in mark_swapfiles()
232 swsusp_header->crc32 = handle->crc32; in mark_swapfiles()
310 static void release_swap_writer(struct swap_map_handle *handle) in release_swap_writer() argument
312 if (handle->cur) in release_swap_writer()
313 free_page((unsigned long)handle->cur); in release_swap_writer()
314 handle->cur = NULL; in release_swap_writer()
317 static int get_swap_writer(struct swap_map_handle *handle) in get_swap_writer() argument
328 handle->cur = (struct swap_map_page *)get_zeroed_page(GFP_KERNEL); in get_swap_writer()
329 if (!handle->cur) { in get_swap_writer()
333 handle->cur_swap = alloc_swapdev_block(root_swap); in get_swap_writer()
334 if (!handle->cur_swap) { in get_swap_writer()
338 handle->k = 0; in get_swap_writer()
339 handle->reqd_free_pages = reqd_free_pages(); in get_swap_writer()
340 handle->first_sector = handle->cur_swap; in get_swap_writer()
343 release_swap_writer(handle); in get_swap_writer()
349 static int swap_write_page(struct swap_map_handle *handle, void *buf, in swap_write_page() argument
355 if (!handle->cur) in swap_write_page()
361 handle->cur->entries[handle->k++] = offset; in swap_write_page()
362 if (handle->k >= MAP_PAGE_ENTRIES) { in swap_write_page()
366 handle->cur->next_swap = offset; in swap_write_page()
367 error = write_page(handle->cur, handle->cur_swap, bio_chain); in swap_write_page()
370 clear_page(handle->cur); in swap_write_page()
371 handle->cur_swap = offset; in swap_write_page()
372 handle->k = 0; in swap_write_page()
374 if (bio_chain && low_free_pages() <= handle->reqd_free_pages) { in swap_write_page()
382 handle->reqd_free_pages = reqd_free_pages(); in swap_write_page()
389 static int flush_swap_writer(struct swap_map_handle *handle) in flush_swap_writer() argument
391 if (handle->cur && handle->cur_swap) in flush_swap_writer()
392 return write_page(handle->cur, handle->cur_swap, NULL); in flush_swap_writer()
397 static int swap_writer_finish(struct swap_map_handle *handle, in swap_writer_finish() argument
401 flush_swap_writer(handle); in swap_writer_finish()
403 error = mark_swapfiles(handle, flags); in swap_writer_finish()
409 release_swap_writer(handle); in swap_writer_finish()
439 static int save_image(struct swap_map_handle *handle, in save_image() argument
463 ret = swap_write_page(handle, data_of(*snapshot), &bio); in save_image()
574 static int save_image_lzo(struct swap_map_handle *handle, in save_image_lzo() argument
647 handle->crc32 = 0; in save_image_lzo()
648 crc->crc32 = &handle->crc32; in save_image_lzo()
666 handle->reqd_free_pages = reqd_free_pages(); in save_image_lzo()
750 ret = swap_write_page(handle, page, &bio); in save_image_lzo()
815 struct swap_map_handle handle; in swsusp_write() local
822 error = get_swap_writer(&handle); in swsusp_write()
843 error = swap_write_page(&handle, header, NULL); in swsusp_write()
846 save_image(&handle, &snapshot, pages - 1) : in swsusp_write()
847 save_image_lzo(&handle, &snapshot, pages - 1); in swsusp_write()
850 error = swap_writer_finish(&handle, flags, error); in swsusp_write()
859 static void release_swap_reader(struct swap_map_handle *handle) in release_swap_reader() argument
863 while (handle->maps) { in release_swap_reader()
864 if (handle->maps->map) in release_swap_reader()
865 free_page((unsigned long)handle->maps->map); in release_swap_reader()
866 tmp = handle->maps; in release_swap_reader()
867 handle->maps = handle->maps->next; in release_swap_reader()
870 handle->cur = NULL; in release_swap_reader()
873 static int get_swap_reader(struct swap_map_handle *handle, in get_swap_reader() argument
885 handle->cur = NULL; in get_swap_reader()
886 last = handle->maps = NULL; in get_swap_reader()
889 tmp = kmalloc(sizeof(*handle->maps), GFP_KERNEL); in get_swap_reader()
891 release_swap_reader(handle); in get_swap_reader()
895 if (!handle->maps) in get_swap_reader()
896 handle->maps = tmp; in get_swap_reader()
904 release_swap_reader(handle); in get_swap_reader()
910 release_swap_reader(handle); in get_swap_reader()
915 handle->k = 0; in get_swap_reader()
916 handle->cur = handle->maps->map; in get_swap_reader()
920 static int swap_read_page(struct swap_map_handle *handle, void *buf, in swap_read_page() argument
927 if (!handle->cur) in swap_read_page()
929 offset = handle->cur->entries[handle->k]; in swap_read_page()
935 if (++handle->k >= MAP_PAGE_ENTRIES) { in swap_read_page()
936 handle->k = 0; in swap_read_page()
937 free_page((unsigned long)handle->maps->map); in swap_read_page()
938 tmp = handle->maps; in swap_read_page()
939 handle->maps = handle->maps->next; in swap_read_page()
941 if (!handle->maps) in swap_read_page()
942 release_swap_reader(handle); in swap_read_page()
944 handle->cur = handle->maps->map; in swap_read_page()
949 static int swap_reader_finish(struct swap_map_handle *handle) in swap_reader_finish() argument
951 release_swap_reader(handle); in swap_reader_finish()
962 static int load_image(struct swap_map_handle *handle, in load_image() argument
986 ret = swap_read_page(handle, data_of(*snapshot), &bio); in load_image()
1062 static int load_image_lzo(struct swap_map_handle *handle, in load_image_lzo() argument
1138 handle->crc32 = 0; in load_image_lzo()
1139 crc->crc32 = &handle->crc32; in load_image_lzo()
1201 ret = swap_read_page(handle, page[ring], &bio); in load_image_lzo()
1207 if (handle->cur && in load_image_lzo()
1208 handle->cur->entries[handle->k]) { in load_image_lzo()
1354 if(handle->crc32 != swsusp_header->crc32) { in load_image_lzo()
1391 struct swap_map_handle handle; in swsusp_read() local
1400 error = get_swap_reader(&handle, flags_p); in swsusp_read()
1404 error = swap_read_page(&handle, header, NULL); in swsusp_read()
1407 load_image(&handle, &snapshot, header->pages - 1) : in swsusp_read()
1408 load_image_lzo(&handle, &snapshot, header->pages - 1); in swsusp_read()
1410 swap_reader_finish(&handle); in swsusp_read()