From: Li Guifu <[email protected]>
During umount, f2fs_put_super() unregisters procfs entries after
f2fs_destroy_segment_manager(), it may cause use-after-free
issue when umount races with procfs accessing, fix it by relcating
f2fs_unregister_sysfs().
[Chao Yu: change commit title/message a bit]
Signed-off-by: Li Guifu <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Signed-off-by: Chao Yu <[email protected]>
---
fs/f2fs/super.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 80cb7cd358f8..bf8bd64c8380 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -1175,6 +1175,9 @@ static void f2fs_put_super(struct super_block *sb)
int i;
bool dropped;
+ /* unregister procfs/sysfs entries to avoid race case */
+ f2fs_unregister_sysfs(sbi);
+
f2fs_quota_off_umount(sb);
/* prevent remaining shrinker jobs */
@@ -1240,8 +1243,6 @@ static void f2fs_put_super(struct super_block *sb)
kvfree(sbi->ckpt);
- f2fs_unregister_sysfs(sbi);
-
sb->s_fs_info = NULL;
if (sbi->s_chksum_driver)
crypto_free_shash(sbi->s_chksum_driver);
--
2.26.2
At 2020-07-23 17:28:06, "Chao Yu" <[email protected]> wrote:
>From: Li Guifu <[email protected]>
>
>During umount, f2fs_put_super() unregisters procfs entries after
>f2fs_destroy_segment_manager(), it may cause use-after-free
>issue when umount races with procfs accessing, fix it by relcating
typo issue: relcating -> relocating?
>f2fs_unregister_sysfs().
>
>[Chao Yu: change commit title/message a bit]
>
>Signed-off-by: Li Guifu <[email protected]>
>Reviewed-by: Chao Yu <[email protected]>
>Signed-off-by: Chao Yu <[email protected]>
>---
> fs/f2fs/super.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
>diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
>index 80cb7cd358f8..bf8bd64c8380 100644
>--- a/fs/f2fs/super.c
>+++ b/fs/f2fs/super.c
>@@ -1175,6 +1175,9 @@ static void f2fs_put_super(struct super_block *sb)
> int i;
> bool dropped;
>
>+ /* unregister procfs/sysfs entries to avoid race case */
>+ f2fs_unregister_sysfs(sbi);
>+
> f2fs_quota_off_umount(sb);
>
> /* prevent remaining shrinker jobs */
>@@ -1240,8 +1243,6 @@ static void f2fs_put_super(struct super_block *sb)
>
> kvfree(sbi->ckpt);
>
>- f2fs_unregister_sysfs(sbi);
>-
> sb->s_fs_info = NULL;
> if (sbi->s_chksum_driver)
> crypto_free_shash(sbi->s_chksum_driver);
>--
>2.26.2
>
>
>
>_______________________________________________
>Linux-f2fs-devel mailing list
>[email protected]
>https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
please check typo issue for comment: relcating->relocating?
Hi Feng,
Thanks for the reminder. :)
Jaegeuk, could you please fix this while merging.
Thanks,
On 2020/7/23 23:26, Song Feng wrote:
> At 2020-07-23 17:28:06, "Chao Yu" <[email protected]> wrote:
>
>> From: Li Guifu <[email protected]>
>>
>> During umount, f2fs_put_super() unregisters procfs entries after
>> f2fs_destroy_segment_manager(), it may cause use-after-free
>> issue when umount races with procfs accessing, fix it by relcating
> typo issue: relcating -> relocating?
>> f2fs_unregister_sysfs().
>>
>> [Chao Yu: change commit title/message a bit]
>>
>> Signed-off-by: Li Guifu <[email protected]>
>> Reviewed-by: Chao Yu <[email protected]>
>> Signed-off-by: Chao Yu <[email protected]>
>> ---
>> fs/f2fs/super.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
>> index 80cb7cd358f8..bf8bd64c8380 100644
>> --- a/fs/f2fs/super.c
>> +++ b/fs/f2fs/super.c
>> @@ -1175,6 +1175,9 @@ static void f2fs_put_super(struct super_block *sb)
>> int i;
>> bool dropped;
>>
>> + /* unregister procfs/sysfs entries to avoid race case */
>> + f2fs_unregister_sysfs(sbi);
>> +
>> f2fs_quota_off_umount(sb);
>>
>> /* prevent remaining shrinker jobs */
>> @@ -1240,8 +1243,6 @@ static void f2fs_put_super(struct super_block *sb)
>>
>> kvfree(sbi->ckpt);
>>
>> - f2fs_unregister_sysfs(sbi);
>> -
>> sb->s_fs_info = NULL;
>> if (sbi->s_chksum_driver)
>> crypto_free_shash(sbi->s_chksum_driver);
>> --
>> 2.26.2
>>
>>
>>
>> _______________________________________________
>> Linux-f2fs-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
> please check typo issue for comment: relcating->relocating?
>