Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

f2fs: add error checking in do_write_page()

Otherwise, the filesystem may unaware of potential file corruption.

Signed-off-by: mason.zhang <masonzhang.linuxer@gmail.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>

authored by

mason.zhang and committed by
Jaegeuk Kim
76bb6a72 e75ce117

+8 -2
+8 -2
fs/f2fs/segment.c
··· 3936 3936 int seg_type = log_type_to_seg_type(type); 3937 3937 bool keep_order = (f2fs_lfs_mode(fio->sbi) && 3938 3938 seg_type == CURSEG_COLD_DATA); 3939 + int err; 3939 3940 3940 3941 if (keep_order) 3941 3942 f2fs_down_read(&fio->sbi->io_order_lock); 3942 3943 3943 - if (f2fs_allocate_data_block(fio->sbi, folio, fio->old_blkaddr, 3944 - &fio->new_blkaddr, sum, type, fio)) { 3944 + err = f2fs_allocate_data_block(fio->sbi, folio, fio->old_blkaddr, 3945 + &fio->new_blkaddr, sum, type, fio); 3946 + if (unlikely(err)) { 3947 + f2fs_err_ratelimited(fio->sbi, 3948 + "%s Failed to allocate data block, ino:%u, index:%lu, type:%d, old_blkaddr:0x%x, new_blkaddr:0x%x, err:%d", 3949 + __func__, fio->ino, folio->index, type, 3950 + fio->old_blkaddr, fio->new_blkaddr, err); 3945 3951 if (fscrypt_inode_uses_fs_layer_crypto(folio->mapping->host)) 3946 3952 fscrypt_finalize_bounce_page(&fio->encrypted_page); 3947 3953 folio_end_writeback(folio);