rbd.c (754451342fc5954061ede74b0a8485ec4a4c6eaa) | rbd.c (5657a819a8d94426c76be04dcedfad0f64cfff00) |
---|---|
1 2/* 3 rbd.c -- Export ceph rados objects as a Linux block device 4 5 6 based on drivers/block/osdblk.c: 7 8 Copyright 2009 Red Hat, Inc. --- 410 unchanged lines hidden (view full) --- 419static DEFINE_IDA(rbd_dev_id_ida); 420 421static struct workqueue_struct *rbd_wq; 422 423/* 424 * single-major requires >= 0.75 version of userspace rbd utility. 425 */ 426static bool single_major = true; | 1 2/* 3 rbd.c -- Export ceph rados objects as a Linux block device 4 5 6 based on drivers/block/osdblk.c: 7 8 Copyright 2009 Red Hat, Inc. --- 410 unchanged lines hidden (view full) --- 419static DEFINE_IDA(rbd_dev_id_ida); 420 421static struct workqueue_struct *rbd_wq; 422 423/* 424 * single-major requires >= 0.75 version of userspace rbd utility. 425 */ 426static bool single_major = true; |
427module_param(single_major, bool, S_IRUGO); | 427module_param(single_major, bool, 0444); |
428MODULE_PARM_DESC(single_major, "Use a single major number for all rbd devices (default: true)"); 429 430static ssize_t rbd_add(struct bus_type *bus, const char *buf, 431 size_t count); 432static ssize_t rbd_remove(struct bus_type *bus, const char *buf, 433 size_t count); 434static ssize_t rbd_add_single_major(struct bus_type *bus, const char *buf, 435 size_t count); --- 27 unchanged lines hidden (view full) --- 463 return is_lock_owner; 464} 465 466static ssize_t rbd_supported_features_show(struct bus_type *bus, char *buf) 467{ 468 return sprintf(buf, "0x%llx\n", RBD_FEATURES_SUPPORTED); 469} 470 | 428MODULE_PARM_DESC(single_major, "Use a single major number for all rbd devices (default: true)"); 429 430static ssize_t rbd_add(struct bus_type *bus, const char *buf, 431 size_t count); 432static ssize_t rbd_remove(struct bus_type *bus, const char *buf, 433 size_t count); 434static ssize_t rbd_add_single_major(struct bus_type *bus, const char *buf, 435 size_t count); --- 27 unchanged lines hidden (view full) --- 463 return is_lock_owner; 464} 465 466static ssize_t rbd_supported_features_show(struct bus_type *bus, char *buf) 467{ 468 return sprintf(buf, "0x%llx\n", RBD_FEATURES_SUPPORTED); 469} 470 |
471static BUS_ATTR(add, S_IWUSR, NULL, rbd_add); 472static BUS_ATTR(remove, S_IWUSR, NULL, rbd_remove); 473static BUS_ATTR(add_single_major, S_IWUSR, NULL, rbd_add_single_major); 474static BUS_ATTR(remove_single_major, S_IWUSR, NULL, rbd_remove_single_major); 475static BUS_ATTR(supported_features, S_IRUGO, rbd_supported_features_show, NULL); | 471static BUS_ATTR(add, 0200, NULL, rbd_add); 472static BUS_ATTR(remove, 0200, NULL, rbd_remove); 473static BUS_ATTR(add_single_major, 0200, NULL, rbd_add_single_major); 474static BUS_ATTR(remove_single_major, 0200, NULL, rbd_remove_single_major); 475static BUS_ATTR(supported_features, 0444, rbd_supported_features_show, NULL); |
476 477static struct attribute *rbd_bus_attrs[] = { 478 &bus_attr_add.attr, 479 &bus_attr_remove.attr, 480 &bus_attr_add_single_major.attr, 481 &bus_attr_remove_single_major.attr, 482 &bus_attr_supported_features.attr, 483 NULL, --- 1877 unchanged lines hidden (view full) --- 2361 if (is_zero_bvecs(obj_req->copyup_bvecs, bytes)) { 2362 dout("%s obj_req %p detected zeroes\n", __func__, obj_req); 2363 bytes = 0; 2364 } 2365 2366 osd_req_op_cls_init(obj_req->osd_req, 0, CEPH_OSD_OP_CALL, "rbd", 2367 "copyup"); 2368 osd_req_op_cls_request_data_bvecs(obj_req->osd_req, 0, | 476 477static struct attribute *rbd_bus_attrs[] = { 478 &bus_attr_add.attr, 479 &bus_attr_remove.attr, 480 &bus_attr_add_single_major.attr, 481 &bus_attr_remove_single_major.attr, 482 &bus_attr_supported_features.attr, 483 NULL, --- 1877 unchanged lines hidden (view full) --- 2361 if (is_zero_bvecs(obj_req->copyup_bvecs, bytes)) { 2362 dout("%s obj_req %p detected zeroes\n", __func__, obj_req); 2363 bytes = 0; 2364 } 2365 2366 osd_req_op_cls_init(obj_req->osd_req, 0, CEPH_OSD_OP_CALL, "rbd", 2367 "copyup"); 2368 osd_req_op_cls_request_data_bvecs(obj_req->osd_req, 0, |
2369 obj_req->copyup_bvecs, 2370 obj_req->copyup_bvec_count, 2371 bytes); | 2369 obj_req->copyup_bvecs, bytes); |
2372 2373 switch (obj_req->img_request->op_type) { 2374 case OBJ_OP_WRITE: 2375 __rbd_obj_setup_write(obj_req, 1); 2376 break; 2377 case OBJ_OP_DISCARD: 2378 rbd_assert(!rbd_obj_is_entire(obj_req)); 2379 __rbd_obj_setup_discard(obj_req, 1); --- 1819 unchanged lines hidden (view full) --- 4199 4200 ret = rbd_dev_refresh(rbd_dev); 4201 if (ret) 4202 return ret; 4203 4204 return size; 4205} 4206 | 2370 2371 switch (obj_req->img_request->op_type) { 2372 case OBJ_OP_WRITE: 2373 __rbd_obj_setup_write(obj_req, 1); 2374 break; 2375 case OBJ_OP_DISCARD: 2376 rbd_assert(!rbd_obj_is_entire(obj_req)); 2377 __rbd_obj_setup_discard(obj_req, 1); --- 1819 unchanged lines hidden (view full) --- 4197 4198 ret = rbd_dev_refresh(rbd_dev); 4199 if (ret) 4200 return ret; 4201 4202 return size; 4203} 4204 |
4207static DEVICE_ATTR(size, S_IRUGO, rbd_size_show, NULL); 4208static DEVICE_ATTR(features, S_IRUGO, rbd_features_show, NULL); 4209static DEVICE_ATTR(major, S_IRUGO, rbd_major_show, NULL); 4210static DEVICE_ATTR(minor, S_IRUGO, rbd_minor_show, NULL); 4211static DEVICE_ATTR(client_addr, S_IRUGO, rbd_client_addr_show, NULL); 4212static DEVICE_ATTR(client_id, S_IRUGO, rbd_client_id_show, NULL); 4213static DEVICE_ATTR(cluster_fsid, S_IRUGO, rbd_cluster_fsid_show, NULL); 4214static DEVICE_ATTR(config_info, S_IRUSR, rbd_config_info_show, NULL); 4215static DEVICE_ATTR(pool, S_IRUGO, rbd_pool_show, NULL); 4216static DEVICE_ATTR(pool_id, S_IRUGO, rbd_pool_id_show, NULL); 4217static DEVICE_ATTR(name, S_IRUGO, rbd_name_show, NULL); 4218static DEVICE_ATTR(image_id, S_IRUGO, rbd_image_id_show, NULL); 4219static DEVICE_ATTR(refresh, S_IWUSR, NULL, rbd_image_refresh); 4220static DEVICE_ATTR(current_snap, S_IRUGO, rbd_snap_show, NULL); 4221static DEVICE_ATTR(snap_id, S_IRUGO, rbd_snap_id_show, NULL); 4222static DEVICE_ATTR(parent, S_IRUGO, rbd_parent_show, NULL); | 4205static DEVICE_ATTR(size, 0444, rbd_size_show, NULL); 4206static DEVICE_ATTR(features, 0444, rbd_features_show, NULL); 4207static DEVICE_ATTR(major, 0444, rbd_major_show, NULL); 4208static DEVICE_ATTR(minor, 0444, rbd_minor_show, NULL); 4209static DEVICE_ATTR(client_addr, 0444, rbd_client_addr_show, NULL); 4210static DEVICE_ATTR(client_id, 0444, rbd_client_id_show, NULL); 4211static DEVICE_ATTR(cluster_fsid, 0444, rbd_cluster_fsid_show, NULL); 4212static DEVICE_ATTR(config_info, 0400, rbd_config_info_show, NULL); 4213static DEVICE_ATTR(pool, 0444, rbd_pool_show, NULL); 4214static DEVICE_ATTR(pool_id, 0444, rbd_pool_id_show, NULL); 4215static DEVICE_ATTR(name, 0444, rbd_name_show, NULL); 4216static DEVICE_ATTR(image_id, 0444, rbd_image_id_show, NULL); 4217static DEVICE_ATTR(refresh, 0200, NULL, rbd_image_refresh); 4218static DEVICE_ATTR(current_snap, 0444, rbd_snap_show, NULL); 4219static DEVICE_ATTR(snap_id, 0444, rbd_snap_id_show, NULL); 4220static DEVICE_ATTR(parent, 0444, rbd_parent_show, NULL); |
4223 4224static struct attribute *rbd_attrs[] = { 4225 &dev_attr_size.attr, 4226 &dev_attr_features.attr, 4227 &dev_attr_major.attr, 4228 &dev_attr_minor.attr, 4229 &dev_attr_client_addr.attr, 4230 &dev_attr_client_id.attr, --- 1789 unchanged lines hidden --- | 4221 4222static struct attribute *rbd_attrs[] = { 4223 &dev_attr_size.attr, 4224 &dev_attr_features.attr, 4225 &dev_attr_major.attr, 4226 &dev_attr_minor.attr, 4227 &dev_attr_client_addr.attr, 4228 &dev_attr_client_id.attr, --- 1789 unchanged lines hidden --- |