Currently if we get IO error while doing send then we abort without
logging information about which file caused issue.
So log it to help with debugging.
Signed-off-by: Dāvis Mosāns <[email protected]>
---
fs/btrfs/send.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
index d8ccb62aa7d2..a1fd449a5ecc 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -5000,6 +5000,8 @@ static int put_file_data(struct send_ctx *sctx, u64 offset, u32 len)
if (!PageUptodate(page)) {
unlock_page(page);
put_page(page);
+ btrfs_err(fs_info, "send: IO error at offset=%llu for inode=%llu root=%llu",
+ page_offset(page), sctx->cur_ino, sctx->send_root->root_key.objectid);
ret = -EIO;
break;
}
--
2.35.1
> diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
> index d8ccb62aa7d2..a1fd449a5ecc 100644
> --- a/fs/btrfs/send.c
> +++ b/fs/btrfs/send.c
> @@ -5000,6 +5000,8 @@ static int put_file_data(struct send_ctx *sctx, u64 offset, u32 len)
> if (!PageUptodate(page)) {
> unlock_page(page);
> put_page(page);
> + btrfs_err(fs_info, "send: IO error at offset=%llu for inode=%llu root=%llu",
> + page_offset(page), sctx->cur_ino, sctx->send_root->root_key.objectid);
Thought more about this and I'm guessing using page after put_page is
probably wrong but it did work fine. Submitted v3.