* [PATCH v2] f2fs: stop issue discard if something wrong with f2fs
@ 2018-04-09 3:54 Yunlei He
2018-04-09 11:04 ` Chao Yu
0 siblings, 1 reply; 3+ messages in thread
From: Yunlei He @ 2018-04-09 3:54 UTC (permalink / raw)
To: jaegeuk, yuchao0, linux-f2fs-devel; +Cc: zhangdianfang
This patch stop discard thread to issue discard io if
something wrong with f2fs, which is similar to fstrim.
v1->v2: add fs error check in not only discard thread but also umount process
Signed-off-by: Yunlei He <heyunlei@huawei.com>
---
fs/f2fs/segment.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 5854cc4..7f45cc4 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -1202,6 +1202,12 @@ static int __issue_discard_cmd(struct f2fs_sb_info *sbi,
int i, iter = 0, issued = 0;
bool io_interrupted = false;
+ if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) {
+ f2fs_msg(sbi->sb, KERN_WARNING,
+ "Found FS corruption, run fsck to fix.");
+ return issued;
+ }
+
for (i = MAX_PLIST_NUM - 1; i >= 0; i--) {
if (i + 1 < dpolicy->granularity)
break;
@@ -1410,7 +1416,6 @@ static int issue_discard_thread(void *data)
continue;
if (kthread_should_stop())
return 0;
-
if (dcc->discard_wake)
dcc->discard_wake = 0;
--
1.9.1
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] f2fs: stop issue discard if something wrong with f2fs
2018-04-09 3:54 [PATCH v2] f2fs: stop issue discard if something wrong with f2fs Yunlei He
@ 2018-04-09 11:04 ` Chao Yu
2018-04-09 11:23 ` heyunlei
0 siblings, 1 reply; 3+ messages in thread
From: Chao Yu @ 2018-04-09 11:04 UTC (permalink / raw)
To: Yunlei He, jaegeuk, linux-f2fs-devel; +Cc: zhangdianfang
On 2018/4/9 11:54, Yunlei He wrote:
> This patch stop discard thread to issue discard io if
> something wrong with f2fs, which is similar to fstrim.
>
> v1->v2: add fs error check in not only discard thread but also umount process
>
> Signed-off-by: Yunlei He <heyunlei@huawei.com>
> ---
> fs/f2fs/segment.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> index 5854cc4..7f45cc4 100644
> --- a/fs/f2fs/segment.c
> +++ b/fs/f2fs/segment.c
> @@ -1202,6 +1202,12 @@ static int __issue_discard_cmd(struct f2fs_sb_info *sbi,
> int i, iter = 0, issued = 0;
> bool io_interrupted = false;
>
> + if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) {
> + f2fs_msg(sbi->sb, KERN_WARNING,
> + "Found FS corruption, run fsck to fix.");
I think we don't need to print this message redundantly if we have print in all
places we set the flag.
So let's just skip issuing discard in async thread and __submit_discard_cmd.
> + return issued;
> + }
> +
> for (i = MAX_PLIST_NUM - 1; i >= 0; i--) {
> if (i + 1 < dpolicy->granularity)
> break;
> @@ -1410,7 +1416,6 @@ static int issue_discard_thread(void *data)
> continue;
> if (kthread_should_stop())
> return 0;
> -
We'd better to avoid meaningless blank line removal.
Thank,s
> if (dcc->discard_wake)
> dcc->discard_wake = 0;
>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] f2fs: stop issue discard if something wrong with f2fs
2018-04-09 11:04 ` Chao Yu
@ 2018-04-09 11:23 ` heyunlei
0 siblings, 0 replies; 3+ messages in thread
From: heyunlei @ 2018-04-09 11:23 UTC (permalink / raw)
To: Yuchao (T), jaegeuk@kernel.org,
linux-f2fs-devel@lists.sourceforge.net
Cc: Zhangdianfang (Euler)
>-----Original Message-----
>From: Yuchao (T)
>Sent: Monday, April 09, 2018 7:05 PM
>To: heyunlei; jaegeuk@kernel.org; linux-f2fs-devel@lists.sourceforge.net
>Cc: Wangbintian; Zhangdianfang (Euler)
>Subject: Re: [f2fs-dev][PATCH v2] f2fs: stop issue discard if something wrong with f2fs
>
>On 2018/4/9 11:54, Yunlei He wrote:
>> This patch stop discard thread to issue discard io if
>> something wrong with f2fs, which is similar to fstrim.
>>
>> v1->v2: add fs error check in not only discard thread but also umount process
>>
>> Signed-off-by: Yunlei He <heyunlei@huawei.com>
>> ---
>> fs/f2fs/segment.c | 7 ++++++-
>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
>> index 5854cc4..7f45cc4 100644
>> --- a/fs/f2fs/segment.c
>> +++ b/fs/f2fs/segment.c
>> @@ -1202,6 +1202,12 @@ static int __issue_discard_cmd(struct f2fs_sb_info *sbi,
>> int i, iter = 0, issued = 0;
>> bool io_interrupted = false;
>>
>> + if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) {
>> + f2fs_msg(sbi->sb, KERN_WARNING,
>> + "Found FS corruption, run fsck to fix.");
>
>I think we don't need to print this message redundantly if we have print in all
>places we set the flag.
>
>So let's just skip issuing discard in async thread and __submit_discard_cmd.
Okay, I'll resend a new version.
>
>> + return issued;
>> + }
>> +
>> for (i = MAX_PLIST_NUM - 1; i >= 0; i--) {
>> if (i + 1 < dpolicy->granularity)
>> break;
>> @@ -1410,7 +1416,6 @@ static int issue_discard_thread(void *data)
>> continue;
>> if (kthread_should_stop())
>> return 0;
>> -
>
>We'd better to avoid meaningless blank line removal.
Sorry for this mistake.
Thanks.
>
>Thank,s
>
>> if (dcc->discard_wake)
>> dcc->discard_wake = 0;
>>
>>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-04-09 11:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-09 3:54 [PATCH v2] f2fs: stop issue discard if something wrong with f2fs Yunlei He
2018-04-09 11:04 ` Chao Yu
2018-04-09 11:23 ` heyunlei
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).