Re: [PATCH] lightnvm: missing nvm_lock acquire

Matias Bjørling
2015-11-25T14:27:42Z

On 11/25/2015 03:18 PM, Wenwei Tao wrote:
> Or we can add a new function
>
> static struct nvm_dev *nvm_find_nvm_dev_locked(const char *name)
> {
> struct nvm_dev *dev;
>
> + down_write(&nvm_lock);
> list_for_each_entry(dev, &nvm_devices, devices)
> if (!strcmp(name, dev->name))
> return dev;
> + up_write(&nvm_lock);
>
> return NULL;
> }
>
> use nvm_find_nvm_dev_locked() and nvm_find_nvm_dev() properly.
>

That could also work. Let's go with your original solution. I don't like
it completely, but on the other hand. The other iterators build up to
the locks in that way. So making a special case for the nvm_find_nvm_dev
properly makes the code harder to understand.