Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp1379993imm; Tue, 22 May 2018 03:11:27 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoEFyGs0PihBwxOa0FT2PhXmewnLrf6r8237kpKhqmBVKCp3kqkvm119HW1XBZRDGyYSs25 X-Received: by 2002:a17:902:6bc1:: with SMTP id m1-v6mr24040808plt.91.1526983887655; Tue, 22 May 2018 03:11:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526983887; cv=none; d=google.com; s=arc-20160816; b=HMeYjNlYc7WeRzK5wIoF+IgExWFOhrfzy5tM/UfqBTkcWvFZdC+S4ZpZrj6U5eedG7 Xk21QzlMpZBr/ihsPS7rGFGw7HE2W85sAmZGqKx5Z2TZhCTiu3rBebAuKZi9LzqjkZXo RqKcYFgvptyLfCYFTJW/CrEQLKrG0PS4B2ImLFTiqFHp3kfhv2LPPWpvIp031wETw0ff RQRvEqfKv0bp/T5y9nsmdn9VSWrMNi3jljEnt/dXDVp1lcrtSWMZ3tKH8rZuCsivh39G Dj2dX2IJ5mlWC+jQcVkVpq80o8xjTC+yCF9YVzUhM6UXs+/DogfNJZdqKdBsd7XHaQTp POnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:spamdiagnosticmetadata :spamdiagnosticoutput:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature:arc-authentication-results; bh=QnBgXSdJxx7himeNNyYoDTpdwhJVxHUogyLpQ0/VOV0=; b=p2nFmvxFR8U2W7/0HDkva3ewcOUFyA3+KqqnSYYZUwhT0v+iedxqmCaA+PQVWFcKo1 +FmeEmZFQxtbJGwIVtYr764f8fuJ4MOWjWuY8bulI3uMGzSYafMK8JQek3nE3M2D2eN8 CVFKd+5Ge/SKAl4ZvEcQk5ORiJRQW+CIbqAY7VANnN7PMOcL1Q90LlOBl4p2Xz5ag6R8 fLhnNR9ZFF1kBbbIOWH+meZ9M8p6IexlzTjJ8BmkkwkI4wbVW6CWqbTWUvZozr8Rvwk9 bStPOOx5wO106qqgmI4/6A7yoskoLYLHxjvh8gcCrWm1tRWJieVwCgX+TYjGLRrfzpiP M6Zw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cnexlabs.onmicrosoft.com header.s=selector1-cnexlabs-com header.b=aWmd5tfo; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q7-v6si12544318pgv.658.2018.05.22.03.11.13; Tue, 22 May 2018 03:11:27 -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=@cnexlabs.onmicrosoft.com header.s=selector1-cnexlabs-com header.b=aWmd5tfo; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752679AbeEVKKb (ORCPT + 99 others); Tue, 22 May 2018 06:10:31 -0400 Received: from mail-bn3nam01on0046.outbound.protection.outlook.com ([104.47.33.46]:7344 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751172AbeEVKKX (ORCPT ); Tue, 22 May 2018 06:10:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cnexlabs.onmicrosoft.com; s=selector1-cnexlabs-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QnBgXSdJxx7himeNNyYoDTpdwhJVxHUogyLpQ0/VOV0=; b=aWmd5tfoqo4Lqm4ZoGTChRPI5QfaepcjXDcWsajctHlUH5/F5j+s8J7YZ3+b+gnCO/jlARXFCzmR7K9Fum9UbOY7lwF5Fvpm9FbIiR2RhC0rVFBvt40GMiRmzIatxwFQ3pplEyu1mwDtfQS21ySJDPVSlTsVEN+yFEPnwP5BP+g= Received: from CO2PR06MB538.namprd06.prod.outlook.com (10.141.199.23) by CO2PR06MB667.namprd06.prod.outlook.com (10.141.227.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.776.11; Tue, 22 May 2018 10:10:13 +0000 Received: from CO2PR06MB538.namprd06.prod.outlook.com ([fe80::592c:a66:2681:242d]) by CO2PR06MB538.namprd06.prod.outlook.com ([fe80::592c:a66:2681:242d%16]) with mapi id 15.20.0776.015; Tue, 22 May 2018 10:10:13 +0000 From: Javier Gonzalez To: Kent Overstreet CC: "linux-kernel@vger.kernel.org" , "linux-block@vger.kernel.org" , Jens Axboe , Christoph Hellwig , "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" , NeilBrown Subject: Re: [PATCH 04/12] lightnvm: convert to bioset_init()/mempool_init() Thread-Topic: [PATCH 04/12] lightnvm: convert to bioset_init()/mempool_init() Thread-Index: AQHT8bUS93JYiqv/TkCxQWRD0GOgGw== Date: Tue, 22 May 2018 10:10:13 +0000 Message-ID: <84EF687A-078F-4807-A667-39A8A91D48D0@cnexlabs.com> References: <20180520222558.7053-1-kent.overstreet@gmail.com> <20180520222558.7053-5-kent.overstreet@gmail.com> In-Reply-To: <20180520222558.7053-5-kent.overstreet@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [193.106.164.211] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;CO2PR06MB667;7:YiDOTOLcTv+dPQPOhpKycj9dVSGEEwrYXAOGyOYYQ/tUtSS6Tj2G2O7w0m5ztRnPDHrDzngct6as0IrimNVvsa4fuQed+cOAb81QS2Fxytetg1Xzq/h547DI/EZDYcL5I+7W5IulFYHO2Ir/GOm00IpJr4lfP+QDqB+l383ztFFrEglxfgQmIr3gTEzR4N1ka388KDy0pUb0R/iavIlsEPUIGW3hz+d+8MyxtavppYNOfUPXwEHH/+Ymu3fYGyeM x-ms-exchange-antispam-srfa-diagnostics: SOS; x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(49563074)(7193020);SRVR:CO2PR06MB667; x-ms-traffictypediagnostic: CO2PR06MB667: authentication-results: spf=none (sender IP is ) smtp.mailfrom=javier@cnexlabs.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(85827821059158); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(102415395)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(20161123560045)(20161123558120)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016);SRVR:CO2PR06MB667;BCL:0;PCL:0;RULEID:;SRVR:CO2PR06MB667; x-forefront-prvs: 0680FADD48 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(39380400002)(376002)(396003)(366004)(39840400004)(189003)(199004)(97736004)(8676002)(86362001)(66066001)(7416002)(83716003)(81156014)(478600001)(316002)(8936002)(82746002)(6486002)(229853002)(36756003)(6246003)(81166006)(99286004)(4326008)(76176011)(68736007)(6916009)(486006)(39060400002)(5660300001)(25786009)(11346002)(446003)(105586002)(3280700002)(99936001)(2906002)(53936002)(3660700001)(106356001)(2900100001)(14454004)(476003)(2616005)(6512007)(3846002)(305945005)(54906003)(26005)(33656002)(102836004)(6506007)(6116002)(59450400001)(5250100002)(186003)(7736002)(6436002);DIR:OUT;SFP:1101;SCL:1;SRVR:CO2PR06MB667;H:CO2PR06MB538.namprd06.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: cnexlabs.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: pKfNpMpcrmc4pmjKk8gANam4uv+KPB4oF5iecWl72+KNVqsjVhEqi6ILGi7asC+wtd7BESnFbqEfax/3IdJ1ioa1MmLY1jyFO0ghriydHE1fDxgqmojTQdULnKijh/ybdQ9wbw3K6jSMbTmp2zl3vpXIb4Ns5k2bUkmar9yWYGndJ+V9N+038/2DRXCPoeio spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/signed; boundary="Apple-Mail=_D7977032-5A8D-4CA1-930F-7A6C48C19BE4"; protocol="application/pgp-signature"; micalg=pgp-sha512 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 526c574e-280c-4ded-10f7-08d5bfcc3576 X-OriginatorOrg: cnexlabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 526c574e-280c-4ded-10f7-08d5bfcc3576 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2018 10:10:13.1925 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: e40dfc2e-c6c1-463a-a598-38602b2c3cff X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR06MB667 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --Apple-Mail=_D7977032-5A8D-4CA1-930F-7A6C48C19BE4 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On 21 May 2018, at 00.25, Kent Overstreet = wrote: >=20 > Signed-off-by: Kent Overstreet > --- > drivers/lightnvm/pblk-core.c | 30 ++++++------- > drivers/lightnvm/pblk-init.c | 72 ++++++++++++++++---------------- > drivers/lightnvm/pblk-read.c | 4 +- > drivers/lightnvm/pblk-recovery.c | 2 +- > drivers/lightnvm/pblk-write.c | 8 ++-- > drivers/lightnvm/pblk.h | 14 +++---- > 6 files changed, 65 insertions(+), 65 deletions(-) >=20 > diff --git a/drivers/lightnvm/pblk-core.c = b/drivers/lightnvm/pblk-core.c > index 94d5d97c9d..934341b104 100644 > --- a/drivers/lightnvm/pblk-core.c > +++ b/drivers/lightnvm/pblk-core.c > @@ -40,7 +40,7 @@ static void pblk_line_mark_bb(struct work_struct = *work) > } >=20 > kfree(ppa); > - mempool_free(line_ws, pblk->gen_ws_pool); > + mempool_free(line_ws, &pblk->gen_ws_pool); > } >=20 > static void pblk_mark_bb(struct pblk *pblk, struct pblk_line *line, > @@ -102,7 +102,7 @@ static void pblk_end_io_erase(struct nvm_rq *rqd) > struct pblk *pblk =3D rqd->private; >=20 > __pblk_end_io_erase(pblk, rqd); > - mempool_free(rqd, pblk->e_rq_pool); > + mempool_free(rqd, &pblk->e_rq_pool); > } >=20 > /* > @@ -237,15 +237,15 @@ struct nvm_rq *pblk_alloc_rqd(struct pblk *pblk, = int type) > switch (type) { > case PBLK_WRITE: > case PBLK_WRITE_INT: > - pool =3D pblk->w_rq_pool; > + pool =3D &pblk->w_rq_pool; > rq_size =3D pblk_w_rq_size; > break; > case PBLK_READ: > - pool =3D pblk->r_rq_pool; > + pool =3D &pblk->r_rq_pool; > rq_size =3D pblk_g_rq_size; > break; > default: > - pool =3D pblk->e_rq_pool; > + pool =3D &pblk->e_rq_pool; > rq_size =3D pblk_g_rq_size; > } >=20 > @@ -265,13 +265,13 @@ void pblk_free_rqd(struct pblk *pblk, struct = nvm_rq *rqd, int type) > case PBLK_WRITE: > kfree(((struct pblk_c_ctx = *)nvm_rq_to_pdu(rqd))->lun_bitmap); > case PBLK_WRITE_INT: > - pool =3D pblk->w_rq_pool; > + pool =3D &pblk->w_rq_pool; > break; > case PBLK_READ: > - pool =3D pblk->r_rq_pool; > + pool =3D &pblk->r_rq_pool; > break; > case PBLK_ERASE: > - pool =3D pblk->e_rq_pool; > + pool =3D &pblk->e_rq_pool; > break; > default: > pr_err("pblk: trying to free unknown rqd type\n"); > @@ -292,7 +292,7 @@ void pblk_bio_free_pages(struct pblk *pblk, struct = bio *bio, int off, >=20 > for (i =3D off; i < nr_pages + off; i++) { > bv =3D bio->bi_io_vec[i]; > - mempool_free(bv.bv_page, pblk->page_bio_pool); > + mempool_free(bv.bv_page, &pblk->page_bio_pool); > } > } >=20 > @@ -304,12 +304,12 @@ int pblk_bio_add_pages(struct pblk *pblk, struct = bio *bio, gfp_t flags, > int i, ret; >=20 > for (i =3D 0; i < nr_pages; i++) { > - page =3D mempool_alloc(pblk->page_bio_pool, flags); > + page =3D mempool_alloc(&pblk->page_bio_pool, flags); >=20 > ret =3D bio_add_pc_page(q, bio, page, = PBLK_EXPOSED_PAGE_SIZE, 0); > if (ret !=3D PBLK_EXPOSED_PAGE_SIZE) { > pr_err("pblk: could not add page to bio\n"); > - mempool_free(page, pblk->page_bio_pool); > + mempool_free(page, &pblk->page_bio_pool); > goto err; > } > } > @@ -1593,7 +1593,7 @@ static void pblk_line_put_ws(struct work_struct = *work) > struct pblk_line *line =3D line_put_ws->line; >=20 > __pblk_line_put(pblk, line); > - mempool_free(line_put_ws, pblk->gen_ws_pool); > + mempool_free(line_put_ws, &pblk->gen_ws_pool); > } >=20 > void pblk_line_put(struct kref *ref) > @@ -1610,7 +1610,7 @@ void pblk_line_put_wq(struct kref *ref) > struct pblk *pblk =3D line->pblk; > struct pblk_line_ws *line_put_ws; >=20 > - line_put_ws =3D mempool_alloc(pblk->gen_ws_pool, GFP_ATOMIC); > + line_put_ws =3D mempool_alloc(&pblk->gen_ws_pool, GFP_ATOMIC); > if (!line_put_ws) > return; >=20 > @@ -1752,7 +1752,7 @@ void pblk_line_close_ws(struct work_struct = *work) > struct pblk_line *line =3D line_ws->line; >=20 > pblk_line_close(pblk, line); > - mempool_free(line_ws, pblk->gen_ws_pool); > + mempool_free(line_ws, &pblk->gen_ws_pool); > } >=20 > void pblk_gen_run_ws(struct pblk *pblk, struct pblk_line *line, void = *priv, > @@ -1761,7 +1761,7 @@ void pblk_gen_run_ws(struct pblk *pblk, struct = pblk_line *line, void *priv, > { > struct pblk_line_ws *line_ws; >=20 > - line_ws =3D mempool_alloc(pblk->gen_ws_pool, gfp_mask); > + line_ws =3D mempool_alloc(&pblk->gen_ws_pool, gfp_mask); >=20 > line_ws->pblk =3D pblk; > line_ws->line =3D line; > diff --git a/drivers/lightnvm/pblk-init.c = b/drivers/lightnvm/pblk-init.c > index 91a5bc2556..9a984abd3d 100644 > --- a/drivers/lightnvm/pblk-init.c > +++ b/drivers/lightnvm/pblk-init.c > @@ -23,7 +23,7 @@ > static struct kmem_cache *pblk_ws_cache, *pblk_rec_cache, = *pblk_g_rq_cache, > *pblk_w_rq_cache; > static DECLARE_RWSEM(pblk_lock); > -struct bio_set *pblk_bio_set; > +struct bio_set pblk_bio_set; >=20 > static int pblk_rw_io(struct request_queue *q, struct pblk *pblk, > struct bio *bio) > @@ -341,7 +341,7 @@ static int pblk_core_init(struct pblk *pblk) > { > struct nvm_tgt_dev *dev =3D pblk->dev; > struct nvm_geo *geo =3D &dev->geo; > - int max_write_ppas; > + int ret, max_write_ppas; >=20 > atomic64_set(&pblk->user_wa, 0); > atomic64_set(&pblk->pad_wa, 0); > @@ -375,33 +375,33 @@ static int pblk_core_init(struct pblk *pblk) > goto fail_free_pad_dist; >=20 > /* Internal bios can be at most the sectors signaled by the = device. */ > - pblk->page_bio_pool =3D mempool_create_page_pool(NVM_MAX_VLBA, = 0); > - if (!pblk->page_bio_pool) > + ret =3D mempool_init_page_pool(&pblk->page_bio_pool, = NVM_MAX_VLBA, 0); > + if (ret) > goto free_global_caches; >=20 > - pblk->gen_ws_pool =3D = mempool_create_slab_pool(PBLK_GEN_WS_POOL_SIZE, > - pblk_ws_cache); > - if (!pblk->gen_ws_pool) > + ret =3D mempool_init_slab_pool(&pblk->gen_ws_pool, = PBLK_GEN_WS_POOL_SIZE, > + pblk_ws_cache); > + if (ret) > goto free_page_bio_pool; >=20 > - pblk->rec_pool =3D mempool_create_slab_pool(geo->all_luns, > - pblk_rec_cache); > - if (!pblk->rec_pool) > + ret =3D mempool_init_slab_pool(&pblk->rec_pool, geo->all_luns, > + pblk_rec_cache); > + if (ret) > goto free_gen_ws_pool; >=20 > - pblk->r_rq_pool =3D mempool_create_slab_pool(geo->all_luns, > - = pblk_g_rq_cache); > - if (!pblk->r_rq_pool) > + ret =3D mempool_init_slab_pool(&pblk->r_rq_pool, geo->all_luns, > + pblk_g_rq_cache); > + if (ret) > goto free_rec_pool; >=20 > - pblk->e_rq_pool =3D mempool_create_slab_pool(geo->all_luns, > - = pblk_g_rq_cache); > - if (!pblk->e_rq_pool) > + ret =3D mempool_init_slab_pool(&pblk->e_rq_pool, geo->all_luns, > + pblk_g_rq_cache); > + if (ret) > goto free_r_rq_pool; >=20 > - pblk->w_rq_pool =3D mempool_create_slab_pool(geo->all_luns, > - = pblk_w_rq_cache); > - if (!pblk->w_rq_pool) > + ret =3D mempool_init_slab_pool(&pblk->w_rq_pool, geo->all_luns, > + pblk_w_rq_cache); > + if (ret) > goto free_e_rq_pool; >=20 > pblk->close_wq =3D alloc_workqueue("pblk-close-wq", > @@ -433,17 +433,17 @@ static int pblk_core_init(struct pblk *pblk) > free_close_wq: > destroy_workqueue(pblk->close_wq); > free_w_rq_pool: > - mempool_destroy(pblk->w_rq_pool); > + mempool_exit(&pblk->w_rq_pool); > free_e_rq_pool: > - mempool_destroy(pblk->e_rq_pool); > + mempool_exit(&pblk->e_rq_pool); > free_r_rq_pool: > - mempool_destroy(pblk->r_rq_pool); > + mempool_exit(&pblk->r_rq_pool); > free_rec_pool: > - mempool_destroy(pblk->rec_pool); > + mempool_exit(&pblk->rec_pool); > free_gen_ws_pool: > - mempool_destroy(pblk->gen_ws_pool); > + mempool_exit(&pblk->gen_ws_pool); > free_page_bio_pool: > - mempool_destroy(pblk->page_bio_pool); > + mempool_exit(&pblk->page_bio_pool); > free_global_caches: > pblk_free_global_caches(pblk); > fail_free_pad_dist: > @@ -462,12 +462,12 @@ static void pblk_core_free(struct pblk *pblk) > if (pblk->bb_wq) > destroy_workqueue(pblk->bb_wq); >=20 > - mempool_destroy(pblk->page_bio_pool); > - mempool_destroy(pblk->gen_ws_pool); > - mempool_destroy(pblk->rec_pool); > - mempool_destroy(pblk->r_rq_pool); > - mempool_destroy(pblk->e_rq_pool); > - mempool_destroy(pblk->w_rq_pool); > + mempool_exit(&pblk->page_bio_pool); > + mempool_exit(&pblk->gen_ws_pool); > + mempool_exit(&pblk->rec_pool); > + mempool_exit(&pblk->r_rq_pool); > + mempool_exit(&pblk->e_rq_pool); > + mempool_exit(&pblk->w_rq_pool); >=20 > pblk_free_global_caches(pblk); > kfree(pblk->pad_dist); > @@ -1297,18 +1297,18 @@ static int __init pblk_module_init(void) > { > int ret; >=20 > - pblk_bio_set =3D bioset_create(BIO_POOL_SIZE, 0, 0); > - if (!pblk_bio_set) > - return -ENOMEM; > + ret =3D bioset_init(&pblk_bio_set, BIO_POOL_SIZE, 0, 0); > + if (ret) > + return ret; > ret =3D nvm_register_tgt_type(&tt_pblk); > if (ret) > - bioset_free(pblk_bio_set); > + bioset_exit(&pblk_bio_set); > return ret; > } >=20 > static void pblk_module_exit(void) > { > - bioset_free(pblk_bio_set); > + bioset_exit(&pblk_bio_set); > nvm_unregister_tgt_type(&tt_pblk); > } >=20 > diff --git a/drivers/lightnvm/pblk-read.c = b/drivers/lightnvm/pblk-read.c > index 9eee10f69d..c844ffb6ae 100644 > --- a/drivers/lightnvm/pblk-read.c > +++ b/drivers/lightnvm/pblk-read.c > @@ -294,7 +294,7 @@ static int pblk_partial_read_bio(struct pblk = *pblk, struct nvm_rq *rqd, > kunmap_atomic(src_p); > kunmap_atomic(dst_p); >=20 > - mempool_free(src_bv.bv_page, pblk->page_bio_pool); > + mempool_free(src_bv.bv_page, &pblk->page_bio_pool); >=20 > hole =3D find_next_zero_bit(read_bitmap, nr_secs, hole + = 1); > } while (hole < nr_secs); > @@ -429,7 +429,7 @@ int pblk_submit_read(struct pblk *pblk, struct bio = *bio) > struct bio *int_bio =3D NULL; >=20 > /* Clone read bio to deal with read errors internally */ > - int_bio =3D bio_clone_fast(bio, GFP_KERNEL, = pblk_bio_set); > + int_bio =3D bio_clone_fast(bio, GFP_KERNEL, = &pblk_bio_set); > if (!int_bio) { > pr_err("pblk: could not clone read bio\n"); > goto fail_end_io; > diff --git a/drivers/lightnvm/pblk-recovery.c = b/drivers/lightnvm/pblk-recovery.c > index 3e079c2afa..364ad52a5b 100644 > --- a/drivers/lightnvm/pblk-recovery.c > +++ b/drivers/lightnvm/pblk-recovery.c > @@ -60,7 +60,7 @@ void pblk_submit_rec(struct work_struct *work) > goto err; > } >=20 > - mempool_free(recovery, pblk->rec_pool); > + mempool_free(recovery, &pblk->rec_pool); > return; >=20 > err: > diff --git a/drivers/lightnvm/pblk-write.c = b/drivers/lightnvm/pblk-write.c > index 3e6f1ebd74..aef7fa2d40 100644 > --- a/drivers/lightnvm/pblk-write.c > +++ b/drivers/lightnvm/pblk-write.c > @@ -122,7 +122,7 @@ static void pblk_end_w_fail(struct pblk *pblk, = struct nvm_rq *rqd) > if (unlikely(nr_ppas =3D=3D 1)) > ppa_list =3D &rqd->ppa_addr; >=20 > - recovery =3D mempool_alloc(pblk->rec_pool, GFP_ATOMIC); > + recovery =3D mempool_alloc(&pblk->rec_pool, GFP_ATOMIC); >=20 > INIT_LIST_HEAD(&recovery->failed); >=20 > @@ -134,7 +134,7 @@ static void pblk_end_w_fail(struct pblk *pblk, = struct nvm_rq *rqd) > /* Logic error */ > if (bit > c_ctx->nr_valid) { > WARN_ONCE(1, "pblk: corrupted write request\n"); > - mempool_free(recovery, pblk->rec_pool); > + mempool_free(recovery, &pblk->rec_pool); > goto out; > } >=20 > @@ -142,7 +142,7 @@ static void pblk_end_w_fail(struct pblk *pblk, = struct nvm_rq *rqd) > entry =3D pblk_rb_sync_scan_entry(&pblk->rwb, &ppa); > if (!entry) { > pr_err("pblk: could not scan entry on write = failure\n"); > - mempool_free(recovery, pblk->rec_pool); > + mempool_free(recovery, &pblk->rec_pool); > goto out; > } >=20 > @@ -156,7 +156,7 @@ static void pblk_end_w_fail(struct pblk *pblk, = struct nvm_rq *rqd) > ret =3D pblk_recov_setup_rq(pblk, c_ctx, recovery, comp_bits, = c_entries); > if (ret) { > pr_err("pblk: could not recover from write failure\n"); > - mempool_free(recovery, pblk->rec_pool); > + mempool_free(recovery, &pblk->rec_pool); > goto out; > } >=20 > diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h > index 9c682acfc5..feafa4de26 100644 > --- a/drivers/lightnvm/pblk.h > +++ b/drivers/lightnvm/pblk.h > @@ -664,12 +664,12 @@ struct pblk { >=20 > struct list_head compl_list; >=20 > - mempool_t *page_bio_pool; > - mempool_t *gen_ws_pool; > - mempool_t *rec_pool; > - mempool_t *r_rq_pool; > - mempool_t *w_rq_pool; > - mempool_t *e_rq_pool; > + mempool_t page_bio_pool; > + mempool_t gen_ws_pool; > + mempool_t rec_pool; > + mempool_t r_rq_pool; > + mempool_t w_rq_pool; > + mempool_t e_rq_pool; >=20 > struct workqueue_struct *close_wq; > struct workqueue_struct *bb_wq; > @@ -841,7 +841,7 @@ void pblk_write_should_kick(struct pblk *pblk); > /* > * pblk read path > */ > -extern struct bio_set *pblk_bio_set; > +extern struct bio_set pblk_bio_set; > int pblk_submit_read(struct pblk *pblk, struct bio *bio); > int pblk_submit_read_gc(struct pblk *pblk, struct pblk_gc_rq *gc_rq); > /* > -- > 2.17.0 Looks like two patches in one, but the changes look good to me as part = of the series. checkpatch complains on a couple of patches in the series. Nothing big, but you probably want to have a look. Reviewed-by: Javier Gonz=C3=A1lez --Apple-Mail=_D7977032-5A8D-4CA1-930F-7A6C48C19BE4 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="signature.asc" Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE+ws7Qq+qZPG1bJoyIX4xUKFRnnQFAlsD7IEACgkQIX4xUKFR nnQJjw/+NH6iHDT0GWNvH1Sm+9q7oSCR3jKn6z1iWLSl1jn769+VPciqMkaSmFfD DHQiZd1w2/jZTMOntnl862u6eOLggaZy3TS5GukpScd1JxshPeQzBpWRszsU6q9t /nSroB9h/2TmvXr/MU5Am4JVxQuPHDdk7M5icx/Kqe9DT67V4SUZgPqcxNuwNcnZ C/rwmH/Usm6KyDdPLyFoYGb3aXh/DsAOTCjfJgq+18sc2huA+s6NABfjr7ZdWszD Th7vnlYxa0y6EkRivwFu4rwZc4K1km+GrfPsA1YnoZ5tEwoHb//oe6aUbM9JiBxX lDiQH9M9i7HMG8f6XYfUjKD1ij6LVIry3upy/VwU2QP5Rq8B4vmnzFtP3mqKG7vN K3fRWgjjggIH+P1us6RPrWeOYAOZ9OLc0u3X5vzL3pdA1DhoHYCx8wVhKpM4rPd6 BeivGn4jGU0kDS9i0rE6q1Vw+vcHWJOH4E0KaaiQKTlk5eCMZnEVgLay1V9GUZuZ gGxJwn/NIYnrqOh3OVJJIoxjEXApEUXEUl0KOlEdu97/EuppHgX0sK73RXUpbMXH ZUHER951lo72t4RL0UvJKRDPzg0rr/cQoynCWQiFiOyLLABzT20akFVoe+LKCnc8 2LgUL5NtaGXnewSgg8jexNJ/4xkaLA/I0dAsyoFxCqICq8K9eUY= =aSf2 -----END PGP SIGNATURE----- --Apple-Mail=_D7977032-5A8D-4CA1-930F-7A6C48C19BE4--