linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
@ 2019-02-12  2:33 Jaegeuk Kim
  2019-02-13  3:42 ` [f2fs-dev] " Chao Yu
  2019-05-10  9:45 ` Chao Yu
  0 siblings, 2 replies; 13+ messages in thread
From: Jaegeuk Kim @ 2019-02-12  2:33 UTC (permalink / raw)
  To: linux-kernel, linux-f2fs-devel; +Cc: Jaegeuk Kim

If we met this once, let fsck.f2fs clear this only.
Note that, this addresses all the subtle fault injection test.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
---
 fs/f2fs/checkpoint.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index 03fea4efd64b..10a3ada28715 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
 
 	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
-	else
-		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
 
 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
-- 
2.19.0.605.g01d371f741-goog


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-02-12  2:33 [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG Jaegeuk Kim
@ 2019-02-13  3:42 ` Chao Yu
  2019-02-16  4:55   ` Jaegeuk Kim
  2019-05-10  9:45 ` Chao Yu
  1 sibling, 1 reply; 13+ messages in thread
From: Chao Yu @ 2019-02-13  3:42 UTC (permalink / raw)
  To: Jaegeuk Kim, linux-kernel, linux-f2fs-devel

On 2019/2/12 10:33, Jaegeuk Kim wrote:
> If we met this once, let fsck.f2fs clear this only.
> Note that, this addresses all the subtle fault injection test.
> 
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> ---
>  fs/f2fs/checkpoint.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
> index 03fea4efd64b..10a3ada28715 100644
> --- a/fs/f2fs/checkpoint.c
> +++ b/fs/f2fs/checkpoint.c
> @@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
>  
>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> -	else
> -		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);

I didn't get it, previously, if we didn't persist all quota file's data in
checkpoint, then we will tag CP_QUOTA_NEED_FSCK_FLAG in CP area, but in current
checkpoint, we have persisted all quota file's data, quota files are consistent
with all other files in filesystem, why we can't remove this NEED_FSCK flag..?

Thanks,

>  
>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-02-13  3:42 ` [f2fs-dev] " Chao Yu
@ 2019-02-16  4:55   ` Jaegeuk Kim
  2019-02-18  9:10     ` Chao Yu
  0 siblings, 1 reply; 13+ messages in thread
From: Jaegeuk Kim @ 2019-02-16  4:55 UTC (permalink / raw)
  To: Chao Yu; +Cc: linux-kernel, linux-f2fs-devel

On 02/13, Chao Yu wrote:
> On 2019/2/12 10:33, Jaegeuk Kim wrote:
> > If we met this once, let fsck.f2fs clear this only.
> > Note that, this addresses all the subtle fault injection test.
> > 
> > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> > ---
> >  fs/f2fs/checkpoint.c | 2 --
> >  1 file changed, 2 deletions(-)
> > 
> > diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
> > index 03fea4efd64b..10a3ada28715 100644
> > --- a/fs/f2fs/checkpoint.c
> > +++ b/fs/f2fs/checkpoint.c
> > @@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
> >  
> >  	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
> >  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> > -	else
> > -		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> 
> I didn't get it, previously, if we didn't persist all quota file's data in
> checkpoint, then we will tag CP_QUOTA_NEED_FSCK_FLAG in CP area, but in current
> checkpoint, we have persisted all quota file's data, quota files are consistent
> with all other files in filesystem, why we can't remove this NEED_FSCK flag..?

I said it's subtle. So, I guessed 1) set CP_QUOTA_NEED_FSCK_FLAG, 2) clear
SBI_QUOTA_SKIP_FLUSH by checkpoint, 3) clear CP_QUOTA_NEED_FSCK_FLAG by another
checkpoint?

> 
> Thanks,
> 
> >  
> >  	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
> >  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> > 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-02-16  4:55   ` Jaegeuk Kim
@ 2019-02-18  9:10     ` Chao Yu
  2019-02-20  7:08       ` Jaegeuk Kim
  0 siblings, 1 reply; 13+ messages in thread
From: Chao Yu @ 2019-02-18  9:10 UTC (permalink / raw)
  To: Jaegeuk Kim; +Cc: linux-kernel, linux-f2fs-devel

On 2019/2/16 12:55, Jaegeuk Kim wrote:
> On 02/13, Chao Yu wrote:
>> On 2019/2/12 10:33, Jaegeuk Kim wrote:
>>> If we met this once, let fsck.f2fs clear this only.
>>> Note that, this addresses all the subtle fault injection test.
>>>
>>> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
>>> ---
>>>  fs/f2fs/checkpoint.c | 2 --
>>>  1 file changed, 2 deletions(-)
>>>
>>> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
>>> index 03fea4efd64b..10a3ada28715 100644
>>> --- a/fs/f2fs/checkpoint.c
>>> +++ b/fs/f2fs/checkpoint.c
>>> @@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
>>>  
>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>> -	else
>>> -		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>
>> I didn't get it, previously, if we didn't persist all quota file's data in
>> checkpoint, then we will tag CP_QUOTA_NEED_FSCK_FLAG in CP area, but in current
>> checkpoint, we have persisted all quota file's data, quota files are consistent
>> with all other files in filesystem, why we can't remove this NEED_FSCK flag..?
> 
> I said it's subtle. So, I guessed 1) set CP_QUOTA_NEED_FSCK_FLAG, 2) clear

I know it's subtle... and I agreed we can fix it like this in upstream
first, but in our product, it's not rare that we hit the
QUOTA_SKIP_FLUSH(its value is 4) case, later we may encounter long latency
caused by quota repairing of fsck.

> SBI_QUOTA_SKIP_FLUSH by checkpoint, 3) clear CP_QUOTA_NEED_FSCK_FLAG by another
> checkpoint?

But later if QUOTA_NEED_REPAIR is set, we will set QUOTA_NEED_FSCK_FLAG
again, right?

if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);


So in order to figure out whether this is caused by out-of-order execution
of below assignments:

	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
	else
		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later

	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first


Could you have a try:

	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR) ||
			is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
	else
		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);

Thanks,

> 
>>
>> Thanks,
>>
>>>  
>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>
> 
> .
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-02-18  9:10     ` Chao Yu
@ 2019-02-20  7:08       ` Jaegeuk Kim
  2019-02-20  7:25         ` Chao Yu
  0 siblings, 1 reply; 13+ messages in thread
From: Jaegeuk Kim @ 2019-02-20  7:08 UTC (permalink / raw)
  To: Chao Yu; +Cc: linux-kernel, linux-f2fs-devel

On 02/18, Chao Yu wrote:
> On 2019/2/16 12:55, Jaegeuk Kim wrote:
> > On 02/13, Chao Yu wrote:
> >> On 2019/2/12 10:33, Jaegeuk Kim wrote:
> >>> If we met this once, let fsck.f2fs clear this only.
> >>> Note that, this addresses all the subtle fault injection test.
> >>>
> >>> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> >>> ---
> >>>  fs/f2fs/checkpoint.c | 2 --
> >>>  1 file changed, 2 deletions(-)
> >>>
> >>> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
> >>> index 03fea4efd64b..10a3ada28715 100644
> >>> --- a/fs/f2fs/checkpoint.c
> >>> +++ b/fs/f2fs/checkpoint.c
> >>> @@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
> >>>  
> >>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
> >>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>> -	else
> >>> -		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>
> >> I didn't get it, previously, if we didn't persist all quota file's data in
> >> checkpoint, then we will tag CP_QUOTA_NEED_FSCK_FLAG in CP area, but in current
> >> checkpoint, we have persisted all quota file's data, quota files are consistent
> >> with all other files in filesystem, why we can't remove this NEED_FSCK flag..?
> > 
> > I said it's subtle. So, I guessed 1) set CP_QUOTA_NEED_FSCK_FLAG, 2) clear
> 
> I know it's subtle... and I agreed we can fix it like this in upstream
> first, but in our product, it's not rare that we hit the
> QUOTA_SKIP_FLUSH(its value is 4) case, later we may encounter long latency
> caused by quota repairing of fsck.
> 
> > SBI_QUOTA_SKIP_FLUSH by checkpoint, 3) clear CP_QUOTA_NEED_FSCK_FLAG by another
> > checkpoint?
> 
> But later if QUOTA_NEED_REPAIR is set, we will set QUOTA_NEED_FSCK_FLAG
> again, right?
> 
> if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
> 	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> 
> 
> So in order to figure out whether this is caused by out-of-order execution
> of below assignments:
> 
> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> 	else
> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later
> 
> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first
> 
> 
> Could you have a try:
> 
> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR) ||
> 			is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> 	else
> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);

What does this mean? I'm in doubt we have a missing case where we clear this
flag, CP_QUOTA_NEED_FSCK_FLAG.

> 
> Thanks,
> 
> > 
> >>
> >> Thanks,
> >>
> >>>  
> >>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
> >>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>
> > 
> > .
> > 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-02-20  7:08       ` Jaegeuk Kim
@ 2019-02-20  7:25         ` Chao Yu
  2019-02-20  7:31           ` Chao Yu
  0 siblings, 1 reply; 13+ messages in thread
From: Chao Yu @ 2019-02-20  7:25 UTC (permalink / raw)
  To: Jaegeuk Kim; +Cc: linux-kernel, linux-f2fs-devel

On 2019/2/20 15:08, Jaegeuk Kim wrote:
> On 02/18, Chao Yu wrote:
>> On 2019/2/16 12:55, Jaegeuk Kim wrote:
>>> On 02/13, Chao Yu wrote:
>>>> On 2019/2/12 10:33, Jaegeuk Kim wrote:
>>>>> If we met this once, let fsck.f2fs clear this only.
>>>>> Note that, this addresses all the subtle fault injection test.
>>>>>
>>>>> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
>>>>> ---
>>>>>  fs/f2fs/checkpoint.c | 2 --
>>>>>  1 file changed, 2 deletions(-)
>>>>>
>>>>> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
>>>>> index 03fea4efd64b..10a3ada28715 100644
>>>>> --- a/fs/f2fs/checkpoint.c
>>>>> +++ b/fs/f2fs/checkpoint.c
>>>>> @@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
>>>>>  
>>>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>>>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>> -	else
>>>>> -		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>
>>>> I didn't get it, previously, if we didn't persist all quota file's data in
>>>> checkpoint, then we will tag CP_QUOTA_NEED_FSCK_FLAG in CP area, but in current
>>>> checkpoint, we have persisted all quota file's data, quota files are consistent
>>>> with all other files in filesystem, why we can't remove this NEED_FSCK flag..?
>>>
>>> I said it's subtle. So, I guessed 1) set CP_QUOTA_NEED_FSCK_FLAG, 2) clear
>>
>> I know it's subtle... and I agreed we can fix it like this in upstream
>> first, but in our product, it's not rare that we hit the
>> QUOTA_SKIP_FLUSH(its value is 4) case, later we may encounter long latency
>> caused by quota repairing of fsck.
>>
>>> SBI_QUOTA_SKIP_FLUSH by checkpoint, 3) clear CP_QUOTA_NEED_FSCK_FLAG by another
>>> checkpoint?
>>
>> But later if QUOTA_NEED_REPAIR is set, we will set QUOTA_NEED_FSCK_FLAG
>> again, right?
>>
>> if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>> 	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>
>>
>> So in order to figure out whether this is caused by out-of-order execution
>> of below assignments:
>>
>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>> 	else
>> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later
>>
>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first
>>
>>
>> Could you have a try:
>>
>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR) ||
>> 			is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>> 	else
>> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> 
> What does this mean? I'm in doubt we have a missing case where we clear this

Cpu pipeline / compiler can make code out-of-order execution, which means:

a = 1;
b = 2;

may actually be executed as the order of:

b = 2;
a = 1;

So I doubt that below two line codes can be executed out-of-order:

else
	__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later

if ()
	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first

> flag, CP_QUOTA_NEED_FSCK_FLAG.

Agreed, I've checked each operation in f2fs_quota_operations yesterday, and
didn't find any missing places yet...

Thanks,

> 
>>
>> Thanks,
>>
>>>
>>>>
>>>> Thanks,
>>>>
>>>>>  
>>>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>>>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>>
>>>
>>> .
>>>
> 
> .
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-02-20  7:25         ` Chao Yu
@ 2019-02-20  7:31           ` Chao Yu
  2019-02-22  2:40             ` Jaegeuk Kim
  0 siblings, 1 reply; 13+ messages in thread
From: Chao Yu @ 2019-02-20  7:31 UTC (permalink / raw)
  To: Jaegeuk Kim; +Cc: linux-kernel, linux-f2fs-devel

On 2019/2/20 15:25, Chao Yu wrote:
> On 2019/2/20 15:08, Jaegeuk Kim wrote:
>> On 02/18, Chao Yu wrote:
>>> On 2019/2/16 12:55, Jaegeuk Kim wrote:
>>>> On 02/13, Chao Yu wrote:
>>>>> On 2019/2/12 10:33, Jaegeuk Kim wrote:
>>>>>> If we met this once, let fsck.f2fs clear this only.
>>>>>> Note that, this addresses all the subtle fault injection test.
>>>>>>
>>>>>> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
>>>>>> ---
>>>>>>  fs/f2fs/checkpoint.c | 2 --
>>>>>>  1 file changed, 2 deletions(-)
>>>>>>
>>>>>> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
>>>>>> index 03fea4efd64b..10a3ada28715 100644
>>>>>> --- a/fs/f2fs/checkpoint.c
>>>>>> +++ b/fs/f2fs/checkpoint.c
>>>>>> @@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
>>>>>>  
>>>>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>>>>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>>> -	else
>>>>>> -		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>>
>>>>> I didn't get it, previously, if we didn't persist all quota file's data in
>>>>> checkpoint, then we will tag CP_QUOTA_NEED_FSCK_FLAG in CP area, but in current
>>>>> checkpoint, we have persisted all quota file's data, quota files are consistent
>>>>> with all other files in filesystem, why we can't remove this NEED_FSCK flag..?
>>>>
>>>> I said it's subtle. So, I guessed 1) set CP_QUOTA_NEED_FSCK_FLAG, 2) clear
>>>
>>> I know it's subtle... and I agreed we can fix it like this in upstream
>>> first, but in our product, it's not rare that we hit the
>>> QUOTA_SKIP_FLUSH(its value is 4) case, later we may encounter long latency
>>> caused by quota repairing of fsck.
>>>
>>>> SBI_QUOTA_SKIP_FLUSH by checkpoint, 3) clear CP_QUOTA_NEED_FSCK_FLAG by another
>>>> checkpoint?
>>>
>>> But later if QUOTA_NEED_REPAIR is set, we will set QUOTA_NEED_FSCK_FLAG
>>> again, right?
>>>
>>> if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>>> 	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>
>>>
>>> So in order to figure out whether this is caused by out-of-order execution
>>> of below assignments:
>>>
>>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>> 	else
>>> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later
>>>
>>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first
>>>
>>>
>>> Could you have a try:
>>>
>>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR) ||
>>> 			is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>> 	else
>>> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>
>> What does this mean? I'm in doubt we have a missing case where we clear this
> 
> Cpu pipeline / compiler can make code out-of-order execution, which means:
> 
> a = 1;
> b = 2;
> 
> may actually be executed as the order of:
> 
> b = 2;
> a = 1;
> 
> So I doubt that below two line codes can be executed out-of-order:
> 
> else
> 	__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later
> 
> if ()
> 	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first
> 
>> flag, CP_QUOTA_NEED_FSCK_FLAG.
> 
> Agreed, I've checked each operation in f2fs_quota_operations yesterday, and
> didn't find any missing places yet...

Oh, I mean the place where set SBI_QUOTA_NEED_REPAIR, I also doubt we
missed to set the flag.

Thanks,

> 
> Thanks,
> 
>>
>>>
>>> Thanks,
>>>
>>>>
>>>>>
>>>>> Thanks,
>>>>>
>>>>>>  
>>>>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>>>>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>>>
>>>>
>>>> .
>>>>
>>
>> .
>>
> 
> 
> 
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
> 
> .
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-02-20  7:31           ` Chao Yu
@ 2019-02-22  2:40             ` Jaegeuk Kim
  2019-02-22  3:27               ` Chao Yu
  0 siblings, 1 reply; 13+ messages in thread
From: Jaegeuk Kim @ 2019-02-22  2:40 UTC (permalink / raw)
  To: Chao Yu; +Cc: linux-kernel, linux-f2fs-devel

On 02/20, Chao Yu wrote:
> On 2019/2/20 15:25, Chao Yu wrote:
> > On 2019/2/20 15:08, Jaegeuk Kim wrote:
> >> On 02/18, Chao Yu wrote:
> >>> On 2019/2/16 12:55, Jaegeuk Kim wrote:
> >>>> On 02/13, Chao Yu wrote:
> >>>>> On 2019/2/12 10:33, Jaegeuk Kim wrote:
> >>>>>> If we met this once, let fsck.f2fs clear this only.
> >>>>>> Note that, this addresses all the subtle fault injection test.
> >>>>>>
> >>>>>> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> >>>>>> ---
> >>>>>>  fs/f2fs/checkpoint.c | 2 --
> >>>>>>  1 file changed, 2 deletions(-)
> >>>>>>
> >>>>>> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
> >>>>>> index 03fea4efd64b..10a3ada28715 100644
> >>>>>> --- a/fs/f2fs/checkpoint.c
> >>>>>> +++ b/fs/f2fs/checkpoint.c
> >>>>>> @@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
> >>>>>>  
> >>>>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
> >>>>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>>>> -	else
> >>>>>> -		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>>>
> >>>>> I didn't get it, previously, if we didn't persist all quota file's data in
> >>>>> checkpoint, then we will tag CP_QUOTA_NEED_FSCK_FLAG in CP area, but in current
> >>>>> checkpoint, we have persisted all quota file's data, quota files are consistent
> >>>>> with all other files in filesystem, why we can't remove this NEED_FSCK flag..?
> >>>>
> >>>> I said it's subtle. So, I guessed 1) set CP_QUOTA_NEED_FSCK_FLAG, 2) clear
> >>>
> >>> I know it's subtle... and I agreed we can fix it like this in upstream
> >>> first, but in our product, it's not rare that we hit the
> >>> QUOTA_SKIP_FLUSH(its value is 4) case, later we may encounter long latency
> >>> caused by quota repairing of fsck.
> >>>
> >>>> SBI_QUOTA_SKIP_FLUSH by checkpoint, 3) clear CP_QUOTA_NEED_FSCK_FLAG by another
> >>>> checkpoint?
> >>>
> >>> But later if QUOTA_NEED_REPAIR is set, we will set QUOTA_NEED_FSCK_FLAG
> >>> again, right?
> >>>
> >>> if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
> >>> 	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>
> >>>
> >>> So in order to figure out whether this is caused by out-of-order execution
> >>> of below assignments:
> >>>
> >>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
> >>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>> 	else
> >>> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later
> >>>
> >>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
> >>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first
> >>>
> >>>
> >>> Could you have a try:
> >>>
> >>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR) ||
> >>> 			is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
> >>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>> 	else
> >>> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>
> >> What does this mean? I'm in doubt we have a missing case where we clear this
> > 
> > Cpu pipeline / compiler can make code out-of-order execution, which means:
> > 
> > a = 1;
> > b = 2;
> > 
> > may actually be executed as the order of:
> > 
> > b = 2;
> > a = 1;
> > 
> > So I doubt that below two line codes can be executed out-of-order:
> > 
> > else
> > 	__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later
> > 
> > if ()
> > 	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first

In spin_lock_irqsave()?

> > 
> >> flag, CP_QUOTA_NEED_FSCK_FLAG.
> > 
> > Agreed, I've checked each operation in f2fs_quota_operations yesterday, and
> > didn't find any missing places yet...
> 
> Oh, I mean the place where set SBI_QUOTA_NEED_REPAIR, I also doubt we
> missed to set the flag.

So, I may need to keep this patch untill we find the missing case. I'll keep an
eye on this.

> 
> Thanks,
> 
> > 
> > Thanks,
> > 
> >>
> >>>
> >>> Thanks,
> >>>
> >>>>
> >>>>>
> >>>>> Thanks,
> >>>>>
> >>>>>>  
> >>>>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
> >>>>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>>>>
> >>>>
> >>>> .
> >>>>
> >>
> >> .
> >>
> > 
> > 
> > 
> > _______________________________________________
> > Linux-f2fs-devel mailing list
> > Linux-f2fs-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
> > 
> > .
> > 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-02-22  2:40             ` Jaegeuk Kim
@ 2019-02-22  3:27               ` Chao Yu
  2019-02-26 17:57                 ` Jaegeuk Kim
  0 siblings, 1 reply; 13+ messages in thread
From: Chao Yu @ 2019-02-22  3:27 UTC (permalink / raw)
  To: Jaegeuk Kim; +Cc: linux-kernel, linux-f2fs-devel

On 2019/2/22 10:40, Jaegeuk Kim wrote:
> On 02/20, Chao Yu wrote:
>> On 2019/2/20 15:25, Chao Yu wrote:
>>> On 2019/2/20 15:08, Jaegeuk Kim wrote:
>>>> On 02/18, Chao Yu wrote:
>>>>> On 2019/2/16 12:55, Jaegeuk Kim wrote:
>>>>>> On 02/13, Chao Yu wrote:
>>>>>>> On 2019/2/12 10:33, Jaegeuk Kim wrote:
>>>>>>>> If we met this once, let fsck.f2fs clear this only.
>>>>>>>> Note that, this addresses all the subtle fault injection test.
>>>>>>>>
>>>>>>>> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
>>>>>>>> ---
>>>>>>>>  fs/f2fs/checkpoint.c | 2 --
>>>>>>>>  1 file changed, 2 deletions(-)
>>>>>>>>
>>>>>>>> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
>>>>>>>> index 03fea4efd64b..10a3ada28715 100644
>>>>>>>> --- a/fs/f2fs/checkpoint.c
>>>>>>>> +++ b/fs/f2fs/checkpoint.c
>>>>>>>> @@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
>>>>>>>>  
>>>>>>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>>>>>>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>>>>> -	else
>>>>>>>> -		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>>>>
>>>>>>> I didn't get it, previously, if we didn't persist all quota file's data in
>>>>>>> checkpoint, then we will tag CP_QUOTA_NEED_FSCK_FLAG in CP area, but in current
>>>>>>> checkpoint, we have persisted all quota file's data, quota files are consistent
>>>>>>> with all other files in filesystem, why we can't remove this NEED_FSCK flag..?
>>>>>>
>>>>>> I said it's subtle. So, I guessed 1) set CP_QUOTA_NEED_FSCK_FLAG, 2) clear
>>>>>
>>>>> I know it's subtle... and I agreed we can fix it like this in upstream
>>>>> first, but in our product, it's not rare that we hit the
>>>>> QUOTA_SKIP_FLUSH(its value is 4) case, later we may encounter long latency
>>>>> caused by quota repairing of fsck.
>>>>>
>>>>>> SBI_QUOTA_SKIP_FLUSH by checkpoint, 3) clear CP_QUOTA_NEED_FSCK_FLAG by another
>>>>>> checkpoint?
>>>>>
>>>>> But later if QUOTA_NEED_REPAIR is set, we will set QUOTA_NEED_FSCK_FLAG
>>>>> again, right?
>>>>>
>>>>> if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>>>>> 	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>>
>>>>>
>>>>> So in order to figure out whether this is caused by out-of-order execution
>>>>> of below assignments:
>>>>>
>>>>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>>>>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>> 	else
>>>>> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later
>>>>>
>>>>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>>>>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first
>>>>>
>>>>>
>>>>> Could you have a try:
>>>>>
>>>>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR) ||
>>>>> 			is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>>>>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>> 	else
>>>>> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>
>>>> What does this mean? I'm in doubt we have a missing case where we clear this
>>>
>>> Cpu pipeline / compiler can make code out-of-order execution, which means:
>>>
>>> a = 1;
>>> b = 2;
>>>
>>> may actually be executed as the order of:
>>>
>>> b = 2;
>>> a = 1;
>>>
>>> So I doubt that below two line codes can be executed out-of-order:
>>>
>>> else
>>> 	__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later
>>>
>>> if ()
>>> 	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first
> 
> In spin_lock_irqsave()?

Not sure in coverage of spin_lock, system can guarantee codes being
executed orderly.

> 
>>>
>>>> flag, CP_QUOTA_NEED_FSCK_FLAG.
>>>
>>> Agreed, I've checked each operation in f2fs_quota_operations yesterday, and
>>> didn't find any missing places yet...
>>
>> Oh, I mean the place where set SBI_QUOTA_NEED_REPAIR, I also doubt we
>> missed to set the flag.
> 
> So, I may need to keep this patch untill we find the missing case. I'll keep an
> eye on this.

Agreed, do you mind adding one line comment there to notice that?

Thanks,

> 
>>
>> Thanks,
>>
>>>
>>> Thanks,
>>>
>>>>
>>>>>
>>>>> Thanks,
>>>>>
>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>>>  
>>>>>>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>>>>>>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
>>>>>>>>
>>>>>>
>>>>>> .
>>>>>>
>>>>
>>>> .
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Linux-f2fs-devel mailing list
>>> Linux-f2fs-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
>>>
>>> .
>>>
> 
> .
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-02-22  3:27               ` Chao Yu
@ 2019-02-26 17:57                 ` Jaegeuk Kim
  2019-02-28  1:08                   ` Chao Yu
  0 siblings, 1 reply; 13+ messages in thread
From: Jaegeuk Kim @ 2019-02-26 17:57 UTC (permalink / raw)
  To: Chao Yu; +Cc: linux-kernel, linux-f2fs-devel

On 02/22, Chao Yu wrote:
> On 2019/2/22 10:40, Jaegeuk Kim wrote:
> > On 02/20, Chao Yu wrote:
> >> On 2019/2/20 15:25, Chao Yu wrote:
> >>> On 2019/2/20 15:08, Jaegeuk Kim wrote:
> >>>> On 02/18, Chao Yu wrote:
> >>>>> On 2019/2/16 12:55, Jaegeuk Kim wrote:
> >>>>>> On 02/13, Chao Yu wrote:
> >>>>>>> On 2019/2/12 10:33, Jaegeuk Kim wrote:
> >>>>>>>> If we met this once, let fsck.f2fs clear this only.
> >>>>>>>> Note that, this addresses all the subtle fault injection test.
> >>>>>>>>
> >>>>>>>> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> >>>>>>>> ---
> >>>>>>>>  fs/f2fs/checkpoint.c | 2 --
> >>>>>>>>  1 file changed, 2 deletions(-)
> >>>>>>>>
> >>>>>>>> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
> >>>>>>>> index 03fea4efd64b..10a3ada28715 100644
> >>>>>>>> --- a/fs/f2fs/checkpoint.c
> >>>>>>>> +++ b/fs/f2fs/checkpoint.c
> >>>>>>>> @@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
> >>>>>>>>  
> >>>>>>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
> >>>>>>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>>>>>> -	else
> >>>>>>>> -		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>>>>>
> >>>>>>> I didn't get it, previously, if we didn't persist all quota file's data in
> >>>>>>> checkpoint, then we will tag CP_QUOTA_NEED_FSCK_FLAG in CP area, but in current
> >>>>>>> checkpoint, we have persisted all quota file's data, quota files are consistent
> >>>>>>> with all other files in filesystem, why we can't remove this NEED_FSCK flag..?
> >>>>>>
> >>>>>> I said it's subtle. So, I guessed 1) set CP_QUOTA_NEED_FSCK_FLAG, 2) clear
> >>>>>
> >>>>> I know it's subtle... and I agreed we can fix it like this in upstream
> >>>>> first, but in our product, it's not rare that we hit the
> >>>>> QUOTA_SKIP_FLUSH(its value is 4) case, later we may encounter long latency
> >>>>> caused by quota repairing of fsck.
> >>>>>
> >>>>>> SBI_QUOTA_SKIP_FLUSH by checkpoint, 3) clear CP_QUOTA_NEED_FSCK_FLAG by another
> >>>>>> checkpoint?
> >>>>>
> >>>>> But later if QUOTA_NEED_REPAIR is set, we will set QUOTA_NEED_FSCK_FLAG
> >>>>> again, right?
> >>>>>
> >>>>> if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
> >>>>> 	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>>>
> >>>>>
> >>>>> So in order to figure out whether this is caused by out-of-order execution
> >>>>> of below assignments:
> >>>>>
> >>>>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
> >>>>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>>> 	else
> >>>>> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later
> >>>>>
> >>>>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
> >>>>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first
> >>>>>
> >>>>>
> >>>>> Could you have a try:
> >>>>>
> >>>>> 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR) ||
> >>>>> 			is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
> >>>>> 		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>>> 	else
> >>>>> 		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>>
> >>>> What does this mean? I'm in doubt we have a missing case where we clear this
> >>>
> >>> Cpu pipeline / compiler can make code out-of-order execution, which means:
> >>>
> >>> a = 1;
> >>> b = 2;
> >>>
> >>> may actually be executed as the order of:
> >>>
> >>> b = 2;
> >>> a = 1;
> >>>
> >>> So I doubt that below two line codes can be executed out-of-order:
> >>>
> >>> else
> >>> 	__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- clear flag later
> >>>
> >>> if ()
> >>> 	__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG); --- set flag first
> > 
> > In spin_lock_irqsave()?
> 
> Not sure in coverage of spin_lock, system can guarantee codes being
> executed orderly.
> 
> > 
> >>>
> >>>> flag, CP_QUOTA_NEED_FSCK_FLAG.
> >>>
> >>> Agreed, I've checked each operation in f2fs_quota_operations yesterday, and
> >>> didn't find any missing places yet...
> >>
> >> Oh, I mean the place where set SBI_QUOTA_NEED_REPAIR, I also doubt we
> >> missed to set the flag.
> > 
> > So, I may need to keep this patch untill we find the missing case. I'll keep an
> > eye on this.
> 
> Agreed, do you mind adding one line comment there to notice that?

       /*
        * TODO: we count on fsck.f2fs to clear this flag until we figure out
        * missing cases which clear it incorrectly.
        */

I added like this.

Thanks,


> 
> Thanks,
> 
> > 
> >>
> >> Thanks,
> >>
> >>>
> >>> Thanks,
> >>>
> >>>>
> >>>>>
> >>>>> Thanks,
> >>>>>
> >>>>>>
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>>
> >>>>>>>>  
> >>>>>>>>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
> >>>>>>>>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> >>>>>>>>
> >>>>>>
> >>>>>> .
> >>>>>>
> >>>>
> >>>> .
> >>>>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Linux-f2fs-devel mailing list
> >>> Linux-f2fs-devel@lists.sourceforge.net
> >>> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
> >>>
> >>> .
> >>>
> > 
> > .
> > 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-02-26 17:57                 ` Jaegeuk Kim
@ 2019-02-28  1:08                   ` Chao Yu
  0 siblings, 0 replies; 13+ messages in thread
From: Chao Yu @ 2019-02-28  1:08 UTC (permalink / raw)
  To: Jaegeuk Kim; +Cc: linux-kernel, linux-f2fs-devel

On 2019/2/27 1:57, Jaegeuk Kim wrote:
>        /*
>         * TODO: we count on fsck.f2fs to clear this flag until we figure out
>         * missing cases which clear it incorrectly.
>         */
> 
> I added like this.

Reviewed-by: Chao Yu <yuchao0@huawei.com>

Thanks,

> 
> Thanks,


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-02-12  2:33 [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG Jaegeuk Kim
  2019-02-13  3:42 ` [f2fs-dev] " Chao Yu
@ 2019-05-10  9:45 ` Chao Yu
  2019-05-20 23:24   ` Jaegeuk Kim
  1 sibling, 1 reply; 13+ messages in thread
From: Chao Yu @ 2019-05-10  9:45 UTC (permalink / raw)
  To: Jaegeuk Kim, linux-kernel, linux-f2fs-devel

On 2019/2/12 10:33, Jaegeuk Kim wrote:
> If we met this once, let fsck.f2fs clear this only.
> Note that, this addresses all the subtle fault injection test.
> 
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> ---
>  fs/f2fs/checkpoint.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
> index 03fea4efd64b..10a3ada28715 100644
> --- a/fs/f2fs/checkpoint.c
> +++ b/fs/f2fs/checkpoint.c
> @@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
>  
>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> -	else
> -		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);

Jaegeuk,

Will below commit fix this issue? Not sure, but just want to check that.. :)

f2fs-tools: fix to check total valid block count before block allocation

Thanks,

>  
>  	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
>  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [f2fs-dev] [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG
  2019-05-10  9:45 ` Chao Yu
@ 2019-05-20 23:24   ` Jaegeuk Kim
  0 siblings, 0 replies; 13+ messages in thread
From: Jaegeuk Kim @ 2019-05-20 23:24 UTC (permalink / raw)
  To: Chao Yu; +Cc: linux-kernel, linux-f2fs-devel

On 05/10, Chao Yu wrote:
> On 2019/2/12 10:33, Jaegeuk Kim wrote:
> > If we met this once, let fsck.f2fs clear this only.
> > Note that, this addresses all the subtle fault injection test.
> > 
> > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> > ---
> >  fs/f2fs/checkpoint.c | 2 --
> >  1 file changed, 2 deletions(-)
> > 
> > diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
> > index 03fea4efd64b..10a3ada28715 100644
> > --- a/fs/f2fs/checkpoint.c
> > +++ b/fs/f2fs/checkpoint.c
> > @@ -1267,8 +1267,6 @@ static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
> >  
> >  	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
> >  		__set_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> > -	else
> > -		__clear_ckpt_flags(ckpt, CP_QUOTA_NEED_FSCK_FLAG);
> 
> Jaegeuk,
> 
> Will below commit fix this issue? Not sure, but just want to check that.. :)
> 
> f2fs-tools: fix to check total valid block count before block allocation

I started test again whether we can revert this or not. :)
Let's see.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2019-05-20 23:24 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-12  2:33 [PATCH] f2fs: don't clear CP_QUOTA_NEED_FSCK_FLAG Jaegeuk Kim
2019-02-13  3:42 ` [f2fs-dev] " Chao Yu
2019-02-16  4:55   ` Jaegeuk Kim
2019-02-18  9:10     ` Chao Yu
2019-02-20  7:08       ` Jaegeuk Kim
2019-02-20  7:25         ` Chao Yu
2019-02-20  7:31           ` Chao Yu
2019-02-22  2:40             ` Jaegeuk Kim
2019-02-22  3:27               ` Chao Yu
2019-02-26 17:57                 ` Jaegeuk Kim
2019-02-28  1:08                   ` Chao Yu
2019-05-10  9:45 ` Chao Yu
2019-05-20 23:24   ` Jaegeuk Kim

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).