RDMA/uverbs: Remove is_closed from ib_uverbs_file
authorJason Gunthorpe <jgg@mellanox.com>
Sun, 16 Sep 2018 17:37:38 +0000 (20:37 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 19 Sep 2018 16:07:05 +0000 (10:07 -0600)
This does nothing but indicate if the uverbs_file is in the device's list,
use list_del_init instead.

Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
drivers/infiniband/core/uverbs.h
drivers/infiniband/core/uverbs_main.c

index 717ab35..24369eb 100644 (file)
@@ -147,7 +147,6 @@ struct ib_uverbs_file {
        struct ib_event_handler                 event_handler;
        struct ib_uverbs_async_event_file       *async_file;
        struct list_head                        list;
-       int                                     is_closed;
 
        /*
         * To access the uobjects list hw_destroy_rwsem must be held for write
index 16e5f71..176271d 100644 (file)
@@ -905,10 +905,7 @@ static int ib_uverbs_close(struct inode *inode, struct file *filp)
        uverbs_destroy_ufile_hw(file, RDMA_REMOVE_CLOSE);
 
        mutex_lock(&file->device->lists_mutex);
-       if (!file->is_closed) {
-               list_del(&file->list);
-               file->is_closed = 1;
-       }
+       list_del_init(&file->list);
        mutex_unlock(&file->device->lists_mutex);
 
        if (file->async_file)
@@ -1104,8 +1101,7 @@ static void ib_uverbs_free_hw_resources(struct ib_uverbs_device *uverbs_dev,
        while (!list_empty(&uverbs_dev->uverbs_file_list)) {
                file = list_first_entry(&uverbs_dev->uverbs_file_list,
                                        struct ib_uverbs_file, list);
-               file->is_closed = 1;
-               list_del(&file->list);
+               list_del_init(&file->list);
                kref_get(&file->ref);
 
                /* We must release the mutex before going ahead and calling