swap.c (c465a76af658b443075d6efee1c3131257643020) | swap.c (9a1c3542768b5a58e45a9216921cd10a3bae1205) |
---|---|
1/* 2 * linux/kernel/power/swap.c 3 * 4 * This file provides functions for reading the suspend image from 5 * and writing it to a swap partition. 6 * 7 * Copyright (C) 1998,2001-2005 Pavel Machek <pavel@suse.cz> 8 * Copyright (C) 2006 Rafael J. Wysocki <rjw@sisk.pl> --- 164 unchanged lines hidden (view full) --- 173 174 root_swap = res; 175 res = blkdev_get(resume_bdev, FMODE_WRITE, O_RDWR); 176 if (res) 177 return res; 178 179 res = set_blocksize(resume_bdev, PAGE_SIZE); 180 if (res < 0) | 1/* 2 * linux/kernel/power/swap.c 3 * 4 * This file provides functions for reading the suspend image from 5 * and writing it to a swap partition. 6 * 7 * Copyright (C) 1998,2001-2005 Pavel Machek <pavel@suse.cz> 8 * Copyright (C) 2006 Rafael J. Wysocki <rjw@sisk.pl> --- 164 unchanged lines hidden (view full) --- 173 174 root_swap = res; 175 res = blkdev_get(resume_bdev, FMODE_WRITE, O_RDWR); 176 if (res) 177 return res; 178 179 res = set_blocksize(resume_bdev, PAGE_SIZE); 180 if (res < 0) |
181 blkdev_put(resume_bdev); | 181 blkdev_put(resume_bdev, FMODE_WRITE); |
182 183 return res; 184} 185 186/** 187 * write_page - Write one page to given swap location. 188 * @buf: Address we're writing. 189 * @offset: Offset of the swap page we're writing to. --- 379 unchanged lines hidden (view full) --- 569 header = (struct swsusp_info *)data_of(snapshot); 570 error = get_swap_reader(&handle, swsusp_header->image); 571 if (!error) 572 error = swap_read_page(&handle, header, NULL); 573 if (!error) 574 error = load_image(&handle, &snapshot, header->pages - 1); 575 release_swap_reader(&handle); 576 | 182 183 return res; 184} 185 186/** 187 * write_page - Write one page to given swap location. 188 * @buf: Address we're writing. 189 * @offset: Offset of the swap page we're writing to. --- 379 unchanged lines hidden (view full) --- 569 header = (struct swsusp_info *)data_of(snapshot); 570 error = get_swap_reader(&handle, swsusp_header->image); 571 if (!error) 572 error = swap_read_page(&handle, header, NULL); 573 if (!error) 574 error = load_image(&handle, &snapshot, header->pages - 1); 575 release_swap_reader(&handle); 576 |
577 blkdev_put(resume_bdev); | 577 blkdev_put(resume_bdev, FMODE_READ); |
578 579 if (!error) 580 pr_debug("PM: Image successfully loaded\n"); 581 else 582 pr_debug("PM: Error %d resuming\n", error); 583 return error; 584} 585 --- 18 unchanged lines hidden (view full) --- 604 memcpy(swsusp_header->sig, swsusp_header->orig_sig, 10); 605 /* Reset swap signature now */ 606 error = bio_write_page(swsusp_resume_block, 607 swsusp_header, NULL); 608 } else { 609 return -EINVAL; 610 } 611 if (error) | 578 579 if (!error) 580 pr_debug("PM: Image successfully loaded\n"); 581 else 582 pr_debug("PM: Error %d resuming\n", error); 583 return error; 584} 585 --- 18 unchanged lines hidden (view full) --- 604 memcpy(swsusp_header->sig, swsusp_header->orig_sig, 10); 605 /* Reset swap signature now */ 606 error = bio_write_page(swsusp_resume_block, 607 swsusp_header, NULL); 608 } else { 609 return -EINVAL; 610 } 611 if (error) |
612 blkdev_put(resume_bdev); | 612 blkdev_put(resume_bdev, FMODE_READ); |
613 else 614 pr_debug("PM: Signature found, resuming\n"); 615 } else { 616 error = PTR_ERR(resume_bdev); 617 } 618 619 if (error) 620 pr_debug("PM: Error %d checking image file\n", error); --- 7 unchanged lines hidden (view full) --- 628 629void swsusp_close(void) 630{ 631 if (IS_ERR(resume_bdev)) { 632 pr_debug("PM: Image device not initialised\n"); 633 return; 634 } 635 | 613 else 614 pr_debug("PM: Signature found, resuming\n"); 615 } else { 616 error = PTR_ERR(resume_bdev); 617 } 618 619 if (error) 620 pr_debug("PM: Error %d checking image file\n", error); --- 7 unchanged lines hidden (view full) --- 628 629void swsusp_close(void) 630{ 631 if (IS_ERR(resume_bdev)) { 632 pr_debug("PM: Image device not initialised\n"); 633 return; 634 } 635 |
636 blkdev_put(resume_bdev); | 636 blkdev_put(resume_bdev, 0); /* move up */ |
637} 638 639static int swsusp_header_init(void) 640{ 641 swsusp_header = (struct swsusp_header*) __get_free_page(GFP_KERNEL); 642 if (!swsusp_header) 643 panic("Could not allocate memory for swsusp_header\n"); 644 return 0; 645} 646 647core_initcall(swsusp_header_init); | 637} 638 639static int swsusp_header_init(void) 640{ 641 swsusp_header = (struct swsusp_header*) __get_free_page(GFP_KERNEL); 642 if (!swsusp_header) 643 panic("Could not allocate memory for swsusp_header\n"); 644 return 0; 645} 646 647core_initcall(swsusp_header_init); |