Count pages after possibly truncating the iterator to the maximum zone
append size, not before.
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
        int nr_pages;
        ssize_t ret;
 
-       nr_pages = iov_iter_npages(from, BIO_MAX_PAGES);
-       if (!nr_pages)
-               return 0;
-
        max = queue_max_zone_append_sectors(bdev_get_queue(bdev));
        max = ALIGN_DOWN(max << SECTOR_SHIFT, inode->i_sb->s_blocksize);
        iov_iter_truncate(from, max);
 
+       nr_pages = iov_iter_npages(from, BIO_MAX_PAGES);
+       if (!nr_pages)
+               return 0;
+
        bio = bio_alloc_bioset(GFP_NOFS, nr_pages, &fs_bio_set);
        if (!bio)
                return -ENOMEM;