From: Greg Kroah-Hartman Date: Thu, 13 Oct 2022 09:23:41 +0000 (+0200) Subject: drop broken f2fs-invalidate-meta_mapping-before-ipu-dio-write.patch X-Git-Tag: v5.4.218~45 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7be013af1daaccbe3dd08aba6b15d6f35e757065;p=thirdparty%2Fkernel%2Fstable-queue.git drop broken f2fs-invalidate-meta_mapping-before-ipu-dio-write.patch --- diff --git a/queue-5.10/f2fs-invalidate-meta_mapping-before-ipu-dio-write.patch b/queue-5.10/f2fs-invalidate-meta_mapping-before-ipu-dio-write.patch deleted file mode 100644 index d8a20d49afe..00000000000 --- a/queue-5.10/f2fs-invalidate-meta_mapping-before-ipu-dio-write.patch +++ /dev/null @@ -1,74 +0,0 @@ -From e3b49ea36802053f312013fd4ccb6e59920a9f76 Mon Sep 17 00:00:00 2001 -From: Hyeong-Jun Kim -Date: Tue, 2 Nov 2021 16:10:02 +0900 -Subject: f2fs: invalidate META_MAPPING before IPU/DIO write - -From: Hyeong-Jun Kim - -commit e3b49ea36802053f312013fd4ccb6e59920a9f76 upstream. - -Encrypted pages during GC are read and cached in META_MAPPING. -However, due to cached pages in META_MAPPING, there is an issue where -newly written pages are lost by IPU or DIO writes. - -Thread A - f2fs_gc() Thread B -/* phase 3 */ -down_write(i_gc_rwsem) -ra_data_block() ---- (a) -up_write(i_gc_rwsem) - f2fs_direct_IO() : - - down_read(i_gc_rwsem) - - __blockdev_direct_io() - - get_data_block_dio_write() - - f2fs_dio_submit_bio() ---- (b) - - up_read(i_gc_rwsem) -/* phase 4 */ -down_write(i_gc_rwsem) -move_data_block() ---- (c) -up_write(i_gc_rwsem) - -(a) In phase 3 of f2fs_gc(), up-to-date page is read from storage and - cached in META_MAPPING. -(b) In thread B, writing new data by IPU or DIO write on same blkaddr as - read in (a). cached page in META_MAPPING become out-dated. -(c) In phase 4 of f2fs_gc(), out-dated page in META_MAPPING is copied to - new blkaddr. In conclusion, the newly written data in (b) is lost. - -To address this issue, invalidating pages in META_MAPPING before IPU or -DIO write. - -Fixes: 6aa58d8ad20a ("f2fs: readahead encrypted block during GC") -Signed-off-by: Hyeong-Jun Kim -Reviewed-by: Chao Yu -Signed-off-by: Jaegeuk Kim a -Signed-off-by: Chao Yu -Signed-off-by: lvgaofei -Signed-off-by: Greg Kroah-Hartman ---- - fs/f2fs/data.c | 2 ++ - fs/f2fs/segment.c | 3 +++ - 2 files changed, 5 insertions(+) - ---- a/fs/f2fs/data.c -+++ b/fs/f2fs/data.c -@@ -1716,6 +1716,8 @@ sync_out: - if (flag == F2FS_GET_BLOCK_DIO && map->m_flags & F2FS_MAP_MAPPED) - f2fs_wait_on_block_writeback_range(inode, - map->m_pblk, map->m_len); -+ invalidate_mapping_pages(META_MAPPING(sbi), -+ map->m_pblk, map->m_pblk); - - if (flag == F2FS_GET_BLOCK_PRECACHE) { - if (map->m_flags & F2FS_MAP_MAPPED) { ---- a/fs/f2fs/segment.c -+++ b/fs/f2fs/segment.c -@@ -3547,6 +3547,9 @@ int f2fs_inplace_write_data(struct f2fs_ - return -EFSCORRUPTED; - } - -+ invalidate_mapping_pages(META_MAPPING(sbi), -+ fio->new_blkaddr, fio->new_blkaddr); -+ - stat_inc_inplace_blocks(fio->sbi); - - if (fio->bio && !(SM_I(sbi)->ipu_policy & (1 << F2FS_IPU_NOCACHE))) diff --git a/queue-5.10/series b/queue-5.10/series index 544d5bb4bfe..0dff83b6645 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -2,7 +2,6 @@ nilfs2-fix-null-pointer-dereference-at-nilfs_bmap_lookup_at_level.patch nilfs2-fix-use-after-free-bug-of-struct-nilfs_root.patch nilfs2-fix-leak-of-nilfs_root-in-case-of-writer-thread-creation-failure.patch nilfs2-replace-warn_ons-by-nilfs_error-for-checkpoint-acquisition-failure.patch -f2fs-invalidate-meta_mapping-before-ipu-dio-write.patch ceph-don-t-truncate-file-in-atomic_open.patch makefile.extrawarn-move-wcast-function-type-strict-to-w-1.patch docs-update-mediator-information-in-coc-docs.patch diff --git a/queue-5.15/f2fs-invalidate-meta_mapping-before-ipu-dio-write.patch b/queue-5.15/f2fs-invalidate-meta_mapping-before-ipu-dio-write.patch deleted file mode 100644 index 2befb8c3379..00000000000 --- a/queue-5.15/f2fs-invalidate-meta_mapping-before-ipu-dio-write.patch +++ /dev/null @@ -1,74 +0,0 @@ -From e3b49ea36802053f312013fd4ccb6e59920a9f76 Mon Sep 17 00:00:00 2001 -From: Hyeong-Jun Kim -Date: Tue, 2 Nov 2021 16:10:02 +0900 -Subject: f2fs: invalidate META_MAPPING before IPU/DIO write - -From: Hyeong-Jun Kim - -commit e3b49ea36802053f312013fd4ccb6e59920a9f76 upstream. - -Encrypted pages during GC are read and cached in META_MAPPING. -However, due to cached pages in META_MAPPING, there is an issue where -newly written pages are lost by IPU or DIO writes. - -Thread A - f2fs_gc() Thread B -/* phase 3 */ -down_write(i_gc_rwsem) -ra_data_block() ---- (a) -up_write(i_gc_rwsem) - f2fs_direct_IO() : - - down_read(i_gc_rwsem) - - __blockdev_direct_io() - - get_data_block_dio_write() - - f2fs_dio_submit_bio() ---- (b) - - up_read(i_gc_rwsem) -/* phase 4 */ -down_write(i_gc_rwsem) -move_data_block() ---- (c) -up_write(i_gc_rwsem) - -(a) In phase 3 of f2fs_gc(), up-to-date page is read from storage and - cached in META_MAPPING. -(b) In thread B, writing new data by IPU or DIO write on same blkaddr as - read in (a). cached page in META_MAPPING become out-dated. -(c) In phase 4 of f2fs_gc(), out-dated page in META_MAPPING is copied to - new blkaddr. In conclusion, the newly written data in (b) is lost. - -To address this issue, invalidating pages in META_MAPPING before IPU or -DIO write. - -Fixes: 6aa58d8ad20a ("f2fs: readahead encrypted block during GC") -Signed-off-by: Hyeong-Jun Kim -Reviewed-by: Chao Yu -Signed-off-by: Jaegeuk Kim a -Signed-off-by: Chao Yu -Signed-off-by: lvgaofei -Signed-off-by: Greg Kroah-Hartman ---- - fs/f2fs/data.c | 2 ++ - fs/f2fs/segment.c | 3 +++ - 2 files changed, 5 insertions(+) - ---- a/fs/f2fs/data.c -+++ b/fs/f2fs/data.c -@@ -1677,6 +1677,8 @@ sync_out: - if (flag == F2FS_GET_BLOCK_DIO && map->m_flags & F2FS_MAP_MAPPED) - f2fs_wait_on_block_writeback_range(inode, - map->m_pblk, map->m_len); -+ invalidate_mapping_pages(META_MAPPING(sbi), -+ map->m_pblk, map->m_pblk); - - if (flag == F2FS_GET_BLOCK_PRECACHE) { - if (map->m_flags & F2FS_MAP_MAPPED) { ---- a/fs/f2fs/segment.c -+++ b/fs/f2fs/segment.c -@@ -3614,6 +3614,9 @@ int f2fs_inplace_write_data(struct f2fs_ - goto drop_bio; - } - -+ invalidate_mapping_pages(META_MAPPING(sbi), -+ fio->new_blkaddr, fio->new_blkaddr); -+ - stat_inc_inplace_blocks(fio->sbi); - - if (fio->bio && !(SM_I(sbi)->ipu_policy & (1 << F2FS_IPU_NOCACHE))) diff --git a/queue-5.15/series b/queue-5.15/series index a7e2bab4b8a..caa06034619 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -2,5 +2,4 @@ nilfs2-fix-null-pointer-dereference-at-nilfs_bmap_lookup_at_level.patch nilfs2-fix-use-after-free-bug-of-struct-nilfs_root.patch nilfs2-fix-leak-of-nilfs_root-in-case-of-writer-thread-creation-failure.patch nilfs2-replace-warn_ons-by-nilfs_error-for-checkpoint-acquisition-failure.patch -f2fs-invalidate-meta_mapping-before-ipu-dio-write.patch ceph-don-t-truncate-file-in-atomic_open.patch