|
|
@@ -485,6 +485,8 @@ repeat:
|
|
|
if (kthread_should_stop())
|
|
|
return 0;
|
|
|
|
|
|
+ sb_start_intwrite(sbi->sb);
|
|
|
+
|
|
|
if (!llist_empty(&fcc->issue_list)) {
|
|
|
struct flush_cmd *cmd, *next;
|
|
|
int ret;
|
|
|
@@ -503,6 +505,8 @@ repeat:
|
|
|
fcc->dispatch_list = NULL;
|
|
|
}
|
|
|
|
|
|
+ sb_end_intwrite(sbi->sb);
|
|
|
+
|
|
|
wait_event_interruptible(*q,
|
|
|
kthread_should_stop() || !llist_empty(&fcc->issue_list));
|
|
|
goto repeat;
|
|
|
@@ -1130,9 +1134,13 @@ static int issue_discard_thread(void *data)
|
|
|
if (kthread_should_stop())
|
|
|
return 0;
|
|
|
|
|
|
+ sb_start_intwrite(sbi->sb);
|
|
|
+
|
|
|
__issue_discard_cmd(sbi, true);
|
|
|
__wait_discard_cmd(sbi, true);
|
|
|
|
|
|
+ sb_end_intwrite(sbi->sb);
|
|
|
+
|
|
|
congestion_wait(BLK_RW_SYNC, HZ/50);
|
|
|
} while (!kthread_should_stop());
|
|
|
return 0;
|