aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-10-14drbd: Bugfix: rs_in_flight could become wrong if read_for_csum() requested ↵Philipp Reisner1-1/+3
reschedule later Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: The new, smarter resync speed controllerPhilipp Reisner5-1/+151
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: New sync_param packet, that includes the parameters of the new controllerPhilipp Reisner4-8/+37
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: New sync parameters for the smart resync rate controllerPhilipp Reisner4-13/+25
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: fix list corruption (recent regression)Lars Ellenberg1-25/+17
The commit 288f422ec13667de40b278535d2a5fb5c77352c4 drbd: Track all IO requests on the TL, not writes only moved a list_add_tail(req, ) into a region where req may have just been freed due to conflict detection. Fix this by adding a proper cleanup section for that code path. Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Initialize all members of sync_conf to their defaults [Bugz 315]Philipp Reisner1-1/+2
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Make sure tl_restart(, resend) can not get called multiple times for a ↵Philipp Reisner1-16/+15
new connection Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Do not try to free tl_hash in drbd_disconnect() when IO is suspendedPhilipp Reisner4-26/+43
We may not free tl_hash when IO is suspended, since we can not wait until ap_bio_cnt reaches zero. We can do this after susp reched 0, since then tl_clear was called Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Allow attach while IO is suspendedPhilipp Reisner1-1/+1
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Allow tl_restart() to do IO completion while IO is suspendedPhilipp Reisner1-14/+20
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Fixed a deadlock, probably only affected UP machinesPhilipp Reisner3-2/+4
After disconnect (most likely mdev->net_cnt == 0) and we are still in an unstable state (!drbd_state_is_stable()). When we get an IO request in drbd_get_max_buffers() (called from __inc_ap_bio_cond(), called from inc_ap_bio()) we wake up misc_wait. Misc_wait is also used in inc_ap_bio() to sleep until the outcome of __inc_ap_bio_cond() changes. => Busy loop! Solution: Have a dedicated wait queue for get_net_conf() and put_net_conf(). Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Do not do a hard state change when establishing a connection [bugz 304]Philipp Reisner1-1/+3
Make sure the state engine can deny two primaries to connect Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Ensure that the peer was not rebootet in the meantime before resending TLPhilipp Reisner3-5/+13
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Delayed creation of current-UUIDPhilipp Reisner3-6/+27
When a fencing policy of "resource-and-stonith" is configured, and DRBD looses connection to it's peer, we can delay the creation of a new current-UUID until IO gets thawed. That allows one to deploy fence-peer handlers that actually commit suicide on the machine they get started. Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Run the fence-peer helper asynchronouslyPhilipp Reisner3-7/+25
Since we can not thaw the transfer log, the next logical step is to allow reconnects while the fence-peer handler runs. Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Reduce the verbosity of some state transitionsPhilipp Reisner1-7/+1
State transitions in the space of non-allowed states used to be very noisy. Reduce that, since that has little value for the majority of the user base. Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Removing a by now obsolete clause in the state sanitizingPhilipp Reisner1-3/+0
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Now we need to handle the ed_uuid of an diskless, unconnected primary ↵Philipp Reisner2-1/+8
correctly Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Disabled the crashed_primary detection for re-attach of last data ↵Philipp Reisner1-1/+3
while IO is frozen Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Do not allow a fencing-policy of resource-and-stonith with protocol APhilipp Reisner3-2/+21
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Finished the "on-no-data-accessible suspend-io;" functionalityPhilipp Reisner9-1/+90
When no data is accessible (no connection to the peer, nor a local disk) allow the user to select to freeze all IO operations instead of getting IO errors. Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Removed redundant error checks in the request code pathPhilipp Reisner1-15/+0
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: factored drbd_req_make_private_bio() out of drbd_req_new()Philipp Reisner1-9/+15
Preparing tl_thaw_dio() Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Do not send two barriers without any writes between themPhilipp Reisner1-2/+7
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: factored tl_restart() out of tl_clear().Philipp Reisner5-40/+103
If IO was frozen for a temporal network outage, resend the content of the transfer-log into the newly established connection. Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: mod_req has now a return valuePhilipp Reisner2-6/+16
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: Track all IO requests on the TL, not writes onlyPhilipp Reisner4-47/+23
With that the drbd_fail_pending_reads() function becomes obsolete. Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-10-14drbd: renamed drbd_tl_epoch.n_req to drbd_tl_epoch.n_writesPhilipp Reisner3-9/+9
Signed-off-by: Philipp Reisner <[email protected]> Signed-off-by: Lars Ellenberg <[email protected]>
2010-09-26amiga floppy: Compile failure fixesVivek Goyal1-3/+2
o Compile fixes for amiga floppy driver. Signed-off-by: Vivek Goyal <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-24atari floppy: Stop sharing request queue across multiple gendisksVivek Goyal1-11/+39
o Use one request queue per gendisk instead of sharing the queue. o Don't have hardware. No compile testing or run time testing done. Completely untested. Signed-off-by: Vivek Goyal <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-24amiga floppy: Stop sharing request queue across multiple gendisksVivek Goyal1-11/+48
o Use one request queue per gendisk instead of sharing request queue o Don't have hardware. No compile testing or run time testing done. Completely untested. Signed-off-by: Vivek Goyal <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-22floppy: switch to one queue per drive instead of sharing a queueJens Axboe1-21/+45
Pretty straight forward conversion. Note that we do round-robin between the drives that have available requests, before we simply used the drive that the IO scheduler told us to. Since the IO scheduler doesn't care about multiple devices per queue, the resulting sort would not have made sense. Fixed by Vivek to get rid of a double lock problem in set_next_request() Signed-off-by: Jens Axboe <[email protected]> Signed-off-by: Vivek Goyal <[email protected]>
2010-09-10cciss: remove some superfluous tests from cciss_bigpassthru()Stephen M. Cameron1-17/+8
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_big_passthruStephen M. Cameron1-156/+151
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_passthruStephen M. Cameron1-111/+101
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_getluninfoStephen M. Cameron1-14/+18
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_getdrivverStephen M. Cameron1-13/+13
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_getfirmverStephen M. Cameron1-12/+15
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_getbustypesStephen M. Cameron1-11/+13
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_getheartbeatStephen M. Cameron1-11/+13
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_setnodenameStephen M. Cameron1-36/+29
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_getnodenameStephen M. Cameron1-13/+15
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_setintinfoStephen M. Cameron1-34/+32
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_getintinfoStephen M. Cameron1-13/+15
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-09-10cciss: factor out cciss_getpciinfoStephen M. Cameron1-17/+17
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-08-23loop: add some basic read-only sysfs attributesMilan Broz1-0/+101
Create /sys/block/loopX/loop directory and provide these attributes: - backing_file - autoclear - offset - sizelimit This loop directory is present only if loop device is configured. To be used in util-linux-ng (and possibly elsewhere like udev rules) where code need to get loop attributes from kernel (and not store duplicate info in userspace). Moreover loop ioctls are not even able to provide full backing file info because of buffer limits. Signed-off-by: Milan Broz <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2010-08-22Merge branch 'radix-tree' of ↵Linus Torvalds1-15/+48
git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev * 'radix-tree' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev: radix-tree: radix_tree_range_tag_if_tagged() can set incorrect tags radix-tree: clear all tags in radix_tree_node_rcu_free
2010-08-22Linux 2.6.36-rc2Linus Torvalds1-1/+1
2010-08-23radix-tree: radix_tree_range_tag_if_tagged() can set incorrect tagsDave Chinner1-13/+44
Commit ebf8aa44beed48cd17893a83d92a4403e5f9d9e2 ("radix-tree: omplement function radix_tree_range_tag_if_tagged") does not safely set tags on on intermediate tree nodes. The code walks down the tree setting tags before it has fully resolved the path to the leaf under the assumption there will be a leaf slot with the tag set in the range it is searching. Unfortunately, this is not a valid assumption - we can abort after setting a tag on an intermediate node if we overrun the number of tags we are allowed to set in a batch, or stop scanning because we we have passed the last scan index before we reach a leaf slot with the tag we are searching for set. As a result, we can leave the function with tags set on intemediate nodes which can be tripped over later by tag-based lookups. The result of these stale tags is that lookup may end prematurely or livelock because the lookup cannot make progress. The fix for the problem involves reocrding the traversal path we take to the leaf nodes, and only propagating the tags back up the tree once the tag is set in the leaf node slot. We are already recording the path for efficient traversal, so there is no additional overhead to do the intermediately node tag setting in this manner. This fixes a radix tree lookup livelock triggered by the new writeback sync livelock avoidance code introduced in commit f446daaea9d4a420d16c606f755f3689dcb2d0ce ("mm: implement writeback livelock avoidance using page tagging"). Signed-off-by: Dave Chinner <[email protected]> Acked-by: Jan Kara <[email protected]>
2010-08-23radix-tree: clear all tags in radix_tree_node_rcu_freeDave Chinner1-2/+4
Commit f446daaea9d4a420d16c606f755f3689dcb2d0ce ("mm: implement writeback livelock avoidance using page tagging") introduced a new radix tree tag, increasing the number of tags in each node from 2 to 3. It did not, however, fix up the code in radix_tree_node_rcu_free() that cleans up after radix_tree_shrink() and hence could leave stray tags set in the new tag array. The result is that the livelock avoidance code added in the the above commit would hit stale tags when doing tag based lookups, resulting in livelocks when trying to traverse the tree. Fix this problem in radix_tree_node_rcu_free() so it doesn't happen again in the future by using a loop to walk all the tags up to RADIX_TREE_MAX_TAGS to clear the stray tags radix_tree_shrink() leaves behind. Signed-off-by: Dave Chinner <[email protected]> Acked-by: Nick Piggin <[email protected]> Acked-by: Jan Kara <[email protected]>