Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp6978921imm; Sun, 20 May 2018 15:29:42 -0700 (PDT) X-Google-Smtp-Source: AB8JxZokMm5Y4SJesqOkAyXJpxy9G5tlQXDIrFVRjmDd6mPTRrqqIEuNEOAJqykxiJt8+XZI4fWb X-Received: by 2002:a62:a48:: with SMTP id s69-v6mr17705428pfi.134.1526855382276; Sun, 20 May 2018 15:29:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526855382; cv=none; d=google.com; s=arc-20160816; b=TQwYMxtEebeVXEgvueEvu1MC9JGUxQ7nyh+ZYIQV1PZu5g6do+2dn2tCw4gh5Yb2me G4L8usuSaEQqWOUSig010Qf2wUELnQTqUhW2yPPgnD5jVMOC2TfDuu9rvNXg9a5OJBcN YCQVnVBsPUhelDJ9peFdwZHfnEw1TswvjeIDWsgDHbDqv7HlIzSCmjwqrO2y2mvePjay bYTNyUH6HhseVqHn+XKV5G9zCQH9iNPqm88U7Tky/byP3t5PDGNSqfJUyRa+jPUzkTpG iw7L8w2iNchCrFzdG6QEwx4d/lGQcVAsHxXveYRgM7ZvO479h8u2CBko+o+Jz0iWMUA8 OHGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=q4Mr2PLaotb4cYt3VUJrC1hI12BIaJZJyfXB0phgiuE=; b=zsa4gNUexWCCSxLepMGYaoQ1TSEGh1FtvNocN/GXvcfEfTYjH8rokVbMI7kTzmJwEe 1eY2UCawapZcSWJPpGuy7RF+UQ9YcrmK5XhqzZiUeiBZEDsZruMW8wkT1bk56jw2I9PH V31MHwpv06/nP1Je1lrZfIAzSIRCCUfs/wKPrUzdJHAXqK2QQ8d5MmLRAGkNjTpOoL9p YZQfzgdvqvJgXVJsGau8TfHxdSsMrhzYRzk93ehH6RS/G8PXE2ZnuA4RsA55RfOC4D2s Ave6tKrn70JEbxRJvK0SCM81wVR5+soyIGtx5cmWDS2X54XNLZyRYiE7DHOpW7gqZaoM fmiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=QOcOhfnZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 87-v6si12796797pfo.137.2018.05.20.15.29.28; Sun, 20 May 2018 15:29:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=QOcOhfnZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752626AbeETW0c (ORCPT + 99 others); Sun, 20 May 2018 18:26:32 -0400 Received: from mail-qk0-f181.google.com ([209.85.220.181]:43562 "EHLO mail-qk0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752569AbeETW0Y (ORCPT ); Sun, 20 May 2018 18:26:24 -0400 Received: by mail-qk0-f181.google.com with SMTP id h19-v6so10494185qkj.10; Sun, 20 May 2018 15:26:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=q4Mr2PLaotb4cYt3VUJrC1hI12BIaJZJyfXB0phgiuE=; b=QOcOhfnZT41XsyauS2HYypeNDy/Zk/w1UVLSrVDj6lSYAi/THg67vo77fwAlGe/iZZ nx6zs9Omcd3td94Th4nTA+P9zGl0+eUE9vxwwzVUXVIoFt/cXw4Kc9QVeB2m8zxc8+5u A3Cl+obWtk3JVBb0h2/f8DtY2RE+YALC7Mjb44gG+Rmhl/TS+qv/dR4DAW/jTEJQDm5O gVRcYiCXODnjOHxwZQmmdIv70QY9J0zbuw7Wl+jPuNz1sZInw5TYtdgsHzueaSHYk++I umpo+rTltrYEaDLm7YNtCaUSzK08U3CkHYJa5Yue+SH7UVuuuAp7UQW585YIxBW+1k98 m3Aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=q4Mr2PLaotb4cYt3VUJrC1hI12BIaJZJyfXB0phgiuE=; b=dCHi+ZjIgOyus3IUzNe1LyVnIMtvkuxHBzz2dOY5qWqtgx2SYh8X+H8sPvcMAGIvQY yWFqLkxxXxs0iaHVUaRlC+i+uo7zUjsxnlXnpnfvYmaee5j2WocUNUTKxSR497EXaYT6 saEXiwsQPOc8eqL6JiQFlH4nMca57K15XIzu9md4ZoEqMit7u7egzGvMR4fBYcLghMti JyeMehrdbCfGBxKmMIuRFXeSgS8AhBfwIVChkGFMPl0jEWN8lCzc8R/GAHVCgpIdmhC3 A2yGJhQA8E/283FPWooC7LED6/ZLc+CfAfb9x6Es7PpiciIGKlz0zbchJl9KY3Z2aVzi WThA== X-Gm-Message-State: ALKqPwfJQQNfDn3F8Y9KCAS8rst5R2wPjcVUeDx0tuJY5gJK1aTvTmDZ 4JISic5KeGh5N+qxoi3JBlfY+I2nDA== X-Received: by 2002:a37:14e8:: with SMTP id 101-v6mr15621935qku.243.1526855182615; Sun, 20 May 2018 15:26:22 -0700 (PDT) Received: from localhost.localdomain (c-71-234-172-214.hsd1.vt.comcast.net. [71.234.172.214]) by smtp.gmail.com with ESMTPSA id v14-v6sm8773169qto.72.2018.05.20.15.26.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 20 May 2018 15:26:21 -0700 (PDT) From: Kent Overstreet To: linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, axboe@kernel.dk, hch@infradead.org, colyli@suse.de, snitzer@redhat.com, darrick.wong@oracle.com, clm@fb.com, bacik@fb.com, linux-xfs@vger.kernel.org, drbd-dev@lists.linbit.com, linux-btrfs@vger.kernel.org, linux-raid@vger.kernel.org, neilb@suse.com Cc: Kent Overstreet Subject: [PATCH 03/12] pktcdvd: convert to bioset_init()/mempool_init() Date: Sun, 20 May 2018 18:25:49 -0400 Message-Id: <20180520222558.7053-4-kent.overstreet@gmail.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180520222558.7053-1-kent.overstreet@gmail.com> References: <20180520222558.7053-1-kent.overstreet@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Signed-off-by: Kent Overstreet --- drivers/block/pktcdvd.c | 50 ++++++++++++++++++++--------------------- include/linux/pktcdvd.h | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index d8aff7f325..69875f5580 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -97,8 +97,8 @@ static int pktdev_major; static int write_congestion_on = PKT_WRITE_CONGESTION_ON; static int write_congestion_off = PKT_WRITE_CONGESTION_OFF; static struct mutex ctl_mutex; /* Serialize open/close/setup/teardown */ -static mempool_t *psd_pool; -static struct bio_set *pkt_bio_set; +static mempool_t psd_pool; +static struct bio_set pkt_bio_set; static struct class *class_pktcdvd = NULL; /* /sys/class/pktcdvd */ static struct dentry *pkt_debugfs_root = NULL; /* /sys/kernel/debug/pktcdvd */ @@ -631,7 +631,7 @@ static inline struct pkt_rb_node *pkt_rbtree_next(struct pkt_rb_node *node) static void pkt_rbtree_erase(struct pktcdvd_device *pd, struct pkt_rb_node *node) { rb_erase(&node->rb_node, &pd->bio_queue); - mempool_free(node, pd->rb_pool); + mempool_free(node, &pd->rb_pool); pd->bio_queue_size--; BUG_ON(pd->bio_queue_size < 0); } @@ -2303,14 +2303,14 @@ static void pkt_end_io_read_cloned(struct bio *bio) psd->bio->bi_status = bio->bi_status; bio_put(bio); bio_endio(psd->bio); - mempool_free(psd, psd_pool); + mempool_free(psd, &psd_pool); pkt_bio_finished(pd); } static void pkt_make_request_read(struct pktcdvd_device *pd, struct bio *bio) { - struct bio *cloned_bio = bio_clone_fast(bio, GFP_NOIO, pkt_bio_set); - struct packet_stacked_data *psd = mempool_alloc(psd_pool, GFP_NOIO); + struct bio *cloned_bio = bio_clone_fast(bio, GFP_NOIO, &pkt_bio_set); + struct packet_stacked_data *psd = mempool_alloc(&psd_pool, GFP_NOIO); psd->pd = pd; psd->bio = bio; @@ -2381,7 +2381,7 @@ static void pkt_make_request_write(struct request_queue *q, struct bio *bio) /* * No matching packet found. Store the bio in the work queue. */ - node = mempool_alloc(pd->rb_pool, GFP_NOIO); + node = mempool_alloc(&pd->rb_pool, GFP_NOIO); node->bio = bio; spin_lock(&pd->lock); BUG_ON(pd->bio_queue_size < 0); @@ -2451,7 +2451,7 @@ static blk_qc_t pkt_make_request(struct request_queue *q, struct bio *bio) split = bio_split(bio, last_zone - bio->bi_iter.bi_sector, - GFP_NOIO, pkt_bio_set); + GFP_NOIO, &pkt_bio_set); bio_chain(split, bio); } else { split = bio; @@ -2707,9 +2707,9 @@ static int pkt_setup_dev(dev_t dev, dev_t* pkt_dev) if (!pd) goto out_mutex; - pd->rb_pool = mempool_create_kmalloc_pool(PKT_RB_POOL_SIZE, - sizeof(struct pkt_rb_node)); - if (!pd->rb_pool) + ret = mempool_init_kmalloc_pool(&pd->rb_pool, PKT_RB_POOL_SIZE, + sizeof(struct pkt_rb_node)); + if (ret) goto out_mem; INIT_LIST_HEAD(&pd->cdrw.pkt_free_list); @@ -2766,7 +2766,7 @@ static int pkt_setup_dev(dev_t dev, dev_t* pkt_dev) out_mem2: put_disk(disk); out_mem: - mempool_destroy(pd->rb_pool); + mempool_exit(&pd->rb_pool); kfree(pd); out_mutex: mutex_unlock(&ctl_mutex); @@ -2817,7 +2817,7 @@ static int pkt_remove_dev(dev_t pkt_dev) blk_cleanup_queue(pd->disk->queue); put_disk(pd->disk); - mempool_destroy(pd->rb_pool); + mempool_exit(&pd->rb_pool); kfree(pd); /* This is safe: open() is still holding a reference. */ @@ -2914,14 +2914,14 @@ static int __init pkt_init(void) mutex_init(&ctl_mutex); - psd_pool = mempool_create_kmalloc_pool(PSD_POOL_SIZE, - sizeof(struct packet_stacked_data)); - if (!psd_pool) - return -ENOMEM; - pkt_bio_set = bioset_create(BIO_POOL_SIZE, 0, 0); - if (!pkt_bio_set) { - mempool_destroy(psd_pool); - return -ENOMEM; + ret = mempool_init_kmalloc_pool(&psd_pool, PSD_POOL_SIZE, + sizeof(struct packet_stacked_data)); + if (ret) + return ret; + ret = bioset_init(&pkt_bio_set, BIO_POOL_SIZE, 0, 0); + if (ret) { + mempool_exit(&psd_pool); + return ret; } ret = register_blkdev(pktdev_major, DRIVER_NAME); @@ -2954,8 +2954,8 @@ static int __init pkt_init(void) out: unregister_blkdev(pktdev_major, DRIVER_NAME); out2: - mempool_destroy(psd_pool); - bioset_free(pkt_bio_set); + mempool_exit(&psd_pool); + bioset_exit(&pkt_bio_set); return ret; } @@ -2968,8 +2968,8 @@ static void __exit pkt_exit(void) pkt_sysfs_cleanup(); unregister_blkdev(pktdev_major, DRIVER_NAME); - mempool_destroy(psd_pool); - bioset_free(pkt_bio_set); + mempool_exit(&psd_pool); + bioset_exit(&pkt_bio_set); } MODULE_DESCRIPTION("Packet writing layer for CD/DVD drives"); diff --git a/include/linux/pktcdvd.h b/include/linux/pktcdvd.h index 93d142ad15..174601554b 100644 --- a/include/linux/pktcdvd.h +++ b/include/linux/pktcdvd.h @@ -186,7 +186,7 @@ struct pktcdvd_device sector_t current_sector; /* Keep track of where the elevator is */ atomic_t scan_queue; /* Set to non-zero when pkt_handle_queue */ /* needs to be run. */ - mempool_t *rb_pool; /* mempool for pkt_rb_node allocations */ + mempool_t rb_pool; /* mempool for pkt_rb_node allocations */ struct packet_iosched iosched; struct gendisk *disk; -- 2.17.0