[PATCH] swsusp: kill unneeded/unbalanced bio_get
- Remove unneeded bio_get() which would cause a bio leak - Writing doesn't dirty pages. Reading dirties pages. - We should dirty the pages after the IO completion, not before (Busy-waiting for disk I/O completion isn't very polite.) Signed-off-by: Pavel Machek <pavel@suse.cz> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
2139bdd5b1
commit
7714d5985b
|
@ -743,7 +743,6 @@ static int submit(int rw, pgoff_t page_off, void *page)
|
|||
if (!bio)
|
||||
return -ENOMEM;
|
||||
bio->bi_sector = page_off * (PAGE_SIZE >> 9);
|
||||
bio_get(bio);
|
||||
bio->bi_bdev = resume_bdev;
|
||||
bio->bi_end_io = end_io;
|
||||
|
||||
|
@ -753,14 +752,13 @@ static int submit(int rw, pgoff_t page_off, void *page)
|
|||
goto Done;
|
||||
}
|
||||
|
||||
if (rw == WRITE)
|
||||
bio_set_pages_dirty(bio);
|
||||
|
||||
atomic_set(&io_done, 1);
|
||||
submit_bio(rw | (1 << BIO_RW_SYNC), bio);
|
||||
while (atomic_read(&io_done))
|
||||
yield();
|
||||
|
||||
if (rw == READ)
|
||||
bio_set_pages_dirty(bio);
|
||||
Done:
|
||||
bio_put(bio);
|
||||
return error;
|
||||
|
|
Loading…
Reference in New Issue