Merge tag 'tty-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
[linux-2.6-microblaze.git] / drivers / md / dm-log-writes.c
index e3d35c6..5788265 100644 (file)
@@ -264,15 +264,14 @@ static int write_inline_data(struct log_writes_c *lc, void *entry,
                             size_t entrylen, void *data, size_t datalen,
                             sector_t sector)
 {
-       int num_pages, bio_pages, pg_datalen, pg_sectorlen, i;
+       int bio_pages, pg_datalen, pg_sectorlen, i;
        struct page *page;
        struct bio *bio;
        size_t ret;
        void *ptr;
 
        while (datalen) {
-               num_pages = ALIGN(datalen, PAGE_SIZE) >> PAGE_SHIFT;
-               bio_pages = min(num_pages, BIO_MAX_PAGES);
+               bio_pages = bio_max_segs(DIV_ROUND_UP(datalen, PAGE_SIZE));
 
                atomic_inc(&lc->io_blocks);
 
@@ -364,7 +363,7 @@ static int log_one_block(struct log_writes_c *lc,
                goto out;
 
        atomic_inc(&lc->io_blocks);
-       bio = bio_alloc(GFP_KERNEL, min(block->vec_cnt, BIO_MAX_PAGES));
+       bio = bio_alloc(GFP_KERNEL, bio_max_segs(block->vec_cnt));
        if (!bio) {
                DMERR("Couldn't alloc log bio");
                goto error;
@@ -386,7 +385,8 @@ static int log_one_block(struct log_writes_c *lc,
                if (ret != block->vecs[i].bv_len) {
                        atomic_inc(&lc->io_blocks);
                        submit_bio(bio);
-                       bio = bio_alloc(GFP_KERNEL, min(block->vec_cnt - i, BIO_MAX_PAGES));
+                       bio = bio_alloc(GFP_KERNEL,
+                                       bio_max_segs(block->vec_cnt - i));
                        if (!bio) {
                                DMERR("Couldn't alloc log bio");
                                goto error;