Re: [PATCH 2/4] mac80211: Free mpath object when rhashtable insertion fails

Johannes Berg
2019-02-13T15:04:37Z

On Wed, 2019-02-13 at 22:39 +0800, Herbert Xu wrote:
> + if (ret != -EEXIST)
> return ERR_PTR(ret);

Surely that should still be "if (ret && ret != -EEXIST)" otherwise you
return for the success case too? or "else if"?

I'd probably say we should combine all those ifs into something like this?

if (ret == 0) {
sdata->u.mesh.mesh_paths_generation++;
return new_mpath;
} else if (ret == -EEXIST) {
kfree(new_mpath);
return mpath;
} else {
kfree(new_mpath);
return NULL;
}

Yes, that's a small change in behaviour as to when the generation
counter is updated, but I'm pretty sure it really only needs updating
when we inserted something, not if we found an old mpath.

johannes