FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Kernel Team

 
 
LinkBack Thread Tools
 
Old 05-26-2011, 11:19 AM
Stefan Bader
 
Default UBUNTU: SAUCE: Convert dm-raid45 to new block plugging

Plugging for IOs to block devices was changed to an explicit, per task
base. This converts the module to the new framework, fixing the compile
failure.

Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
---
debian.master/config/config.common.ubuntu | 2 +-
ubuntu/dm-raid4-5/dm-raid4-5.c | 19 +++++--------------
2 files changed, 6 insertions(+), 15 deletions(-)

diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
index 44cb9ee..fc9081f 100644
--- a/debian.master/config/config.common.ubuntu
+++ b/debian.master/config/config.common.ubuntu
@@ -1185,7 +1185,7 @@ CONFIG_DM_CRYPT=m
CONFIG_DM_MULTIPATH_QL=m
CONFIG_DM_MULTIPATH_ST=m
CONFIG_DM_RAID=m
-# CONFIG_DM_RAID45 is not set
+CONFIG_DM_RAID45=m
CONFIG_DM_UEVENT=y
CONFIG_DM_ZERO=m
CONFIG_DNET=m
diff --git a/ubuntu/dm-raid4-5/dm-raid4-5.c b/ubuntu/dm-raid4-5/dm-raid4-5.c
index 504aee3..fcc782c 100644
--- a/ubuntu/dm-raid4-5/dm-raid4-5.c
+++ b/ubuntu/dm-raid4-5/dm-raid4-5.c
@@ -3275,18 +3275,6 @@ static void do_ios(struct raid_set *rs, struct bio_list *ios)
bio_list_merge_head(ios, &reject);
}

-/* Unplug: let any queued io role on the sets devices. */
-static void do_unplug(struct raid_set *rs)
-{
- struct raid_dev *dev = rs->dev + rs->set.raid_devs;
-
- while (dev-- > rs->dev) {
- /* Only call any device unplug function, if io got queued. */
- if (TestClearDevIoQueued(dev))
- blk_unplug(bdev_get_queue(dev->dev->bdev));
- }
-}
-
/* Send an event in case we're getting too busy. */
static void do_busy_event(struct raid_set *rs)
{
@@ -3326,6 +3314,7 @@ static void do_raid(struct work_struct *ws)
struct raid_set *rs = container_of(ws, struct raid_set,
io.dws_do_raid.work);
struct bio_list *ios = &rs->io.work, *ios_in = &rs->io.in;
+ struct blk_plug plug;

/*
* We always need to end io, so that ios can get errored in
@@ -3342,8 +3331,9 @@ static void do_raid(struct work_struct *ws)
do_sc_resize(rs);

/* Try to recover regions. */
+ blk_start_plug(&plug);
do_recovery(rs);
- do_unplug(rs); /* Unplug the sets device queues. */
+ blk_finish_plug(&plug); /* Unplug the queue */

/* Quickly grab all new ios queued and add them to the work list. */
mutex_lock(&rs->io.in_lock);
@@ -3351,11 +3341,12 @@ static void do_raid(struct work_struct *ws)
bio_list_init(ios_in);
mutex_unlock(&rs->io.in_lock);

+ blk_start_plug(&plug);
if (!bio_list_empty(ios))
do_ios(rs, ios); /* Got ios to work into the cache. */

do_flush(rs); /* Flush any stripes on io list. */
- do_unplug(rs); /* Unplug the sets device queues. */
+ blk_finish_plug(&plug); /* Unplug the queue */
do_busy_event(rs); /* Check if we got too busy. */
}

--
1.7.4.1


--------------060500050908040205090308
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team

--------------060500050908040205090308--
 

Thread Tools




All times are GMT. The time now is 04:27 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org