On 04-Feb-19 23:17, Jason Gunthorpe wrote: > From: Jason Gunthorpe <jgg@xxxxxxxxxxxx> > > Since another rename could be running in parallel it is safer to check > that the name is not changing inside the lock, where we already know the > device name will not change. > > Fixes: d21943dd19b5 ("RDMA/core: Implement IB device rename function") > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxxxx> > Reviewed-by: Parav Pandit <parav@xxxxxxxxxxxx> > --- > drivers/infiniband/core/device.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c > index 55221990d946b2..f9f33e842c16b6 100644 > --- a/drivers/infiniband/core/device.c > +++ b/drivers/infiniband/core/device.c > @@ -189,12 +189,14 @@ static struct ib_device *__ib_device_get_by_name(const char *name) > > int ib_device_rename(struct ib_device *ibdev, const char *name) > { > - int ret = 0; > - > - if (!strcmp(name, dev_name(&ibdev->dev))) > - return ret; > + int ret; > > mutex_lock(&device_mutex); > + if (!strcmp(name, dev_name(&ibdev->dev))) { > + ret = -EEXIST; Why did this change to an error? Probably worth noting that rename to the same name no longer returns success in the commit message. > + goto out; > + } > + > if (__ib_device_get_by_name(name)) { > ret = -EEXIST; > goto out; >