Lines Matching refs:handle

294 static int mark_swapfiles(struct swap_map_handle *handle, unsigned int flags)  in mark_swapfiles()  argument
303 swsusp_header->image = handle->first_sector; in mark_swapfiles()
306 swsusp_header->crc32 = handle->crc32; in mark_swapfiles()
384 static void release_swap_writer(struct swap_map_handle *handle) in release_swap_writer() argument
386 if (handle->cur) in release_swap_writer()
387 free_page((unsigned long)handle->cur); in release_swap_writer()
388 handle->cur = NULL; in release_swap_writer()
391 static int get_swap_writer(struct swap_map_handle *handle) in get_swap_writer() argument
402 handle->cur = (struct swap_map_page *)get_zeroed_page(GFP_KERNEL); in get_swap_writer()
403 if (!handle->cur) { in get_swap_writer()
407 handle->cur_swap = alloc_swapdev_block(root_swap); in get_swap_writer()
408 if (!handle->cur_swap) { in get_swap_writer()
412 handle->k = 0; in get_swap_writer()
413 handle->reqd_free_pages = reqd_free_pages(); in get_swap_writer()
414 handle->first_sector = handle->cur_swap; in get_swap_writer()
417 release_swap_writer(handle); in get_swap_writer()
423 static int swap_write_page(struct swap_map_handle *handle, void *buf, in swap_write_page() argument
429 if (!handle->cur) in swap_write_page()
435 handle->cur->entries[handle->k++] = offset; in swap_write_page()
436 if (handle->k >= MAP_PAGE_ENTRIES) { in swap_write_page()
440 handle->cur->next_swap = offset; in swap_write_page()
441 error = write_page(handle->cur, handle->cur_swap, hb); in swap_write_page()
444 clear_page(handle->cur); in swap_write_page()
445 handle->cur_swap = offset; in swap_write_page()
446 handle->k = 0; in swap_write_page()
448 if (hb && low_free_pages() <= handle->reqd_free_pages) { in swap_write_page()
456 handle->reqd_free_pages = reqd_free_pages(); in swap_write_page()
463 static int flush_swap_writer(struct swap_map_handle *handle) in flush_swap_writer() argument
465 if (handle->cur && handle->cur_swap) in flush_swap_writer()
466 return write_page(handle->cur, handle->cur_swap, NULL); in flush_swap_writer()
471 static int swap_writer_finish(struct swap_map_handle *handle, in swap_writer_finish() argument
475 flush_swap_writer(handle); in swap_writer_finish()
477 error = mark_swapfiles(handle, flags); in swap_writer_finish()
483 release_swap_writer(handle); in swap_writer_finish()
513 static int save_image(struct swap_map_handle *handle, in save_image() argument
538 ret = swap_write_page(handle, data_of(*snapshot), &hb); in save_image()
649 static int save_image_lzo(struct swap_map_handle *handle, in save_image_lzo() argument
724 handle->crc32 = 0; in save_image_lzo()
725 crc->crc32 = &handle->crc32; in save_image_lzo()
743 handle->reqd_free_pages = reqd_free_pages(); in save_image_lzo()
826 ret = swap_write_page(handle, page, &hb); in save_image_lzo()
891 struct swap_map_handle handle; in swsusp_write() local
898 error = get_swap_writer(&handle); in swsusp_write()
919 error = swap_write_page(&handle, header, NULL); in swsusp_write()
922 save_image(&handle, &snapshot, pages - 1) : in swsusp_write()
923 save_image_lzo(&handle, &snapshot, pages - 1); in swsusp_write()
926 error = swap_writer_finish(&handle, flags, error); in swsusp_write()
935 static void release_swap_reader(struct swap_map_handle *handle) in release_swap_reader() argument
939 while (handle->maps) { in release_swap_reader()
940 if (handle->maps->map) in release_swap_reader()
941 free_page((unsigned long)handle->maps->map); in release_swap_reader()
942 tmp = handle->maps; in release_swap_reader()
943 handle->maps = handle->maps->next; in release_swap_reader()
946 handle->cur = NULL; in release_swap_reader()
949 static int get_swap_reader(struct swap_map_handle *handle, in get_swap_reader() argument
961 handle->cur = NULL; in get_swap_reader()
962 last = handle->maps = NULL; in get_swap_reader()
965 tmp = kmalloc(sizeof(*handle->maps), GFP_KERNEL); in get_swap_reader()
967 release_swap_reader(handle); in get_swap_reader()
971 if (!handle->maps) in get_swap_reader()
972 handle->maps = tmp; in get_swap_reader()
980 release_swap_reader(handle); in get_swap_reader()
986 release_swap_reader(handle); in get_swap_reader()
991 handle->k = 0; in get_swap_reader()
992 handle->cur = handle->maps->map; in get_swap_reader()
996 static int swap_read_page(struct swap_map_handle *handle, void *buf, in swap_read_page() argument
1003 if (!handle->cur) in swap_read_page()
1005 offset = handle->cur->entries[handle->k]; in swap_read_page()
1011 if (++handle->k >= MAP_PAGE_ENTRIES) { in swap_read_page()
1012 handle->k = 0; in swap_read_page()
1013 free_page((unsigned long)handle->maps->map); in swap_read_page()
1014 tmp = handle->maps; in swap_read_page()
1015 handle->maps = handle->maps->next; in swap_read_page()
1017 if (!handle->maps) in swap_read_page()
1018 release_swap_reader(handle); in swap_read_page()
1020 handle->cur = handle->maps->map; in swap_read_page()
1025 static int swap_reader_finish(struct swap_map_handle *handle) in swap_reader_finish() argument
1027 release_swap_reader(handle); in swap_reader_finish()
1038 static int load_image(struct swap_map_handle *handle, in load_image() argument
1063 ret = swap_read_page(handle, data_of(*snapshot), &hb); in load_image()
1139 static int load_image_lzo(struct swap_map_handle *handle, in load_image_lzo() argument
1217 handle->crc32 = 0; in load_image_lzo()
1218 crc->crc32 = &handle->crc32; in load_image_lzo()
1279 ret = swap_read_page(handle, page[ring], &hb); in load_image_lzo()
1285 if (handle->cur && in load_image_lzo()
1286 handle->cur->entries[handle->k]) { in load_image_lzo()
1432 if(handle->crc32 != swsusp_header->crc32) { in load_image_lzo()
1469 struct swap_map_handle handle; in swsusp_read() local
1478 error = get_swap_reader(&handle, flags_p); in swsusp_read()
1482 error = swap_read_page(&handle, header, NULL); in swsusp_read()
1485 load_image(&handle, &snapshot, header->pages - 1) : in swsusp_read()
1486 load_image_lzo(&handle, &snapshot, header->pages - 1); in swsusp_read()
1488 swap_reader_finish(&handle); in swsusp_read()