On Thu, Apr 16, 2020 at 02:46:25PM -0700, Omar Sandoval wrote:
> +blk_status_t btrfs_submit_read_repair(struct inode *inode,
> + struct bio *failed_bio, u64 phy_offset,
> + struct page *page, unsigned int pgoff,
> + u64 start, u64 end, int failed_mirror,
> + submit_bio_hook_t *submit_bio_hook)
> {
> struct io_failure_record *failrec;
> - struct inode *inode = page->mapping->host;
> + struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
> struct extent_io_tree *tree = &BTRFS_I(inode)->io_tree;
> struct extent_io_tree *failure_tree = &BTRFS_I(inode)->io_failure_tree;
> + struct btrfs_io_bio *failed_io_bio = btrfs_io_bio(failed_bio);
> + int icsum = phy_offset >> inode->i_sb->s_blocksize_bits;
> bool need_validation;
> - struct bio *bio;
> - int read_mode = 0;
> + struct bio *repair_bio;
> + struct btrfs_io_bio *repair_io_bio;
> blk_status_t status;
> int ret;
>
> + btrfs_info(btrfs_sb(inode->i_sb),
> + "Repair Read Error: read error at %llu", start);
This is a new message, there's another one with 'repair read error' but
at 'debug' level, so I'd set that one to debug too. Or maybe drop it
altogether, we want to use the uevents mechanism to communicate such
things to user and not flood the system log.