diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2015-02-16 03:07:18 +0300 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2015-02-16 03:07:18 +0300 |
| commit | 97ae2b5c17d6cc988c6d49ae0cf95befb6b7081c (patch) | |
| tree | a71115af6c30fdc9de0878e2cf1c51e95b17a324 /drivers/md/dm.c | |
| parent | ef47fa5280819deaa8da7e0db1d875b225de5838 (diff) | |
| parent | c8af781ebf3ffe37c18c34ca89e29c085560e561 (diff) | |
| download | linux-97ae2b5c17d6cc988c6d49ae0cf95befb6b7081c.tar.xz | |
Merge branch 'bfin_rotary' into next
Merge bfin_rotary driver changes from Sonic Zhang.
Diffstat (limited to 'drivers/md/dm.c')
| -rw-r--r-- | drivers/md/dm.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index b98cd9d84435..2caf5b374649 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -206,6 +206,9 @@ struct mapped_device { /* zero-length flush that will be cloned and submitted to targets */ struct bio flush_bio; + /* the number of internal suspends */ + unsigned internal_suspend_count; + struct dm_stats stats; }; @@ -2928,7 +2931,7 @@ static void __dm_internal_suspend(struct mapped_device *md, unsigned suspend_fla { struct dm_table *map = NULL; - if (dm_suspended_internally_md(md)) + if (md->internal_suspend_count++) return; /* nested internal suspend */ if (dm_suspended_md(md)) { @@ -2953,7 +2956,9 @@ static void __dm_internal_suspend(struct mapped_device *md, unsigned suspend_fla static void __dm_internal_resume(struct mapped_device *md) { - if (!dm_suspended_internally_md(md)) + BUG_ON(!md->internal_suspend_count); + + if (--md->internal_suspend_count) return; /* resume from nested internal suspend */ if (dm_suspended_md(md)) |
