Message ID | 20190116065144.3499-1-richardw.yang@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | libnvdimm, namespace: check nsblk->uuid immediately after its allocation | expand |
Hi, Dan Do you have some time on this? On Wed, Jan 16, 2019 at 02:51:44PM +0800, Wei Yang wrote: >When creating nd_namespace_blk, its uuid is copied from nd_label->uuid. >In case the memory allocation fails, it goes to the error branch. > >This check is better to be done immediately after memory allocation, >while current implementation does this after assigning claim_class. > >This patch moves the check immediately after uuid allocation. > >Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> >--- > drivers/nvdimm/namespace_devs.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > >diff --git a/drivers/nvdimm/namespace_devs.c b/drivers/nvdimm/namespace_devs.c >index 681af3a8fd62..9471b9ca04f5 100644 >--- a/drivers/nvdimm/namespace_devs.c >+++ b/drivers/nvdimm/namespace_devs.c >@@ -2240,11 +2240,11 @@ static struct device *create_namespace_blk(struct nd_region *nd_region, > nsblk->lbasize = __le64_to_cpu(nd_label->lbasize); > nsblk->uuid = kmemdup(nd_label->uuid, NSLABEL_UUID_LEN, > GFP_KERNEL); >+ if (!nsblk->uuid) >+ goto blk_err; > if (namespace_label_has(ndd, abstraction_guid)) > nsblk->common.claim_class > = to_nvdimm_cclass(&nd_label->abstraction_guid); >- if (!nsblk->uuid) >- goto blk_err; > memcpy(name, nd_label->name, NSLABEL_NAME_LEN); > if (name[0]) > nsblk->alt_name = kmemdup(name, NSLABEL_NAME_LEN, >-- >2.19.1
On Mon, Jun 3, 2019 at 8:11 PM Wei Yang <richardw.yang@linux.intel.com> wrote: > > Hi, Dan > > Do you have some time on this? > > On Wed, Jan 16, 2019 at 02:51:44PM +0800, Wei Yang wrote: > >When creating nd_namespace_blk, its uuid is copied from nd_label->uuid. > >In case the memory allocation fails, it goes to the error branch. > > > >This check is better to be done immediately after memory allocation, > >while current implementation does this after assigning claim_class. > > > >This patch moves the check immediately after uuid allocation. This looks ok, but the patch has no significant impact. I'm not particularly motivated to carry it forward.
On Tue, Jun 25, 2019 at 03:06:42PM -0700, Dan Williams wrote: >On Mon, Jun 3, 2019 at 8:11 PM Wei Yang <richardw.yang@linux.intel.com> wrote: >> >> Hi, Dan >> >> Do you have some time on this? >> >> On Wed, Jan 16, 2019 at 02:51:44PM +0800, Wei Yang wrote: >> >When creating nd_namespace_blk, its uuid is copied from nd_label->uuid. >> >In case the memory allocation fails, it goes to the error branch. >> > >> >This check is better to be done immediately after memory allocation, >> >while current implementation does this after assigning claim_class. >> > >> >This patch moves the check immediately after uuid allocation. > >This looks ok, but the patch has no significant impact. I'm not >particularly motivated to carry it forward. Got it. Thanks
diff --git a/drivers/nvdimm/namespace_devs.c b/drivers/nvdimm/namespace_devs.c index 681af3a8fd62..9471b9ca04f5 100644 --- a/drivers/nvdimm/namespace_devs.c +++ b/drivers/nvdimm/namespace_devs.c @@ -2240,11 +2240,11 @@ static struct device *create_namespace_blk(struct nd_region *nd_region, nsblk->lbasize = __le64_to_cpu(nd_label->lbasize); nsblk->uuid = kmemdup(nd_label->uuid, NSLABEL_UUID_LEN, GFP_KERNEL); + if (!nsblk->uuid) + goto blk_err; if (namespace_label_has(ndd, abstraction_guid)) nsblk->common.claim_class = to_nvdimm_cclass(&nd_label->abstraction_guid); - if (!nsblk->uuid) - goto blk_err; memcpy(name, nd_label->name, NSLABEL_NAME_LEN); if (name[0]) nsblk->alt_name = kmemdup(name, NSLABEL_NAME_LEN,
When creating nd_namespace_blk, its uuid is copied from nd_label->uuid. In case the memory allocation fails, it goes to the error branch. This check is better to be done immediately after memory allocation, while current implementation does this after assigning claim_class. This patch moves the check immediately after uuid allocation. Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> --- drivers/nvdimm/namespace_devs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)