Andreas Gruenbacher
6c1005e74d
drbd: drbd_send_drequest(): Return 0 upon success and an error code otherwise
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2012-11-08 16:44:39 +01:00
Andreas Gruenbacher
5b9f499c66
drbd: drbd_send_ov_request(): Return 0 upon success and an error code otherwise
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2012-11-08 16:44:39 +01:00
Andreas Gruenbacher
fa79abd893
drbd: drbd_send_ack_ex(): Return 0 upon success and an error code otherwise
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2012-11-08 16:44:38 +01:00
Andreas Gruenbacher
dd5161218b
drbd: drbd_send_ack(): Return 0 upon success and an error code otherwise
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2012-11-08 16:44:38 +01:00
Andreas Gruenbacher
04dfa13788
drbd: _drbd_send_cmd(): Return 0 upon success and an error code otherwise
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2012-11-08 16:44:31 +01:00
Andreas Gruenbacher
11b0be28e5
drbd: drbd_get_data_sock(): Return 0 upon success and an error code otherwise
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2012-11-08 16:44:29 +01:00
Lars Ellenberg
f399002e68
drbd: distribute former syncer_conf settings to disk, connection, and resource level
...
This commit breaks the API again.
Move per-volume former syncer options into disk_conf.
Move per-connection former syncer options into net_conf.
Renamed the remainign sync_conf to res_opts
Syncer settings have been changeable at runtime, so we need to prepare
for these settings to be runtime-changeable in their new home as well.
Introduce new configuration operations, and share the netlink attribute
between "attach" (create new disk) and "disk-opts" (change options).
Same for "connect" and "net-opts".
Some fields cannot be changed at runtime, however.
Introduce a new flag GENLA_F_INVARIANT to be able to trigger on that in
the generated validation and assignment functions.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2012-11-08 16:44:20 +01:00
Philipp Reisner
38fa9988fa
drbd: Do not modify the connection state with something else that conn_request_state()
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2012-11-04 00:16:26 +01:00
Philipp Reisner
81a5d60ecf
drbd: Replaced the minor_table array by an idr
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-10-14 16:48:01 +02:00
Philipp Reisner
0e29d163f7
drbd: Reworked the unconfiguring and thread stopping code
...
* Moved CONFIG_PENDING and DEVICE_DYING from mdev to tconn.
* Renamed drbd_reconfig_start() and drbd_reconfig_done() to
conn_reconfig_start() and conn_reconfig_done().
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-10-14 16:47:55 +02:00
Lars Ellenberg
9676c76097
drbd: fix a wrong likely(), updated comments
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-10-14 16:47:47 +02:00
Andreas Gruenbacher
fcefa62e4c
drbd: Rename drbd_endio_{pri,sec} -> drbd_{,peer_}request_endio
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-10-14 16:47:36 +02:00
Andreas Gruenbacher
fbe29dec98
drbd: Rename drbd_submit_ee -> drbd_submit_peer_request
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-10-14 16:47:35 +02:00
Philipp Reisner
8410da8f0e
drbd: Introduced tconn->cstate_mutex
...
In compatibility mode with old DRBDs, use that as the state_mutex
as well.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-10-14 16:45:01 +02:00
Philipp Reisner
dad2055481
drbd: Removed drbd_state_lock() and drbd_state_unlock()
...
The lock they constructed is only taken when the state_mutex
was already taken. It is superficial.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-10-14 16:45:01 +02:00
Philipp Reisner
bbeb641c3e
drbd: Killed volume0; last step of multi-volume-enablement
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-10-14 16:44:58 +02:00
Philipp Reisner
2a67d8b93b
drbd: Converted drbd_send_ping() and related functions from mdev to tconn
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:33:16 +02:00
Philipp Reisner
00d56944ff
drbd: Generalized the work callbacks
...
No longer work callbacks must operate on a mdev. From now on they
can also operate on a tconn.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:33:15 +02:00
Philipp Reisner
392c880192
drbd: drbd_thread has now a pointer to a tconn instead of to a mdev
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:33:13 +02:00
Philipp Reisner
19393e105f
drbd: Converted drbd_worker() from mdev to tconn
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:33:12 +02:00
Philipp Reisner
f1b3a6ec7d
drbd: Consolidated the setup of the thread name into the framework
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:33:09 +02:00
Philipp Reisner
a21e929827
drbd: Moved the mdev member into drbd_work (from drbd_request and drbd_peer_request)
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:33:08 +02:00
Philipp Reisner
808222845d
drbd: Converted drbd_calc_cpu_mask() and drbd_thread_current_set_cpu() from mdev to tconn
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:33:04 +02:00
Philipp Reisner
611208706f
drbd: Converted drbd_(get|put)_data_sock() and drbd_send_cmd2() to tconn
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:32:59 +02:00
Philipp Reisner
0625ac190d
drbd: Converted wake_asender() and request_ping() from mdev to tconn
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:26:58 +02:00
Philipp Reisner
e64a329459
drbd: Do no sleep long in drbd_start_resync
...
Work items that sleep too long can cause requests to take as
long as the longest sleeping work item.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:26:47 +02:00
Philipp Reisner
1f04af33fe
drbd: Moved code
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:26:46 +02:00
Philipp Reisner
bc31fe3352
drbd: Eliminated the user of drbd_task_to_thread()
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:26:45 +02:00
Andreas Gruenbacher
db830c464b
drbd: Local variable renames: e -> peer_req
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:26:42 +02:00
Andreas Gruenbacher
f6ffca9f42
drbd: Rename struct drbd_epoch_entry to struct drbd_peer_request
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:26:39 +02:00
Andreas Gruenbacher
5e4722645a
drbd: _req_conflicts(): Get rid of the epoch_entries tree
...
Instead of keeping a separate tree for local and remote write requests
for finding requests and for conflict detection, use the same tree for
both purposes. Introduce a flag to allow distinguishing the two
possible types of entries in this tree.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-09-28 10:26:32 +02:00
Philipp Reisner
c012949a40
drbd: Replaced all p_header80 with a generic p_header
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-29 11:30:26 +02:00
Philipp Reisner
87eeee41f8
drbd: moved req_lock and transfer log from mdev to tconn
...
sed -i \
-e 's/mdev->req_lock/mdev->tconn->req_lock/g' \
-e 's/mdev->unused_spare_tle/mdev->tconn->unused_spare_tle/g' \
-e 's/mdev->newest_tle/mdev->tconn->newest_tle/g' \
-e 's/mdev->oldest_tle/mdev->tconn->oldest_tle/g' \
-e 's/mdev->out_of_sequence_requests/mdev->tconn->out_of_sequence_requests/g' \
*.[ch]
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-29 11:30:15 +02:00
Philipp Reisner
31890f4ab2
drbd: moved agreed_pro_version, last_received and ko_count to tconn
...
sed -i \
-e 's/mdev->agreed_pro_version/mdev->tconn->agreed_pro_version/g' \
-e 's/mdev->last_received/mdev->tconn->last_received/g' \
-e 's/mdev->ko_count/mdev->tconn->ko_count/g' \
*.[ch]
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-29 11:27:07 +02:00
Philipp Reisner
e6b3ea83bc
drbd: moved receiver, worker and asender from mdev to tconn
...
Patch mostly:
sed -i -e 's/mdev->receiver/mdev->tconn->receiver/g' \
-e 's/mdev->worker/mdev->tconn->worker/g' \
-e 's/mdev->asender/mdev->tconn->asender/g' \
*.[ch]
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-29 11:27:06 +02:00
Philipp Reisner
e42325a576
drbd: moved data and meta from mdev to tconn
...
Patch mostly:
sed -i -e 's/mdev->data/mdev->tconn->data/g' \
-e 's/mdev->meta/mdev->tconn->meta/g' \
*.[ch]
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-29 11:27:05 +02:00
Philipp Reisner
89e58e755e
drbd: moved net_conf from mdev to tconn
...
Besides moving the struct member, everything else is generated by:
sed -i -e 's/mdev->net_conf/mdev->tconn->net_conf/g' \
-e 's/odev->net_conf/odev->tconn->net_conf/g' \
*.[ch]
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-29 11:27:03 +02:00
Andreas Gruenbacher
841ce241fa
drbd: Replace the ERR_IF macro with an assert-like macro
...
Remove the file name and line number from the syslog messages generated:
we have no duplicate function names, and no function contains the same
assertion more than once.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-29 11:26:57 +02:00
Andreas Gruenbacher
e77a0a5cc1
drbd: Convert all constants in enum drbd_thread_state to upper case
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-29 11:26:56 +02:00
Andreas Gruenbacher
8554df1c6d
drbd: Convert all constants in enum drbd_req_event to upper case
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-29 11:26:55 +02:00
Andreas Gruenbacher
bb3bfe9614
drbd: Remove the unused hash tables
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-29 11:26:54 +02:00
Andreas Gruenbacher
010f6e678f
drbd: Put sector and size in struct drbd_epoch_entry into struct drbd_interval
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-29 11:26:52 +02:00
Andreas Gruenbacher
ace652acf2
drbd: Put sector and size in struct drbd_request into struct drbd_interval
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-25 14:58:05 +02:00
Andreas Gruenbacher
579b57ed73
drbd: Magic reserved block_id value cleanup
...
The ID_VACANT definition has become entirely irrelevant by now.
The is_syncer_block_id() macro does not improve the code, so eliminated
it.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-25 14:57:57 +02:00
Andreas Gruenbacher
9a8e77530f
drbd: Consistently use block_id == ID_SYNCER for checksum based resync and online verify
...
DRBD_MAGIC has nothing to do with block ids and the funny values
computed were not actually used, anyway.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-08-25 14:57:55 +02:00
Philipp Reisner
0cfdd247d1
drbd: Use the correct max_bio_size when creating resync requests
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-06-30 09:23:40 +02:00
Bart Van Assche
24c4830c8e
drbd: Fix spelling
...
Found these with the help of ispell -l.
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
2011-05-24 10:21:29 +02:00
Lars Ellenberg
53ea433145
drbd: fix potential distributed deadlock
...
We limit ourselves to a configurable maximum number of pages used as
temporary bio pages.
If the configured "max_buffers" is not big enough to match the bandwidth
of the respective deployment, a distributed deadlock could be triggered
by e.g. fast online verify and heavy application IO.
TCP connections would block on congestion, because both receivers
would wait on pages to become available.
Fortunately the respective senders in this case would be able to give
back some pages already. So do that.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-05-24 10:02:41 +02:00
Philipp Reisner
7961243b7b
drbd: Fixed handling of read errors on a 'VerifyS' node
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-03-10 11:48:20 +01:00
Philipp Reisner
8f21420ebd
drbd: Fixed handling of read errors on a 'VerifyT' node
...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com >
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com >
2011-03-10 11:48:18 +01:00