diff options
| -rw-r--r-- | block/blk-lib.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/block/blk-lib.c b/block/blk-lib.c index 2da76c999ef3..97a733cf3d5f 100644 --- a/block/blk-lib.c +++ b/block/blk-lib.c | |||
| @@ -119,6 +119,14 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector, | |||
| 119 | 119 | ||
| 120 | atomic_inc(&bb.done); | 120 | atomic_inc(&bb.done); |
| 121 | submit_bio(type, bio); | 121 | submit_bio(type, bio); |
| 122 | |||
| 123 | /* | ||
| 124 | * We can loop for a long time in here, if someone does | ||
| 125 | * full device discards (like mkfs). Be nice and allow | ||
| 126 | * us to schedule out to avoid softlocking if preempt | ||
| 127 | * is disabled. | ||
| 128 | */ | ||
| 129 | cond_resched(); | ||
| 122 | } | 130 | } |
| 123 | blk_finish_plug(&plug); | 131 | blk_finish_plug(&plug); |
| 124 | 132 | ||
