bio_put(bio);
}
-/*
- * Returns 1 if the submission is successful.
- */
-static int read_from_bdev_async(struct zram *zram, struct page *page,
+static void read_from_bdev_async(struct zram *zram, struct page *page,
unsigned long entry, struct bio *parent)
{
struct bio *bio;
bio = bio_alloc(zram->bdev, 1, parent ? parent->bi_opf : REQ_OP_READ,
GFP_NOIO);
- if (!bio)
- return -ENOMEM;
bio->bi_iter.bi_sector = entry * (PAGE_SIZE >> 9);
- if (!bio_add_page(bio, page, PAGE_SIZE, 0)) {
- bio_put(bio);
- return -EIO;
- }
+ __bio_add_page(bio, page, PAGE_SIZE, 0);
if (!parent)
bio->bi_end_io = zram_page_end_io;
bio_chain(bio, parent);
submit_bio(bio);
- return 1;
}
#define PAGE_WB_SIG "page_index="
return -EIO;
return read_from_bdev_sync(zram, page, entry, parent);
}
- return read_from_bdev_async(zram, page, entry, parent);
+ read_from_bdev_async(zram, page, entry, parent);
+ return 1;
}
#else
static inline void reset_bdev(struct zram *zram) {};