Lines Matching refs:driver
23 struct zpool_driver *driver; member
40 void zpool_register_driver(struct zpool_driver *driver) in zpool_register_driver() argument
43 atomic_set(&driver->refcount, 0); in zpool_register_driver()
44 list_add(&driver->list, &drivers_head); in zpool_register_driver()
59 int zpool_unregister_driver(struct zpool_driver *driver) in zpool_unregister_driver() argument
64 refcount = atomic_read(&driver->refcount); in zpool_unregister_driver()
69 list_del(&driver->list); in zpool_unregister_driver()
105 struct zpool_driver *driver; in zpool_get_driver() local
108 list_for_each_entry(driver, &drivers_head, list) { in zpool_get_driver()
109 if (!strcmp(driver->type, type)) { in zpool_get_driver()
110 bool got = try_module_get(driver->owner); in zpool_get_driver()
113 atomic_inc(&driver->refcount); in zpool_get_driver()
115 return got ? driver : NULL; in zpool_get_driver()
123 static void zpool_put_driver(struct zpool_driver *driver) in zpool_put_driver() argument
125 atomic_dec(&driver->refcount); in zpool_put_driver()
126 module_put(driver->owner); in zpool_put_driver()
147 struct zpool_driver *driver; in zpool_create_pool() local
152 driver = zpool_get_driver(type); in zpool_create_pool()
154 if (!driver) { in zpool_create_pool()
156 driver = zpool_get_driver(type); in zpool_create_pool()
159 if (!driver) { in zpool_create_pool()
167 zpool_put_driver(driver); in zpool_create_pool()
171 zpool->type = driver->type; in zpool_create_pool()
172 zpool->driver = driver; in zpool_create_pool()
173 zpool->pool = driver->create(name, gfp, ops); in zpool_create_pool()
178 zpool_put_driver(driver); in zpool_create_pool()
210 zpool->driver->destroy(zpool->pool); in zpool_destroy_pool()
211 zpool_put_driver(zpool->driver); in zpool_destroy_pool()
249 return zpool->driver->malloc(zpool->pool, size, gfp, handle); in zpool_malloc()
268 zpool->driver->free(zpool->pool, handle); in zpool_free()
291 return zpool->driver->shrink(zpool->pool, pages, reclaimed); in zpool_shrink()
319 return zpool->driver->map(zpool->pool, handle, mapmode); in zpool_map_handle()
334 zpool->driver->unmap(zpool->pool, handle); in zpool_unmap_handle()
347 return zpool->driver->total_size(zpool->pool); in zpool_get_total_size()