--- initial
+++ final
@@ -1,90 +1,90 @@
 static struct r1conf *setup_conf(struct mddev *mddev) {
   struct r1conf *conf;
   int i;
   struct raid1_info *disk;
   struct md_rdev *rdev;
   int err = -ENOMEM;
   conf = kzalloc(sizeof(struct r1conf), GFP_KERNEL);
   if (!conf) goto abort;
   conf->nr_pending = kcalloc(BARRIER_BUCKETS_NR, sizeof(atomic_t), GFP_KERNEL);
   if (!conf->nr_pending) goto abort;
   conf->nr_waiting = kcalloc(BARRIER_BUCKETS_NR, sizeof(atomic_t), GFP_KERNEL);
   if (!conf->nr_waiting) goto abort;
   conf->nr_queued = kcalloc(BARRIER_BUCKETS_NR, sizeof(atomic_t), GFP_KERNEL);
   if (!conf->nr_queued) goto abort;
   conf->barrier = kcalloc(BARRIER_BUCKETS_NR, sizeof(atomic_t), GFP_KERNEL);
   if (!conf->barrier) goto abort;
   conf->mirrors = kzalloc(sizeof(struct raid1_info) * mddev->raid_disks * 2, GFP_KERNEL);
   if (!conf->mirrors) goto abort;
   conf->tmppage = alloc_page(GFP_KERNEL);
   if (!conf->tmppage) goto abort;
   conf->poolinfo = kzalloc(sizeof(*conf->poolinfo), GFP_KERNEL);
   if (!conf->poolinfo) goto abort;
   conf->poolinfo->raid_disks = mddev->raid_disks * 2;
   conf->r1bio_pool = mempool_create(NR_RAID1_BIOS, r1bio_pool_alloc, r1bio_pool_free, conf->poolinfo);
   if (!conf->r1bio_pool) goto abort;
-  conf->bio_split = bioset_create(BIO_POOL_SIZE, 0);
+  conf->bio_split = bioset_create(BIO_POOL_SIZE, 0, 0);
   if (!conf->bio_split) goto abort;
   conf->poolinfo->mddev = mddev;
   err = -EINVAL;
   spin_lock_init(&conf->device_lock);
   rdev_for_each(rdev, mddev) {
     int disk_idx = rdev->raid_disk;
     if (disk_idx >= mddev->raid_disks || disk_idx < 0) continue;
     if (test_bit(Replacement, &rdev->flags))
       disk = conf->mirrors + mddev->raid_disks + disk_idx;
     else
       disk = conf->mirrors + disk_idx;
     if (disk->rdev) goto abort;
     disk->rdev = rdev;
     disk->head_position = 0;
     disk->seq_start = MaxSector;
   }
   conf->raid_disks = mddev->raid_disks;
   conf->mddev = mddev;
   INIT_LIST_HEAD(&conf->retry_list);
   INIT_LIST_HEAD(&conf->bio_end_io_list);
   spin_lock_init(&conf->resync_lock);
   init_waitqueue_head(&conf->wait_barrier);
   bio_list_init(&conf->pending_bio_list);
   conf->pending_count = 0;
   conf->recovery_disabled = mddev->recovery_disabled - 1;
   err = -EIO;
   for (i = 0; i < conf->raid_disks * 2; i++) {
     disk = conf->mirrors + i;
     if (i < conf->raid_disks && disk[conf->raid_disks].rdev) {
       /* This slot has a replacement. */
       if (!disk->rdev) {
         /* No original, just make the replacement
          * a recovering spare
          */
         disk->rdev = disk[conf->raid_disks].rdev;
         disk[conf->raid_disks].rdev = NULL;
       } else if (!test_bit(In_sync, &disk->rdev->flags))
         /* Original is not in_sync - bad */
         goto abort;
     }
     if (!disk->rdev || !test_bit(In_sync, &disk->rdev->flags)) {
       disk->head_position = 0;
       if (disk->rdev && (disk->rdev->saved_raid_disk < 0)) conf->fullsync = 1;
     }
   }
   err = -ENOMEM;
   conf->thread = md_register_thread(raid1d, mddev, "raid1");
   if (!conf->thread) goto abort;
   return conf;
 abort:
   if (conf) {
     mempool_destroy(conf->r1bio_pool);
     kfree(conf->mirrors);
     safe_put_page(conf->tmppage);
     kfree(conf->poolinfo);
     kfree(conf->nr_pending);
     kfree(conf->nr_waiting);
     kfree(conf->nr_queued);
     kfree(conf->barrier);
     if (conf->bio_split) bioset_free(conf->bio_split);
     kfree(conf);
   }
   return ERR_PTR(err);
 }<sep>@@
expression e1,e2;
identifier f,x;
@@
f(...,struct mddev *x,...) {
<...
-bioset_create(e1,e2)
+bioset_create(e1,e2,0)
...> }