On Fri, 1 May 2015, walter harms wrote: > hi Julia, > your patch seems fine. > I tried to understand the code and it seems that much of it > can be simplified by using already available functions. > I have added some comments but i am not sure what to make of it. Thanks for the review. Comments below. > > > > len = strlen(LUSTRE_MGC_OBDNAME) + strlen(libcfs_nid2str(nid)) + 1; > > - OBD_ALLOC(mgcname, len); > > - OBD_ALLOC(niduuid, len + 2); > > + mgcname = kzalloc(len, GFP_NOFS); > > + niduuid = kzalloc(len + 2, GFP_NOFS); > > if (!mgcname || !niduuid) { > > rc = -ENOMEM; > > goto out_free; > > this can be simplified by using > kasprintf(&mgcname,"%s%s", LUSTRE_MGC_OBDNAME, libcfs_nid2str(nid)); > > is guess the some is true for niduuid Thanks for the suggestion. I will look into that next. It may be applicable elsewhere. > > /* Save the obdname for cleaning the nid uuids, which are > > obdname_XX */ > > len = strlen(obd->obd_name) + 6; > > - OBD_ALLOC(niduuid, len); > > + niduuid = kzalloc(len, GFP_NOFS); > > if (niduuid) { > > strcpy(niduuid, obd->obd_name); > > ptr = niduuid + strlen(niduuid); > > i guess kstrdup() would be appropiate OK, I will check on this too. > > @@ -895,7 +887,7 @@ static int lmd_parse_mgssec(struct lustr > > int length; > > > > if (lmd->lmd_mgssec != NULL) { > > - OBD_FREE(lmd->lmd_mgssec, strlen(lmd->lmd_mgssec) + 1); > > + kfree(lmd->lmd_mgssec); > > lmd->lmd_mgssec = NULL; > > } > > is the check needed hier at all ? just > kfree(lmd->lmd_mgssec); > seems to do the same job. I'm working on that right at the moment. Patch shortly. > > > > > @@ -905,7 +897,7 @@ static int lmd_parse_mgssec(struct lustr > > else > > length = tail - ptr; > > > > - OBD_ALLOC(lmd->lmd_mgssec, length + 1); > > + lmd->lmd_mgssec = kzalloc(length + 1, GFP_NOFS); > > if (lmd->lmd_mgssec == NULL) > > return -ENOMEM; > > > > complicated why to say: > lmd->lmd_mgssec=kstrndup(ptr, length,GFP_NOFS); OK, I will look into it. > > @@ -933,7 +925,7 @@ static int lmd_parse_string(char **handl > > else > > length = tail - ptr; > > > > - OBD_ALLOC(*handle, length + 1); > > + *handle = kzalloc(length + 1, GFP_NOFS); > > if (*handle == NULL) > > return -ENOMEM; > > > > lmd_parse_string() seems more or less the same as lmd_parse_mgssec(). > perhaps this can be merged. I will check. > > @@ -971,7 +963,7 @@ static int lmd_parse_mgs(struct lustre_m > > /* Multiple mgsnid= are taken to mean failover locations */ > > memcpy(mgsnid, lmd->lmd_mgs, oldlen); > > mgsnid[oldlen - 1] = ':'; > > - OBD_FREE(lmd->lmd_mgs, oldlen); > > + kfree(lmd->lmd_mgs); > > } > > memcpy(mgsnid + oldlen, *ptr, length); > > mgsnid[oldlen + length] = '\0'; > > the code lmd_parse_mgs basicly does: > kasprintf( &lmd->lmd_mgs,"%s:%s",lmd->lmd_mgs,*ptr); OK. thanks, julia _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel