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..b1f75fde4a19 100644
--- a/fs/btrfs/send.c
+++ b/fs/btrfs/send.c
@@ -4999,6 +4999,8 @@ static int put_file_data(struct send_ctx *sctx, u64 offset, u32 len)
lock_page(page);
if (!PageUptodate(page)) {
unlock_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);
put_page(page);
ret = -EIO;
break;
--
2.35.1
On Sat, Feb 05, 2022 at 08:48:23PM +0200, Dāvis Mosāns wrote:
> 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]>
Added to misc-next, thanks.
> ---
> fs/btrfs/send.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
> index d8ccb62aa7d2..b1f75fde4a19 100644
> --- a/fs/btrfs/send.c
> +++ b/fs/btrfs/send.c
> @@ -4999,6 +4999,8 @@ static int put_file_data(struct send_ctx *sctx, u64 offset, u32 len)
> lock_page(page);
> if (!PageUptodate(page)) {
> unlock_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);
> put_page(page);
Good point in v2, using page must be before put_page. I've slightly
reformatted the message so the lines fit to the limit.