#
7961243b |
| 02-Mar-2011 |
Philipp Reisner <philipp.reisner@linbit.com> |
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>
|
#
8f21420e |
| 01-Mar-2011 |
Philipp Reisner <philipp.reisner@linbit.com> |
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>
|
#
c5a91619 |
| 25-Jan-2011 |
Andreas Gruenbacher <agruen@linbit.com> |
drbd: Remove unused function atodb_endio()
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
|
#
10f6d992 |
| 24-Jan-2011 |
Lars Ellenberg <lars.ellenberg@linbit.com> |
drbd: don't BUG_ON, if bio_add_page of a single page to an empty bio fails
Just deal with it more gracefully, if we fail to add even a single page to an empty bio. We used to BUG_ON() there, but it
drbd: don't BUG_ON, if bio_add_page of a single page to an empty bio fails
Just deal with it more gracefully, if we fail to add even a single page to an empty bio. We used to BUG_ON() there, but it has been observed in some Xen deployment, so we need to handle that case more robustly now.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|
#
62b0da3a |
| 20-Jan-2011 |
Lars Ellenberg <lars.ellenberg@linbit.com> |
drbd: log UUIDs whenever they change
All decisions about sync, sync direction, and wether or not to allow a connect or attach are based on our set of UUIDs to tag a data generation.
Log changes to
drbd: log UUIDs whenever they change
All decisions about sync, sync direction, and wether or not to allow a connect or attach are based on our set of UUIDs to tag a data generation.
Log changes to the UUIDs whenever they occur, logging "new current UUID P:Q:R:S" is more useful than "Creating new current UUID".
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|
#
6c922ed5 |
| 12-Jan-2011 |
Lars Ellenberg <lars.ellenberg@linbit.com> |
drbd: only generate and send a new sync uuid after a successful state change
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
|
#
20ee6390 |
| 18-Jan-2011 |
Philipp Reisner <philipp.reisner@linbit.com> |
drbd: cleaned up __set_current_state() followed by schedule_timeout() calls
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
|
#
370a43e7 |
| 14-Jan-2011 |
Philipp Reisner <philipp.reisner@linbit.com> |
drbd: Work on the Ahead -> SyncSource transition
The test if rs_pending_cnt == 0 was too weak. Using Test for unacked_cnt == 0 instead. Moved that into the worker.
Since unacked_cnt gets already in
drbd: Work on the Ahead -> SyncSource transition
The test if rs_pending_cnt == 0 was too weak. Using Test for unacked_cnt == 0 instead. Moved that into the worker.
Since unacked_cnt gets already increased when an P_RS_DATA_REQ comes in.
Also using a timer to make Ahead -> SyncSource -> Ahead cycles slower...
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|
#
794abb75 |
| 27-Dec-2010 |
Philipp Reisner <philipp.reisner@linbit.com> |
drbd: Cleaned up the resync timer logic
Besides removed a few lines of code, this moves the inspection of the state from before the queuing process to after the queuing. I.e. more closely to the act
drbd: Cleaned up the resync timer logic
Besides removed a few lines of code, this moves the inspection of the state from before the queuing process to after the queuing. I.e. more closely to the actual invocation of the work.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|
#
d612d309 |
| 27-Dec-2010 |
Philipp Reisner <philipp.reisner@linbit.com> |
drbd: No longer answer P_RS_DATA_REQUEST packets when in C_AHEAD mode
When the sync source node replies to a P_RS_DATA_REQUEST packet when it is already in ahead mode. I.e. those two packets crossed
drbd: No longer answer P_RS_DATA_REQUEST packets when in C_AHEAD mode
When the sync source node replies to a P_RS_DATA_REQUEST packet when it is already in ahead mode. I.e. those two packets crossed each other on the wire, that may lead to diverging bitmaps.
This never happens in a well-tuned-system. In a well-tuned- system the resync controller has reduced the resync speed to zero long before we got into ahead-mode.
But we have to be prepared for the not-well-tuned-system of course as well. Because -> diverging bitmaps = non terminating resync.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|
#
07194272 |
| 20-Dec-2010 |
Lars Ellenberg <lars.ellenberg@linbit.com> |
drbd: ratelimit io error messages
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
|
#
5a22db89 |
| 17-Dec-2010 |
Lars Ellenberg <lars.ellenberg@linbit.com> |
drbd: serialize sending of resync uuid with pending w_send_oos
To improve the latency of IO requests during bitmap exchange, we recently allowed writes while waiting for the bitmap, sending "set out
drbd: serialize sending of resync uuid with pending w_send_oos
To improve the latency of IO requests during bitmap exchange, we recently allowed writes while waiting for the bitmap, sending "set out-of-sync" information packets for any newly dirtied bits.
We have to make sure that the new resync-uuid does not overtake these "set oos" packets. Once the resync-uuid is received, the sync target starts the resync process, and expects the bitmap to only be cleared, not re-set.
If we use this protocol extension, we queue the generation and sending of the resync-uuid on the worker, which naturally serializes with all previously queued packets.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|
#
02851e9f |
| 16-Dec-2010 |
Lars Ellenberg <lars.ellenberg@linbit.com> |
drbd: move bitmap write from resync_finished to after_state_change
We must not call it directly from resync_finished, as we may be in either receiver or worker context there.
Signed-off-by: Philipp
drbd: move bitmap write from resync_finished to after_state_change
We must not call it directly from resync_finished, as we may be in either receiver or worker context there.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|
#
4b0715f0 |
| 14-Dec-2010 |
Lars Ellenberg <lars.ellenberg@linbit.com> |
drbd: allow petabyte storage on 64bit arch
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
|
#
19f843aa |
| 15-Dec-2010 |
Lars Ellenberg <lars.ellenberg@linbit.com> |
drbd: bitmap keep track of changes vs on-disk bitmap
When we set or clear bits in a bitmap page, also set a flag in the page->private pointer.
This allows us to skip writes of unchanged pages.
Sig
drbd: bitmap keep track of changes vs on-disk bitmap
When we set or clear bits in a bitmap page, also set a flag in the page->private pointer.
This allows us to skip writes of unchanged pages.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|
#
81e84650 |
| 09-Dec-2010 |
Andreas Gruenbacher <agruen@linbit.com> |
drbd: Use the standard bool, true, and false keywords
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
|
Revision tags: v2.6.37-rc5 |
|
#
09b9e797 |
| 03-Dec-2010 |
Philipp Reisner <philipp.reisner@linbit.com> |
drbd: Implemented the before-resync-source handler
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
|
Revision tags: v2.6.37-rc4, v2.6.37-rc3, v2.6.37-rc2 |
|
#
9d77a5fe |
| 07-Nov-2010 |
Philipp Reisner <philipp.reisner@linbit.com> |
drbd: Make some functions static
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
|
#
e3555d85 |
| 07-Nov-2010 |
Philipp Reisner <philipp.reisner@linbit.com> |
drbd: Implemented priority inheritance for resync requests
We only issue resync requests if there is no significant application IO going on. = Application IO has higher priority than resnyc IO.
If
drbd: Implemented priority inheritance for resync requests
We only issue resync requests if there is no significant application IO going on. = Application IO has higher priority than resnyc IO.
If application IO can not be started because the resync process locked an resync_lru entry, start the IO operations necessary to release the lock ASAP.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|
Revision tags: v2.6.37-rc1 |
|
#
59817f4f |
| 29-Oct-2010 |
Philipp Reisner <philipp.reisner@linbit.com> |
drbd: Do not cleanup resync LRU for the Ahead/Behind SyncSource/SyncTarget transitions
This one should be replaced with moving this cleanup to the 'right' position.
Signed-off-by: Philipp Reisner <
drbd: Do not cleanup resync LRU for the Ahead/Behind SyncSource/SyncTarget transitions
This one should be replaced with moving this cleanup to the 'right' position.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|
#
c4752ef1 |
| 27-Oct-2010 |
Philipp Reisner <philipp.reisner@linbit.com> |
drbd: When proxy's buffer drained off go into regular resync mode
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
|
#
73a01a18 |
| 27-Oct-2010 |
Philipp Reisner <philipp.reisner@linbit.com> |
drbd: New packet for Ahead/Behind mode: P_OUT_OF_SYNC
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
|
#
1816a2b4 |
| 11-Nov-2010 |
Lars Ellenberg <lars.ellenberg@linbit.com> |
drbd: properly use max_hw_sectors to limit the our bio size
To ease tracking of bios in some hash tables, we want it to not cross certain boundaries (128k, used to be 32k). We limit the maximum bio
drbd: properly use max_hw_sectors to limit the our bio size
To ease tracking of bios in some hash tables, we want it to not cross certain boundaries (128k, used to be 32k). We limit the maximum bio size using queue parameters.
Historically some defines and variables we use there have been named max_segment_size, which was misguided. Rename them to max_bio_size, and use [blk_]queue_max_hw_sectors where appropriate.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|
#
2649f080 |
| 05-Nov-2010 |
Lars Ellenberg <lars.ellenberg@linbit.com> |
drbd: use the resync controller for online-verify requests as well
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
|
#
e65f440d |
| 05-Nov-2010 |
Lars Ellenberg <lars.ellenberg@linbit.com> |
drbd: factor out drbd_rs_number_requests
Preparation patch to be able to use the auto-throttling resync controller for online-verify requests as well.
Signed-off-by: Philipp Reisner <philipp.reisne
drbd: factor out drbd_rs_number_requests
Preparation patch to be able to use the auto-throttling resync controller for online-verify requests as well.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
show more ...
|