{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":107300166,"defaultBranch":"master","name":"f2fs","ownerLogin":"jaegeuk","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-10-17T17:12:05.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/20465538?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1678144342.008513","currentOid":""},"activityList":{"items":[{"before":"bed6b0317441d82c32506750ccd868d83850e6f4","after":"b4a03db9efac660a8038d0ddf9644d28c3516308","ref":"refs/heads/g-dev-test","pushedAt":"2024-07-10T23:28:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"NO MERGE: f2fs: enable ATGC by default for test\n\nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"NO MERGE: f2fs: enable ATGC by default for test"}},{"before":"f18d0076933689775fe7faeeb10ee93ff01be6ab","after":"bed6b0317441d82c32506750ccd868d83850e6f4","ref":"refs/heads/g-dev-test","pushedAt":"2024-07-10T23:27:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: clean up addrs_per_{inode,block}()\n\nIntroduce a new help addrs_per_page() to wrap common code\nfrom addrs_per_inode() and addrs_per_block() for cleanup.\n\nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: clean up addrs_per_{inode,block}()"}},{"before":"de76b3ed3462632f45cbb3388d23e7504793e6ef","after":"f18d0076933689775fe7faeeb10ee93ff01be6ab","ref":"refs/heads/g-dev-test","pushedAt":"2024-07-10T22:50:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: use meta inode for GC of COW file\n\nIn case of the COW file, new updates and GC writes are already\nseparated to page caches of the atomic file and COW file. As some cases\nthat use the meta inode for GC, there are some race issues between a\nforeground thread and GC thread.\n\nTo handle them, we need to take care when to invalidate and wait\nwriteback of GC pages in COW files as the case of using the meta inode.\nAlso, a pointer from the COW inode to the original inode is required to\ncheck the state of original pages.\n\nFor the former, we can solve the problem by using the meta inode for GC\nof COW files. Then let's get a page from the original inode in\nmove_data_block when GCing the COW file to avoid race condition.\n\nFixes: 3db1de0e582c (\"f2fs: change the current atomic write way\")\nCc: stable@vger.kernel.org #v5.19+\nReviewed-by: Sungjong Seo \nReviewed-by: Yeongjin Gil \nSigned-off-by: Sunmin Jeong \nReviewed-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: use meta inode for GC of COW file"}},{"before":"388a2a0640e16a8887f0d47dab207f344fbdb913","after":"de76b3ed3462632f45cbb3388d23e7504793e6ef","ref":"refs/heads/g-dev-test","pushedAt":"2024-07-09T21:44:27.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: fix to update user block counts in block_operations()\n\nCommit 59c9081bc86e (\"f2fs: allow write page cache when writting cp\")\nallows write() to write data to page cache during checkpoint, so block\ncount fields like .total_valid_block_count, .alloc_valid_block_count\nand .rf_node_block_count may encounter race condition as below:\n\nCP\t\t\t\tThread A\n- write_checkpoint\n - block_operations\n - f2fs_down_write(&sbi->node_change)\n - __prepare_cp_block\n : ckpt->valid_block_count = .total_valid_block_count\n - f2fs_up_write(&sbi->node_change)\n\t\t\t\t- write\n\t\t\t\t - f2fs_preallocate_blocks\n\t\t\t\t - f2fs_map_blocks(,F2FS_GET_BLOCK_PRE_AIO)\n\t\t\t\t - f2fs_map_lock\n\t\t\t\t - f2fs_down_read(&sbi->node_change)\n\t\t\t\t - f2fs_reserve_new_blocks\n\t\t\t\t - inc_valid_block_count\n\t\t\t\t : percpu_counter_add(&sbi->alloc_valid_block_count, count)\n\t\t\t\t : sbi->total_valid_block_count += count\n\t\t\t\t - f2fs_up_read(&sbi->node_change)\n - do_checkpoint\n : sbi->last_valid_block_count = sbi->total_valid_block_count\n : percpu_counter_set(&sbi->alloc_valid_block_count, 0)\n : percpu_counter_set(&sbi->rf_node_block_count, 0)\n\t\t\t\t- fsync\n\t\t\t\t - need_do_checkpoint\n\t\t\t\t - f2fs_space_for_roll_forward\n\t\t\t\t : alloc_valid_block_count was reset to zero,\n\t\t\t\t so, it may missed last data during checkpoint\n\nLet's change to update .total_valid_block_count, .alloc_valid_block_count\nand .rf_node_block_count in block_operations(), then their access can be\nprotected by .node_change and .cp_rwsem lock, so that it can avoid above\nrace condition.\n\nFixes: 59c9081bc86e (\"f2fs: allow write page cache when writting cp\")\nCc: Yunlei He \nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: fix to update user block counts in block_operations()"}},{"before":"8cb1f4080dd91c6e6b01dbea013a3f42341cb6a1","after":"388a2a0640e16a8887f0d47dab207f344fbdb913","ref":"refs/heads/g-dev-test","pushedAt":"2024-06-24T17:54:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: remove redundant sanity check in sanity_check_inode()\n\nCommit f240d3aaf5a1 (\"f2fs: do more sanity check on inode\") missed\nto remove redundant sanity check on flexible_inline_xattr flag, fix\nit.\n\nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: remove redundant sanity check in sanity_check_inode()"}},{"before":"1314b19b3358a1cc648bfd4dd33650a5cabb2b57","after":"8cb1f4080dd91c6e6b01dbea013a3f42341cb6a1","ref":"refs/heads/g-dev-test","pushedAt":"2024-06-21T22:55:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid\n\nmkdir /mnt/test/comp\nf2fs_io setflags compression /mnt/test/comp\ndd if=/dev/zero of=/mnt/test/comp/testfile bs=16k count=1\ntruncate --size 13 /mnt/test/comp/testfile\n\nIn the above scenario, we can get a BUG_ON.\n kernel BUG at fs/f2fs/segment.c:3589!\n Call Trace:\n do_write_page+0x78/0x390 [f2fs]\n f2fs_outplace_write_data+0x62/0xb0 [f2fs]\n f2fs_do_write_data_page+0x275/0x740 [f2fs]\n f2fs_write_single_data_page+0x1dc/0x8f0 [f2fs]\n f2fs_write_multi_pages+0x1e5/0xae0 [f2fs]\n f2fs_write_cache_pages+0xab1/0xc60 [f2fs]\n f2fs_write_data_pages+0x2d8/0x330 [f2fs]\n do_writepages+0xcf/0x270\n __writeback_single_inode+0x44/0x350\n writeback_sb_inodes+0x242/0x530\n __writeback_inodes_wb+0x54/0xf0\n wb_writeback+0x192/0x310\n wb_workfn+0x30d/0x400\n\nThe reason is we gave CURSEG_ALL_DATA_ATGC to COMPR_ADDR where the\npage was set the gcing flag by set_cluster_dirty().\n\nCc: stable@vger.kernel.org\nFixes: 4961acdd65c9 (\"f2fs: fix to tag gcing flag on page during block migration\")\nReviewed-by: Chao Yu \nTested-by: Will McVicker \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid"}},{"before":"96886cdcc58b9d39e0f1e208aea51b36b48ae7a0","after":"1314b19b3358a1cc648bfd4dd33650a5cabb2b57","ref":"refs/heads/g-dev-test","pushedAt":"2024-06-18T02:33:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid\n\nmkdir /mnt/test/comp\nf2fs_io setflags compression /mnt/test/comp\ndd if=/dev/zero of=/mnt/test/comp/testfile bs=16k count=1\ntruncate --size 13 /mnt/test/comp/testfile\n\nIn the above scenario, we can get a BUG_ON.\n kernel BUG at fs/f2fs/segment.c:3589!\n Call Trace:\n do_write_page+0x78/0x390 [f2fs]\n f2fs_outplace_write_data+0x62/0xb0 [f2fs]\n f2fs_do_write_data_page+0x275/0x740 [f2fs]\n f2fs_write_single_data_page+0x1dc/0x8f0 [f2fs]\n f2fs_write_multi_pages+0x1e5/0xae0 [f2fs]\n f2fs_write_cache_pages+0xab1/0xc60 [f2fs]\n f2fs_write_data_pages+0x2d8/0x330 [f2fs]\n do_writepages+0xcf/0x270\n __writeback_single_inode+0x44/0x350\n writeback_sb_inodes+0x242/0x530\n __writeback_inodes_wb+0x54/0xf0\n wb_writeback+0x192/0x310\n wb_workfn+0x30d/0x400\n\nThe reason is we gave CURSEG_ALL_DATA_ATGC to COMPR_ADDR where the\npage was set the gcing flag by set_cluster_dirty().\n\nCc: stable@vger.kernel.org\nFixes: 4961acdd65c9 (\"f2fs: fix to tag gcing flag on page during block migration\")\nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid"}},{"before":"8b827089c42fb0909b8b4ee8599c613c8f3db8b8","after":"96886cdcc58b9d39e0f1e208aea51b36b48ae7a0","ref":"refs/heads/g-dev-test","pushedAt":"2024-06-18T02:20:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid\n\nmkdir /mnt/test/comp\nf2fs_io setflags compression /mnt/test/comp\ndd if=/dev/zero of=/mnt/test/comp/testfile bs=16k count=1\ntruncate --size 13 /mnt/test/comp/testfile\n\nIn the above scenario, we can get a BUG_ON.\n kernel BUG at fs/f2fs/segment.c:3589!\n Call Trace:\n do_write_page+0x78/0x390 [f2fs]\n f2fs_outplace_write_data+0x62/0xb0 [f2fs]\n f2fs_do_write_data_page+0x275/0x740 [f2fs]\n f2fs_write_single_data_page+0x1dc/0x8f0 [f2fs]\n f2fs_write_multi_pages+0x1e5/0xae0 [f2fs]\n f2fs_write_cache_pages+0xab1/0xc60 [f2fs]\n f2fs_write_data_pages+0x2d8/0x330 [f2fs]\n do_writepages+0xcf/0x270\n __writeback_single_inode+0x44/0x350\n writeback_sb_inodes+0x242/0x530\n __writeback_inodes_wb+0x54/0xf0\n wb_writeback+0x192/0x310\n wb_workfn+0x30d/0x400\n\nThe reason is we gave CURSEG_ALL_DATA_ATGC to COMPR_ADDR where the\npage was set the gcing flag by set_cluster_dirty().\n\nCc: stable@vger.kernel.org\nFixes: 4961acdd65c9 (\"f2fs: fix to tag gcing flag on page during block migration\")\nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: assign CURSEG_ALL_DATA_ATGC if blkaddr is valid"}},{"before":"be0caae74064e753e8b60d3005e5bea2b41d906f","after":"8b827089c42fb0909b8b4ee8599c613c8f3db8b8","ref":"refs/heads/g-dev-test","pushedAt":"2024-06-12T18:25:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: clean up set REQ_RAHEAD given rac\n\nLet's set REQ_RAHEAD per rac by single source.\n\nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: clean up set REQ_RAHEAD given rac"}},{"before":"f57a967edce51f63796afd67d8e821326775c830","after":"be0caae74064e753e8b60d3005e5bea2b41d906f","ref":"refs/heads/g-dev-test","pushedAt":"2024-06-12T18:24:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: clean up set REQ_RAHEAD given rac\n\nLet's set REQ_RAHEAD per rac by single source.\n\nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: clean up set REQ_RAHEAD given rac"}},{"before":"298b1e4182d657c3e388adcc29477904e9600ed5","after":"f57a967edce51f63796afd67d8e821326775c830","ref":"refs/heads/g-dev-test","pushedAt":"2024-06-12T18:22:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: clean up set REQ_RAHEAD given rac\n\nLet's set REQ_RAHEAD per rac by single source.\n\nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: clean up set REQ_RAHEAD given rac"}},{"before":"5ef59fd284b00911cfe034d6342862946f445389","after":"298b1e4182d657c3e388adcc29477904e9600ed5","ref":"refs/heads/g-dev-test","pushedAt":"2024-06-12T15:46:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: fix to truncate preallocated blocks in f2fs_file_open()\n\nchenyuwen reports a f2fs bug as below:\n\nUnable to handle kernel NULL pointer dereference at virtual address 0000000000000011\n fscrypt_set_bio_crypt_ctx+0x78/0x1e8\n f2fs_grab_read_bio+0x78/0x208\n f2fs_submit_page_read+0x44/0x154\n f2fs_get_read_data_page+0x288/0x5f4\n f2fs_get_lock_data_page+0x60/0x190\n truncate_partial_data_page+0x108/0x4fc\n f2fs_do_truncate_blocks+0x344/0x5f0\n f2fs_truncate_blocks+0x6c/0x134\n f2fs_truncate+0xd8/0x200\n f2fs_iget+0x20c/0x5ac\n do_garbage_collect+0x5d0/0xf6c\n f2fs_gc+0x22c/0x6a4\n f2fs_disable_checkpoint+0xc8/0x310\n f2fs_fill_super+0x14bc/0x1764\n mount_bdev+0x1b4/0x21c\n f2fs_mount+0x20/0x30\n legacy_get_tree+0x50/0xbc\n vfs_get_tree+0x5c/0x1b0\n do_new_mount+0x298/0x4cc\n path_mount+0x33c/0x5fc\n __arm64_sys_mount+0xcc/0x15c\n invoke_syscall+0x60/0x150\n el0_svc_common+0xb8/0xf8\n do_el0_svc+0x28/0xa0\n el0_svc+0x24/0x84\n el0t_64_sync_handler+0x88/0xec\n\nIt is because inode.i_crypt_info is not initialized during below path:\n- mount\n - f2fs_fill_super\n - f2fs_disable_checkpoint\n - f2fs_gc\n - f2fs_iget\n - f2fs_truncate\n\nSo, let's relocate truncation of preallocated blocks to f2fs_file_open(),\nafter fscrypt_file_open().\n\nFixes: d4dd19ec1ea0 (\"f2fs: do not expose unwritten blocks to user by DIO\")\nReported-by: chenyuwen \nCloses: https://lore.kernel.org/linux-kernel/20240517085327.1188515-1-yuwen.chen@xjmz.com\nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: fix to truncate preallocated blocks in f2fs_file_open()"}},{"before":"9e2fc0b6f2cd47f4bbed67c2828d67149b96039f","after":"5ef59fd284b00911cfe034d6342862946f445389","ref":"refs/heads/g-dev-test","pushedAt":"2024-06-04T18:13:51.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: fix to truncate preallocated blocks in f2fs_file_open()\n\nchenyuwen reports a f2fs bug as below:\n\nUnable to handle kernel NULL pointer dereference at virtual address 0000000000000011\n fscrypt_set_bio_crypt_ctx+0x78/0x1e8\n f2fs_grab_read_bio+0x78/0x208\n f2fs_submit_page_read+0x44/0x154\n f2fs_get_read_data_page+0x288/0x5f4\n f2fs_get_lock_data_page+0x60/0x190\n truncate_partial_data_page+0x108/0x4fc\n f2fs_do_truncate_blocks+0x344/0x5f0\n f2fs_truncate_blocks+0x6c/0x134\n f2fs_truncate+0xd8/0x200\n f2fs_iget+0x20c/0x5ac\n do_garbage_collect+0x5d0/0xf6c\n f2fs_gc+0x22c/0x6a4\n f2fs_disable_checkpoint+0xc8/0x310\n f2fs_fill_super+0x14bc/0x1764\n mount_bdev+0x1b4/0x21c\n f2fs_mount+0x20/0x30\n legacy_get_tree+0x50/0xbc\n vfs_get_tree+0x5c/0x1b0\n do_new_mount+0x298/0x4cc\n path_mount+0x33c/0x5fc\n __arm64_sys_mount+0xcc/0x15c\n invoke_syscall+0x60/0x150\n el0_svc_common+0xb8/0xf8\n do_el0_svc+0x28/0xa0\n el0_svc+0x24/0x84\n el0t_64_sync_handler+0x88/0xec\n\nIt is because inode.i_crypt_info is not initialized during below path:\n- mount\n - f2fs_fill_super\n - f2fs_disable_checkpoint\n - f2fs_gc\n - f2fs_iget\n - f2fs_truncate\n\nSo, let's relocate truncation of preallocated blocks to f2fs_file_open(),\nafter fscrypt_file_open().\n\nFixes: d4dd19ec1ea0 (\"f2fs: do not expose unwritten blocks to user by DIO\")\nReported-by: chenyuwen \nCloses: https://lore.kernel.org/linux-kernel/20240517085327.1188515-1-yuwen.chen@xjmz.com\nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: fix to truncate preallocated blocks in f2fs_file_open()"}},{"before":"c7b346312c402597a6e5ca673d97f81935891b99","after":"9e2fc0b6f2cd47f4bbed67c2828d67149b96039f","ref":"refs/heads/g-dev-test","pushedAt":"2024-05-31T00:06:58.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: fix to avoid use SSR allocate when do defragment\n\nSSR allocate mode will be used when doing file defragment\nif ATGC is working at the same time, that is because\nset_page_private_gcing may make CURSEG_ALL_DATA_ATGC segment\ntype got in f2fs_allocate_data_block when defragment page\nis writeback, which may cause file fragmentation is worse.\n\nA file with 2 fragmentations is changed as following after defragment:\n\n----------------file info-------------------\nsensorsdata :\n--------------------------------------------\ndev [254:48]\nino [0x 3029 : 12329]\nmode [0x 81b0 : 33200]\nnlink [0x 1 : 1]\nuid [0x 27e6 : 10214]\ngid [0x 27e6 : 10214]\nsize [0x 242000 : 2367488]\nblksize [0x 1000 : 4096]\nblocks [0x 1210 : 4624]\n--------------------------------------------\n\nfile_pos start_blk end_blk blks\n 0 11361121 11361207 87\n 356352 11361215 11361216 2\n 364544 11361218 11361218 1\n 368640 11361220 11361221 2\n 376832 11361224 11361225 2\n 385024 11361227 11361238 12\n 434176 11361240 11361252 13\n 487424 11361254 11361254 1\n 491520 11361271 11361279 9\n 528384 3681794 3681795 2\n 536576 3681797 3681797 1\n 540672 3681799 3681799 1\n 544768 3681803 3681803 1\n 548864 3681805 3681805 1\n 552960 3681807 3681807 1\n 557056 3681809 3681809 1\n\nSigned-off-by: Zhiguo Niu \nReviewed-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: fix to avoid use SSR allocate when do defragment"}},{"before":"72ece20127a366518d91c5ab8e9dd8bf7d7fdb2f","after":"c7b346312c402597a6e5ca673d97f81935891b99","ref":"refs/heads/g-dev-test","pushedAt":"2024-05-22T20:17:04.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: add support for FS_IOC_GETFSSYSFSPATH\n\nFS_IOC_GETFSSYSFSPATH ioctl expects sysfs sub-path of a filesystem, the\nformat can be \"$FSTYP/$SYSFS_IDENTIFIER\" under /sys/fs, it can helps to\nstandardizes exporting sysfs datas across filesystems.\n\nThis patch wires up FS_IOC_GETFSSYSFSPATH for f2fs, it will output\n\"f2fs/\".\n\nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: add support for FS_IOC_GETFSSYSFSPATH"}},{"before":"16409fdbb8828d7ae829bc4ac4e09e7ff02f8878","after":"72ece20127a366518d91c5ab8e9dd8bf7d7fdb2f","ref":"refs/heads/g-dev-test","pushedAt":"2024-05-20T21:00:18.000Z","pushType":"push","commitsCount":10000,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"Merge tag 'f2fs-for-6.10.rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs\n\nPull f2fs updates from Jaegeuk Kim:\n \"In this round, we've tried to address some performance issues on zoned\n storage such as direct IO and write_hints. In addition, we've migrated\n some IO paths using folio. Meanwhile, there are multiple bug fixes in\n the compression paths, sanity check conditions, and error handlers.\n\n Enhancements:\n - allow direct io of pinned files for zoned storage\n - assign the write hint per stream by default\n - convert read paths and test_writeback to folio\n - avoid allocating WARM_DATA segment for direct IO\n\n Bug fixes:\n - fix false alarm on invalid block address\n - fix to add missing iput() in gc_data_segment()\n - fix to release node block count in error path of\n f2fs_new_node_page()\n - compress:\n - don't allow unaligned truncation on released compress inode\n - cover {reserve,release}_compress_blocks() w/ cp_rwsem lock\n - fix error path of inc_valid_block_count()\n - fix to update i_compr_blocks correctly\n - fix block migration when section is not aligned to pow2\n - don't trigger OPU on pinfile for direct IO\n - fix to do sanity check on i_xattr_nid in sanity_check_inode()\n - write missing last sum blk of file pinning section\n - clear writeback when compression failed\n - fix to adjust appropirate defragment pg_end\n\n As usual, there are several minor code clean-ups, and fixes to manage\n missing corner cases in the error paths\"\n\n* tag 'f2fs-for-6.10.rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (50 commits)\n f2fs: initialize last_block_in_bio variable\n f2fs: Add inline to f2fs_build_fault_attr() stub\n f2fs: fix some ambiguous comments\n f2fs: fix to add missing iput() in gc_data_segment()\n f2fs: allow dirty sections with zero valid block for checkpoint disabled\n f2fs: compress: don't allow unaligned truncation on released compress inode\n f2fs: fix to release node block count in error path of f2fs_new_node_page()\n f2fs: compress: fix to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock\n f2fs: compress: fix error path of inc_valid_block_count()\n f2fs: compress: fix typo in f2fs_reserve_compress_blocks()\n f2fs: compress: fix to update i_compr_blocks correctly\n f2fs: check validation of fault attrs in f2fs_build_fault_attr()\n f2fs: fix to limit gc_pin_file_threshold\n f2fs: remove unused GC_FAILURE_PIN\n f2fs: use f2fs_{err,info}_ratelimited() for cleanup\n f2fs: fix block migration when section is not aligned to pow2\n f2fs: zone: fix to don't trigger OPU on pinfile for direct IO\n f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()\n f2fs: fix to avoid allocating WARM_DATA segment for direct IO\n f2fs: remove redundant parameter in is_next_segment_free()\n ...","shortMessageHtmlLink":"Merge tag 'f2fs-for-6.10.rc1' of git://git.kernel.org/pub/scm/linux/k…"}},{"before":"7521523a4c1d650a200af6605d0e111a58fb9acc","after":"16409fdbb8828d7ae829bc4ac4e09e7ff02f8878","ref":"refs/heads/g-dev-test","pushedAt":"2024-05-15T04:19:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: initialize last_block_in_bio variable\n\nInitialize last_block_in_bio of struct f2fs_bio_info and clean up code.\n\nSigned-off-by: Wu Bo \nReviewed-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: initialize last_block_in_bio variable"}},{"before":"991b6bdf1b009832256f8bc3035d4bcba664657b","after":"7521523a4c1d650a200af6605d0e111a58fb9acc","ref":"refs/heads/g-dev-test","pushedAt":"2024-05-14T16:10:19.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: initialize last_block_in_bio variable\n\nInitialize last_block_in_bio of struct f2fs_bio_info and clean up code.\n\nSigned-off-by: Wu Bo \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: initialize last_block_in_bio variable"}},{"before":"29ed2b5dd521ce7c5d8466cd70bf0cc9d07afeee","after":"991b6bdf1b009832256f8bc3035d4bcba664657b","ref":"refs/heads/g-dev-test","pushedAt":"2024-05-11T00:41:54.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: fix some ambiguous comments\n\nAfter commit d7e9a9037de2 (\"f2fs: Support Block Size == Page Size\"),\nSome comments are confused and just correct with block size is 4KB.\n\nSigned-off-by: Zhiguo Niu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: fix some ambiguous comments"}},{"before":"ebaade0537e22b4746eb08de1e9f498d61157335","after":"29ed2b5dd521ce7c5d8466cd70bf0cc9d07afeee","ref":"refs/heads/g-dev-test","pushedAt":"2024-05-10T03:39:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: compress: don't allow unaligned truncation on released compress inode\n\nf2fs image may be corrupted after below testcase:\n- mkfs.f2fs -O extra_attr,compression -f /dev/vdb\n- mount /dev/vdb /mnt/f2fs\n- touch /mnt/f2fs/file\n- f2fs_io setflags compression /mnt/f2fs/file\n- dd if=/dev/zero of=/mnt/f2fs/file bs=4k count=4\n- f2fs_io release_cblocks /mnt/f2fs/file\n- truncate -s 8192 /mnt/f2fs/file\n- umount /mnt/f2fs\n- fsck.f2fs /dev/vdb\n\n[ASSERT] (fsck_chk_inode_blk:1256) --> ino: 0x5 has i_blocks: 0x00000002, but has 0x3 blocks\n[FSCK] valid_block_count matching with CP [Fail] [0x4, 0x5]\n[FSCK] other corrupted bugs [Fail]\n\nThe reason is: partial truncation assume compressed inode has reserved\nblocks, after partial truncation, valid block count may change w/o\n.i_blocks and .total_valid_block_count update, result in corruption.\n\nThis patch only allow cluster size aligned truncation on released\ncompress inode for fixing.\n\nFixes: c61404153eb6 (\"f2fs: introduce FI_COMPRESS_RELEASED instead of using IMMUTABLE bit\")\nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: compress: don't allow unaligned truncation on released compress…"}},{"before":"4ed886b187f47447ad559619c48c086f432d2b77","after":"ebaade0537e22b4746eb08de1e9f498d61157335","ref":"refs/heads/g-dev-test","pushedAt":"2024-05-09T18:25:42.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: fix to release node block count in error path of f2fs_new_node_page()\n\nIt missed to call dec_valid_node_count() to release node block count\nin error path, fix it.\n\nFixes: 141170b759e0 (\"f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page()\")\nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: fix to release node block count in error path of f2fs_new_node_…"}},{"before":"ae015df696afb2996ab407d1689bf048f7f58d13","after":"4ed886b187f47447ad559619c48c086f432d2b77","ref":"refs/heads/g-dev-test","pushedAt":"2024-05-09T01:06:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: check validation of fault attrs in f2fs_build_fault_attr()\n\n- It missed to check validation of fault attrs in parse_options(),\nlet's fix to add check condition in f2fs_build_fault_attr().\n- Use f2fs_build_fault_attr() in __sbi_store() to clean up code.\n\nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: check validation of fault attrs in f2fs_build_fault_attr()"}},{"before":"d74f720c3f15357ceb03f3f92c97252d85274e44","after":"ae015df696afb2996ab407d1689bf048f7f58d13","ref":"refs/heads/g-dev-test","pushedAt":"2024-04-29T17:41:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: fix block migration when section is not aligned to pow2\n\nAs for zoned-UFS, f2fs section size is forced to zone size. And zone\nsize may not aligned to pow2.\n\nFixes: 859fca6b706e (\"f2fs: swap: support migrating swapfile in aligned write mode\")\nSigned-off-by: Liao Yuanhong \nSigned-off-by: Wu Bo \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: fix block migration when section is not aligned to pow2"}},{"before":"18f9a50265074a5a5b82ec051c61cf856ec67e60","after":"d74f720c3f15357ceb03f3f92c97252d85274e44","ref":"refs/heads/g-dev-test","pushedAt":"2024-04-29T17:39:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: zone: fix to don't trigger OPU on pinfile for direct IO\n\nOtherwise, it breaks pinfile's sematics.\n\nCc: Daeho Jeong \nSigned-off-by: Chao Yu \nReviewed-by: Daeho Jeong \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: zone: fix to don't trigger OPU on pinfile for direct IO"}},{"before":"bf5cdda95c6386d67674b5ad811f9202479addc3","after":"18f9a50265074a5a5b82ec051c61cf856ec67e60","ref":"refs/heads/g-dev-test","pushedAt":"2024-04-29T16:29:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()\n\nsyzbot reports a kernel bug as below:\n\nF2FS-fs (loop0): Mounted with checkpoint version = 48b305e4\n==================================================================\nBUG: KASAN: slab-out-of-bounds in f2fs_test_bit fs/f2fs/f2fs.h:2933 [inline]\nBUG: KASAN: slab-out-of-bounds in current_nat_addr fs/f2fs/node.h:213 [inline]\nBUG: KASAN: slab-out-of-bounds in f2fs_get_node_info+0xece/0x1200 fs/f2fs/node.c:600\nRead of size 1 at addr ffff88807a58c76c by task syz-executor280/5076\n\nCPU: 1 PID: 5076 Comm: syz-executor280 Not tainted 6.9.0-rc5-syzkaller #0\nHardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024\nCall Trace:\n \n __dump_stack lib/dump_stack.c:88 [inline]\n dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114\n print_address_description mm/kasan/report.c:377 [inline]\n print_report+0x169/0x550 mm/kasan/report.c:488\n kasan_report+0x143/0x180 mm/kasan/report.c:601\n f2fs_test_bit fs/f2fs/f2fs.h:2933 [inline]\n current_nat_addr fs/f2fs/node.h:213 [inline]\n f2fs_get_node_info+0xece/0x1200 fs/f2fs/node.c:600\n f2fs_xattr_fiemap fs/f2fs/data.c:1848 [inline]\n f2fs_fiemap+0x55d/0x1ee0 fs/f2fs/data.c:1925\n ioctl_fiemap fs/ioctl.c:220 [inline]\n do_vfs_ioctl+0x1c07/0x2e50 fs/ioctl.c:838\n __do_sys_ioctl fs/ioctl.c:902 [inline]\n __se_sys_ioctl+0x81/0x170 fs/ioctl.c:890\n do_syscall_x64 arch/x86/entry/common.c:52 [inline]\n do_syscall_64+0xf5/0x240 arch/x86/entry/common.c:83\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n\nThe root cause is we missed to do sanity check on i_xattr_nid during\nf2fs_iget(), so that in fiemap() path, current_nat_addr() will access\nnat_bitmap w/ offset from invalid i_xattr_nid, result in triggering\nkasan bug report, fix it.\n\nReported-and-tested-by: syzbot+3694e283cf5c40df6d14@syzkaller.appspotmail.com\nCloses: https://lore.kernel.org/linux-f2fs-devel/00000000000094036c0616e72a1d@google.com\nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()"}},{"before":"b76ee9048b89d293eba6d6881abb33e27b9beff8","after":"bf5cdda95c6386d67674b5ad811f9202479addc3","ref":"refs/heads/g-dev-test","pushedAt":"2024-04-29T16:23:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()\n\nsyzbot reports a kernel bug as below:\n\nF2FS-fs (loop0): Mounted with checkpoint version = 48b305e4\n==================================================================\nBUG: KASAN: slab-out-of-bounds in f2fs_test_bit fs/f2fs/f2fs.h:2933 [inline]\nBUG: KASAN: slab-out-of-bounds in current_nat_addr fs/f2fs/node.h:213 [inline]\nBUG: KASAN: slab-out-of-bounds in f2fs_get_node_info+0xece/0x1200 fs/f2fs/node.c:600\nRead of size 1 at addr ffff88807a58c76c by task syz-executor280/5076\n\nCPU: 1 PID: 5076 Comm: syz-executor280 Not tainted 6.9.0-rc5-syzkaller #0\nHardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024\nCall Trace:\n \n __dump_stack lib/dump_stack.c:88 [inline]\n dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114\n print_address_description mm/kasan/report.c:377 [inline]\n print_report+0x169/0x550 mm/kasan/report.c:488\n kasan_report+0x143/0x180 mm/kasan/report.c:601\n f2fs_test_bit fs/f2fs/f2fs.h:2933 [inline]\n current_nat_addr fs/f2fs/node.h:213 [inline]\n f2fs_get_node_info+0xece/0x1200 fs/f2fs/node.c:600\n f2fs_xattr_fiemap fs/f2fs/data.c:1848 [inline]\n f2fs_fiemap+0x55d/0x1ee0 fs/f2fs/data.c:1925\n ioctl_fiemap fs/ioctl.c:220 [inline]\n do_vfs_ioctl+0x1c07/0x2e50 fs/ioctl.c:838\n __do_sys_ioctl fs/ioctl.c:902 [inline]\n __se_sys_ioctl+0x81/0x170 fs/ioctl.c:890\n do_syscall_x64 arch/x86/entry/common.c:52 [inline]\n do_syscall_64+0xf5/0x240 arch/x86/entry/common.c:83\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n\nThe root cause is we missed to do sanity check on i_xattr_nid during\nf2fs_iget(), so that in fiemap() path, current_nat_addr() will access\nnat_bitmap w/ offset from invalid i_xattr_nid, result in triggering\nkasan bug report, fix it.\n\nReported-and-tested-by: syzbot+3694e283cf5c40df6d14@syzkaller.appspotmail.com\nCloses: https://lore.kernel.org/linux-f2fs-devel/00000000000094036c0616e72a1d@google.com\nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()"}},{"before":"3763f9effcdccc38bde614c911f331203f204a01","after":"b76ee9048b89d293eba6d6881abb33e27b9beff8","ref":"refs/heads/g-dev-test","pushedAt":"2024-04-26T23:36:03.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()\n\nsyzbot reports a kernel bug as below:\n\nF2FS-fs (loop0): Mounted with checkpoint version = 48b305e4\n==================================================================\nBUG: KASAN: slab-out-of-bounds in f2fs_test_bit fs/f2fs/f2fs.h:2933 [inline]\nBUG: KASAN: slab-out-of-bounds in current_nat_addr fs/f2fs/node.h:213 [inline]\nBUG: KASAN: slab-out-of-bounds in f2fs_get_node_info+0xece/0x1200 fs/f2fs/node.c:600\nRead of size 1 at addr ffff88807a58c76c by task syz-executor280/5076\n\nCPU: 1 PID: 5076 Comm: syz-executor280 Not tainted 6.9.0-rc5-syzkaller #0\nHardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024\nCall Trace:\n \n __dump_stack lib/dump_stack.c:88 [inline]\n dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114\n print_address_description mm/kasan/report.c:377 [inline]\n print_report+0x169/0x550 mm/kasan/report.c:488\n kasan_report+0x143/0x180 mm/kasan/report.c:601\n f2fs_test_bit fs/f2fs/f2fs.h:2933 [inline]\n current_nat_addr fs/f2fs/node.h:213 [inline]\n f2fs_get_node_info+0xece/0x1200 fs/f2fs/node.c:600\n f2fs_xattr_fiemap fs/f2fs/data.c:1848 [inline]\n f2fs_fiemap+0x55d/0x1ee0 fs/f2fs/data.c:1925\n ioctl_fiemap fs/ioctl.c:220 [inline]\n do_vfs_ioctl+0x1c07/0x2e50 fs/ioctl.c:838\n __do_sys_ioctl fs/ioctl.c:902 [inline]\n __se_sys_ioctl+0x81/0x170 fs/ioctl.c:890\n do_syscall_x64 arch/x86/entry/common.c:52 [inline]\n do_syscall_64+0xf5/0x240 arch/x86/entry/common.c:83\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n\nThe root cause is we missed to do sanity check on i_xattr_nid during\nf2fs_iget(), so that in fiemap() path, current_nat_addr() will access\nnat_bitmap w/ offset from invalid i_xattr_nid, result in triggering\nkasan bug report, fix it.\n\nReported-and-tested-by: syzbot+3694e283cf5c40df6d14@syzkaller.appspotmail.com\nCloses: https://lore.kernel.org/linux-f2fs-devel/00000000000094036c0616e72a1d@google.com\nSigned-off-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()"}},{"before":"4ce792aa865c54a583cd70ac3f03906b81b99055","after":"3763f9effcdccc38bde614c911f331203f204a01","ref":"refs/heads/g-dev-test","pushedAt":"2024-04-25T15:34:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: use helper to print zone condition\n\nTo make code clean, use blk_zone_cond_str() to print debug information.\n\nSigned-off-by: Wu Bo \nReviewed-by: Chao Yu \nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: use helper to print zone condition"}},{"before":"e22afea229bf9d0380036af694c64d2ff391ad4e","after":"4ce792aa865c54a583cd70ac3f03906b81b99055","ref":"refs/heads/g-dev-test","pushedAt":"2024-04-24T17:36:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: fix false alarm on invalid block address\n\nf2fs_ra_meta_pages can try to read ahead on invalid block address which is\nnot the corruption case.\n\nCc: # v6.9+\nBugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=218770\nFixes: 31f85ccc84b8 (\"f2fs: unify the error handling of f2fs_is_valid_blkaddr\")\nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: fix false alarm on invalid block address"}},{"before":"0f894ad49a405d5ea7d7186864bb56722a10070f","after":"e22afea229bf9d0380036af694c64d2ff391ad4e","ref":"refs/heads/g-dev-test","pushedAt":"2024-04-19T17:58:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jaegeuk","name":"Jaegeuk Kim","path":"/jaegeuk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20465538?s=80&v=4"},"commit":{"message":"f2fs: clear writeback when compression failed\n\nLet's stop issuing compressed writes and clear their writeback flags.\n\nSigned-off-by: Jaegeuk Kim ","shortMessageHtmlLink":"f2fs: clear writeback when compression failed"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEfEPkgwA","startCursor":null,"endCursor":null}},"title":"Activity · jaegeuk/f2fs"}