Commit:     94d6351e147231b2c5a9512d69693ee8ac0c204d
Parent:     73d410c0137f63c6597e9763c81e5f4d015e9940
Author:     Milan Broz <[EMAIL PROTECTED]>
AuthorDate: Fri Feb 8 02:10:27 2008 +0000
Committer:  Alasdair G Kergon <[EMAIL PROTECTED]>
CommitDate: Fri Feb 8 02:10:27 2008 +0000

    dm: split dm_suspend io_lock hold into two
    Change io_locking to allow processing flush in separate thread.
    Because we have DMF_BLOCK_IO already set, any possible
    new ios are queued in dm_requests now.
    In the case of interrupting previous wait there can be more
    ios queued (we unlocked io_lock for a while) but this is safe.
    Signed-off-by: Milan Broz <[EMAIL PROTECTED]>
    Signed-off-by: Alasdair G Kergon <[EMAIL PROTECTED]>
 drivers/md/dm.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 5191954..11f422e 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1434,9 +1434,11 @@ int dm_suspend(struct mapped_device *md, unsigned 
        if (noflush)
+       up_write(&md->io_lock);
        /* were we interrupted ? */
        if (pending) {
+               down_write(&md->io_lock);
@@ -1444,7 +1446,6 @@ int dm_suspend(struct mapped_device *md, unsigned 
                r = -EINTR;
                goto out; /* pushback list is already flushed, so skip flush */
-       up_write(&md->io_lock);
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to