aboutsummaryrefslogtreecommitdiff
path: root/drivers/block/drbd
AgeCommit message (Collapse)AuthorFilesLines
2014-02-17drbd: Create a dedicated struct drbd_device_workAndreas Gruenbacher8-164/+197
drbd_device_work is a work item that has a reference to a device, while drbd_work is a more generic work item that does not carry a reference to a device. All callbacks get a pointer to a drbd_work instance, those callbacks that expect a drbd_device_work use the container_of macro to get it. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Rename w_prev_work_done -> w_completeAndreas Gruenbacher3-10/+9
Also move it to drbd_receiver.c and make it static. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Move string function prototypes from linux/drbd.h to drbd_string.hAndreas Gruenbacher3-0/+11
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Remove useless assertionAndreas Gruenbacher1-3/+1
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Kill drbd_task_to_thread_name()Andreas Gruenbacher3-28/+11
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Pass a peer device to a number of fuctionsAndreas Gruenbacher6-314/+353
These functions actually operate on a peer device, or need a peer device. drbd_prepare_command(), drbd_send_command(), drbd_send_sync_param() drbd_send_uuids(), drbd_gen_and_send_sync_uuid(), drbd_send_sizes() drbd_send_state(), drbd_send_current_state(), and drbd_send_state_req() drbd_send_sr_reply(), drbd_send_ack(), drbd_send_drequest(), drbd_send_drequest_csum(), drbd_send_ov_request(), drbd_send_dblock() drbd_send_block(), drbd_send_out_of_sync(), recv_dless_read() drbd_drain_block(), receive_bitmap_plain(), recv_resync_read() read_in_block(), read_for_csum(), drbd_alloc_pages(), drbd_alloc_peer_req() need_peer_seq(), update_peer_seq(), wait_for_and_update_peer_seq() drbd_sync_handshake(), drbd_asb_recover_{0,1,2}p(), drbd_connected() drbd_disconnected(), decode_bitmap_c() and recv_bm_rle_bits() Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Replace vnr_to_mdev() with conn_peer_device()Andreas Gruenbacher2-73/+109
The new function returns a peer device, which allows us to eliminate a few instances of first_peer_device(). Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: drbd_csum_bio(), drbd_csum_ee(): Remove unused device argumentAndreas Gruenbacher4-15/+13
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Function prototype cleanupsAndreas Gruenbacher2-4/+2
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Rename drbdd_init() -> drbd_receiver()Andreas Gruenbacher3-3/+4
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Move cpu_mask from connection to resourceAndreas Gruenbacher2-32/+47
Also fix drbd_calc_cpu_mask() to spread resources equally over all online cpus independent of device minor numbers. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Define the size of res_opts->cpu_mask in a single placeAndreas Gruenbacher1-2/+1
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Move susp, susp_nod, susp_fen from connection to resourceAndreas Gruenbacher4-19/+21
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Move conf_mutex from connection to resourceAndreas Gruenbacher8-161/+160
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: drbd_adm_prepare(): Only set adm_ctx.connection when a connection is ↵Andreas Gruenbacher1-6/+2
requested Also change drbd_adm_connect() to expect a resource after it requested one. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Iterate over all connectionsAndreas Gruenbacher2-53/+70
in drbd_adm_down(), drbd_create_device() and drbd_set_role() Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Rename net_conf variables old_conf -> old_net_conf and new_conf -> ↵Andreas Gruenbacher1-46/+46
new_net_conf Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: drbd_create_device(): Take a resource instead of a connection argumentAndreas Gruenbacher3-4/+4
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: drbd_adm_new_resource(): Check if resource exists, not if it has any ↵Andreas Gruenbacher1-1/+1
connections Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: get_one_status(): Iterate over resource->devices instead of ↵Andreas Gruenbacher1-26/+46
connection->peer_devices Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Rename drbd_{create,delete}_minor -> drbd_{create,delete}_deviceAndreas Gruenbacher3-7/+7
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Add explicit device parameter to D_ASSERTAndreas Gruenbacher9-107/+109
The implicit dependency on a variable inside the macro is problematic. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Replace and remove the obsolete conn_() macrosAndreas Gruenbacher6-109/+99
With the polymorphic drbd_() macros, we no longer need the connection specific variants. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Turn drbd_printk() into a polymorphic macroAndreas Gruenbacher1-15/+43
This allows drbd_alert(), drbd_err(), drbd_warn(), and drbd_info() to work for a resource, device, or connection so that we don't have to introduce three separate sets of macros for that. The drbd_printk() macro itself is pretty ugly, but that problem is limited to one place in the code. Using drbd_printk() on an object type which it doesn't understand results in an undefined drbd_printk_with_wrong_object_type symbol. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Remove the terrible DEV hackAndreas Gruenbacher9-283/+298
DRBD was using dev_err() and similar all over the code; instead of having to write dev_err(disk_to_dev(device->vdisk), ...) to convert a drbd_device into a kernel device, a DEV macro was used which implicitly references the device variable. This is terrible; introduce separate drbd_err() and similar macros with an explicit device parameter instead. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Turn connection->volumes into connection->peer_devicesAndreas Gruenbacher6-92/+136
Let connection->peer_devices point to peer devices; connection->volumes was pointing to devices. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Move resource options from connection to resourceAndreas Gruenbacher4-22/+25
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: conn_try_disconnect(): Use parameter instead of the global variableAndreas Gruenbacher1-1/+1
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Replace conn_get_by_name() with drbd_find_resource()Andreas Gruenbacher3-20/+30
So far, connections and resources always come in pairs, but in the future with multiple connections per resource, the names will stick with the resources. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Add struct drbd_resource->devicesAndreas Gruenbacher3-20/+51
This allows to access the volumes of a resource by number. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Minor cleanup in conn_new_minor()Andreas Gruenbacher1-10/+9
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Add struct drbd_device->resourceAndreas Gruenbacher3-2/+4
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: drbd_adm_down(): Move valid resource name check to drbd_adm_prepare()Andreas Gruenbacher1-6/+3
Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Add struct drbd_resourceAndreas Gruenbacher3-78/+179
In a first step, each resource has exactly one connection, and both objects are allocated at the same time. The final result will be one resource and zero or more connections. Only allow to delete a resource if all its connections are C_STANDALONE. Stop the worker threads of all connections early enough. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Improve some function and variable namingAndreas Gruenbacher7-47/+47
Rename functions conn_destroy() -> drbd_destroy_connection(), drbd_minor_destroy() -> drbd_destroy_device() drbd_adm_add_minor() -> drbd_adm_add_minor() drbd_adm_delete_minor() -> drbd_adm_del_minor() Rename global variable minors to drbd_devices Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Introduce "peer_device" object between "device" and "connection"Andreas Gruenbacher11-377/+416
In a setup where a device (aka volume) can replicate to multiple peers and one connection can be shared between multiple devices, we need separate objects to represent devices on peer nodes and network connections. As a first step to introduce multiple connections per device, give each drbd_device object a single drbd_peer_device object which connects it to a drbd_connection object. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Rename drbd_tconn -> drbd_connectionAndreas Gruenbacher12-1447/+1447
sed -i -e 's:all_tconn:connections:g' -e 's:tconn:connection:g' Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Rename "mdev" to "device"Andreas Gruenbacher13-3400/+3400
sed -i -e 's:mdev:device:g' Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Rename struct drbd_conf -> struct drbd_deviceAndreas Gruenbacher13-562/+562
sed -i -e 's:\<drbd_conf\>:drbd_device:g' Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Split off on-the-wire protocol definitionsAndreas Gruenbacher7-292/+301
Keep the protocol definitions separate from the kernel code; they are useful in their own right. Signed-off-by: Andreas Gruenbacher <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drbd: Add missing error gotoPhilipp Reisner1-0/+1
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2014-02-17drivers: block: Remove unused function drbd_bm_write_lazy() in drbd_bitmap.cRashika Kheria1-10/+0
Remove unused function drbd_bm_write_lazy() in drbd/drbd_bitmap.c. This eliminates the following warning in drbd/drbd_bitmap.c: drivers/block/drbd/drbd_bitmap.c:1208:5: warning: no previous prototype for ‘drbd_bm_write_lazy’ [-Wmissing-prototypes] Signed-off-by: Rashika Kheria <[email protected]> Reviewed-by: Josh Triplett <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drivers: block: Mark function seq_printf_with_thousands_grouping() as static ↵Rashika Kheria1-1/+1
in drbd_proc.c Mark function seq_printf_with_thousands_grouping() as static in drbd/drbd_proc.c because it is not used outside this file. This eliminates the following warning in drbd/drbd_proc.c: drivers/block/drbd/drbd_proc.c:49:6: warning: no previous prototype for ‘seq_printf_with_thousands_grouping’ [-Wmissing-prototypes] Signed-off-by: Rashika Kheria <[email protected]> Reviewed-by: Josh Triplett <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drivers: block: Mark the function as static in drbd_worker.cRashika Kheria1-6/+6
Mark functions drbd_endio_read_sec_final(), drbd_send_barrier(), need_to_send_barrier(), dequeue_work_batch(), dequeue_work_item() and wait_for_work() as static in drbd/drbd_worker.c because they are not used outside this file. This eliminates the following warnings in drbd/drbd_worker.c: drivers/block/drbd/drbd_worker.c:99:6: warning: no previous prototype for ‘drbd_endio_read_sec_final’ [-Wmissing-prototypes] drivers/block/drbd/drbd_worker.c:1276:5: warning: no previous prototype for ‘drbd_send_barrier’ [-Wmissing-prototypes] drivers/block/drbd/drbd_worker.c:1774:6: warning: no previous prototype for ‘need_to_send_barrier’ [-Wmissing-prototypes] drivers/block/drbd/drbd_worker.c:1798:6: warning: no previous prototype for ‘dequeue_work_batch’ [-Wmissing-prototypes] drivers/block/drbd/drbd_worker.c:1806:6: warning: no previous prototype for ‘dequeue_work_item’ [-Wmissing-prototypes] drivers/block/drbd/drbd_worker.c:1815:6: warning: no previous prototype for ‘wait_for_work’ [-Wmissing-prototypes] Signed-off-by: Rashika Kheria <[email protected]> Reviewed-by: Josh Triplett <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drivers: block: Move prototype declaration to appropriate header file from ↵Rashika Kheria2-2/+4
drbd_main.c Move prototype declaration of functions drbdd_init() and drbd_asender() from drbd/drbd_main.c to header file drbd/drbd_int.h because these functions are used by more than one file. This eliminates the following warning in drbd/drbd_receiver.c: drivers/block/drbd/drbd_receiver.c:4836:5: warning: no previous prototype for ‘drbdd_init’ [-Wmissing-prototypes] drivers/block/drbd/drbd_receiver.c:5245:5: warning: no previous prototype for ‘drbd_asender’ [-Wmissing-prototypes] Signed-off-by: Rashika Kheria <[email protected]> Reviewed-by: Josh Triplett <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drivers: block: Mark functions as static in drbd_receiver.cRashika Kheria1-1/+2
Mark functions conn_wait_active_ee_empty() and drbd_crypto_alloc_digest_safe() as static in drbd/drbd_receiver.c because they are not used outside this file. This eliminates the following warning in drbd/drbd_receiver.c: drivers/block/drbd/drbd_receiver.c:1401:6: warning: no previous prototype for ‘conn_wait_active_ee_empty’ [-Wmissing-prototypes] drivers/block/drbd/drbd_receiver.c:3259:21: warning: no previous prototype for ‘drbd_crypto_alloc_digest_safe’ [-Wmissing-prototypes] Signed-off-by: Rashika Kheria <[email protected]> Reviewed-by: Josh Triplett <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drivers: block: Mark functions as static in drbd_req.cRashika Kheria1-2/+2
Mark functions drbd_request_prepare() and find_oldest_request() as static in drbd/drbd_req.c because they are not used outside this file. This eliminates the following warnings in drbd/drbd_req.c: drivers/block/drbd/drbd_req.c:1037:1: warning: no previous prototype for ‘drbd_request_prepare’ [-Wmissing-prototypes] drivers/block/drbd/drbd_req.c:1323:22: warning: no previous prototype for ‘find_oldest_request’ [-Wmissing-prototypes] Signed-off-by: Rashika Kheria <[email protected]> Reviewed-by: Josh Triplett <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drivers: block: Move prototype declaration of function tl_abort_disk_io() to ↵Rashika Kheria2-3/+1
appropriate header file from drbd_state.c Move the prototype declaration of function tl_abort_disk_io() from drbd/drbd_state.c to appropriate header file drbd/drbd_int.h because it is used by more than 2 files. This eliminates the following warnings in drbd/drbd_main.c: drivers/block/drbd/drbd_main.c:310:6: warning: no previous prototype for ‘tl_abort_disk_io’ [-Wmissing-prototypes] Signed-off-by: Rashika Kheria <[email protected]> Reviewed-by: Josh Triplett <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drivers: block: Mark function as static in drbd_actlog.cRashika Kheria1-0/+1
Mark the function drbd_al_begin_io_prepare() as static in drbd/drbd_actlog.c because it is not used outside this file. This eliminates the following warnings in drbd/drbd_actlog.c: drivers/block/drbd/drbd_actlog.c:277:6: warning: no previous prototype for ‘drbd_al_begin_io_prepare’ [-Wmissing-prototypes] Signed-off-by: Rashika Kheria <[email protected]> Reviewed-by: Josh Triplett <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>
2014-02-17drivers: block: Mark functions as static in drbd_nl.cRashika Kheria1-4/+5
Mark functions conn_khelper(), nla_put_drbd_cfg_context(), nla_put_status_info() and get_one_status() as static in drbd/drbd_nl.c because they are not used outside this file. This eliminates the following warnings in drbd/drbd_nl.c: drivers/block/drbd/drbd_nl.c:365:5: warning: no previous prototype for ‘conn_khelper’ [-Wmissing-prototypes] drivers/block/drbd/drbd_nl.c:2727:5: warning: no previous prototype for ‘nla_put_drbd_cfg_context’ [-Wmissing-prototypes] drivers/block/drbd/drbd_nl.c:2753:5: warning: no previous prototype for ‘nla_put_status_info’ [-Wmissing-prototypes] drivers/block/drbd/drbd_nl.c:2895:5: warning: no previous prototype for ‘get_one_status’ [-Wmissing-prototypes] Signed-off-by: Rashika Kheria <[email protected]> Reviewed-by: Josh Triplett <[email protected]> Signed-off-by: Philipp Reisner <[email protected]>