Re: [PATCH] f2fs: fix the way to wake up issue_flush thread
Please avoid this patch, I make a mistake. On 2018/5/3 15:45, Yunlong Song wrote: Commit 6f890df0 ("f2fs: fix out-of-order execution in f2fs_issue_flush") uses waitqueue_active to wake up issue_flush thread, but there is no wait entry to wake in this queue, so change it back to use the original fcc->dispatch_list to wake up issue_flush thread. Signed-off-by: Yunlong Song--- fs/f2fs/segment.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 503a98a..5aa5ee4e 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -612,7 +612,7 @@ int f2fs_issue_flush(struct f2fs_sb_info *sbi, nid_t ino) /* update issue_list before we wake up issue_flush thread */ smp_mb(); - if (waitqueue_active(>flush_wait_queue)) + if (!fcc->dispatch_list) wake_up(>flush_wait_queue); if (fcc->f2fs_issue_flush) { -- Thanks, Yunlong Song
Re: [PATCH] f2fs: fix the way to wake up issue_flush thread
Please avoid this patch, I make a mistake. On 2018/5/3 15:45, Yunlong Song wrote: Commit 6f890df0 ("f2fs: fix out-of-order execution in f2fs_issue_flush") uses waitqueue_active to wake up issue_flush thread, but there is no wait entry to wake in this queue, so change it back to use the original fcc->dispatch_list to wake up issue_flush thread. Signed-off-by: Yunlong Song --- fs/f2fs/segment.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 503a98a..5aa5ee4e 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -612,7 +612,7 @@ int f2fs_issue_flush(struct f2fs_sb_info *sbi, nid_t ino) /* update issue_list before we wake up issue_flush thread */ smp_mb(); - if (waitqueue_active(>flush_wait_queue)) + if (!fcc->dispatch_list) wake_up(>flush_wait_queue); if (fcc->f2fs_issue_flush) { -- Thanks, Yunlong Song
[PATCH] f2fs: fix the way to wake up issue_flush thread
Commit 6f890df0 ("f2fs: fix out-of-order execution in f2fs_issue_flush") uses waitqueue_active to wake up issue_flush thread, but there is no wait entry to wake in this queue, so change it back to use the original fcc->dispatch_list to wake up issue_flush thread. Signed-off-by: Yunlong Song--- fs/f2fs/segment.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 503a98a..5aa5ee4e 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -612,7 +612,7 @@ int f2fs_issue_flush(struct f2fs_sb_info *sbi, nid_t ino) /* update issue_list before we wake up issue_flush thread */ smp_mb(); - if (waitqueue_active(>flush_wait_queue)) + if (!fcc->dispatch_list) wake_up(>flush_wait_queue); if (fcc->f2fs_issue_flush) { -- 1.8.5.2
[PATCH] f2fs: fix the way to wake up issue_flush thread
Commit 6f890df0 ("f2fs: fix out-of-order execution in f2fs_issue_flush") uses waitqueue_active to wake up issue_flush thread, but there is no wait entry to wake in this queue, so change it back to use the original fcc->dispatch_list to wake up issue_flush thread. Signed-off-by: Yunlong Song --- fs/f2fs/segment.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 503a98a..5aa5ee4e 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -612,7 +612,7 @@ int f2fs_issue_flush(struct f2fs_sb_info *sbi, nid_t ino) /* update issue_list before we wake up issue_flush thread */ smp_mb(); - if (waitqueue_active(>flush_wait_queue)) + if (!fcc->dispatch_list) wake_up(>flush_wait_queue); if (fcc->f2fs_issue_flush) { -- 1.8.5.2