Re: [PATCH 1/8] RDMA/device: Check that the rename is nop under the lock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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;
> 




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux