aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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]>
2010-08-22Merge branch 'kvm-updates/2.6.36' of git://git.kernel.org/pub/scm/virt/kvm/kvmLinus Torvalds3-3/+5
* 'kvm-updates/2.6.36' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: PIT: free irq source id in handling error path KVM: destroy workqueue on kvm_create_pit() failures KVM: fix poison overwritten caused by using wrong xstate size
2010-08-22Merge branch 'for-linus' of ↵Linus Torvalds28-2417/+2663
git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel: (58 commits) drm/i915,intel_agp: Add support for Sandybridge D0 drm/i915: fix render pipe control notify on sandybridge agp/intel: set 40-bit dma mask on Sandybridge drm/i915: Remove the conflicting BUG_ON() drm/i915/suspend: s/IS_IRONLAKE/HAS_PCH_SPLIT/ drm/i915/suspend: Flush register writes before busy-waiting. i915: disable DAC on Ironlake also when doing CRT load detection. drm/i915: wait for actual vblank, not just 20ms drm/i915: make sure eDP PLL is enabled at the right time drm/i915: fix VGA plane disable for Ironlake+ drm/i915: eDP mode set sequence corrections drm/i915: add panel reset workaround drm/i915: Enable RC6 on Ironlake. drm/i915/sdvo: Only set is_lvds if we have a valid fixed mode. drm/i915: Set up a render context on Ironlake drm/i915 invalidate indirect state pointers at end of ring exec drm/i915: Wake-up wait_request() from elapsed hang-check (v2) drm/i915: Apply i830 errata for cursor alignment drm/i915: Only update i845/i865 CURBASE when disabled (v2) drm/i915: FBC is updated within set_base() so remove second call in mode_set() ...
2010-08-22Merge branch 'for-linus' of ↵Linus Torvalds2-3/+3
git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6: slab: fix object alignment slub: add missing __percpu markup in mm/slub_def.h
2010-08-22Merge branch 'for-linus' of ↵Linus Torvalds1-1/+3
git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: nilfs2: wait for discard to finish
2010-08-21drm/i915,intel_agp: Add support for Sandybridge D0Zhenyu Wang3-0/+4
Signed-off-by: Zhenyu Wang <[email protected]> Signed-off-by: Eric Anholt <[email protected]>
2010-08-21drm/i915: fix render pipe control notify on sandybridgeZhenyu Wang1-1/+6
This one is missed in last pipe control fix for sandybridge, that really unmask interrupt bit for notify in render engine IMR. Signed-off-by: Zhenyu Wang <[email protected]> Signed-off-by: Eric Anholt <[email protected]>
2010-08-21agp/intel: set 40-bit dma mask on SandybridgeZhenyu Wang1-9/+15
Signed-off-by: Zhenyu Wang <[email protected]> Signed-off-by: Eric Anholt <[email protected]>
2010-08-21drm/i915: Remove the conflicting BUG_ON()Chris Wilson1-2/+0
We now attempt to free "active" objects following a GPU hang as either the GPU will be reset or the hang is permenant. In either case, the GPU writes will not be flushed to main memory and it should be safe to return that memory back to the system. The BUG_ON(active) is thus overkill and can erroneously fire after a EIO. Signed-off-by: Chris Wilson <[email protected]> Signed-off-by: Eric Anholt <[email protected]>
2010-08-21drm/i915/suspend: s/IS_IRONLAKE/HAS_PCH_SPLIT/Chris Wilson1-37/+37
For the shared paths on the next generation chipsets. Signed-off-by: Chris Wilson <[email protected]> Signed-off-by: Eric Anholt <[email protected]>
2010-08-21drm/i915/suspend: Flush register writes before busy-waiting.Chris Wilson1-9/+18
Signed-off-by: Chris Wilson <[email protected]> Signed-off-by: Eric Anholt <[email protected]>