+++ /dev/null
-From 87058e8dca6c3ecb0ae52d1275ee0e775fac06b9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sat, 25 Jan 2020 12:35:38 +0100
-Subject: btrfs: dev-replace: remove warning for unknown return codes when
- finished
-
-From: David Sterba <dsterba@suse.com>
-
-[ Upstream commit 4cea9037f82a6deed0f2f61e4054b7ae2519ef87 ]
-
-The fstests btrfs/011 triggered a warning at the end of device replace,
-
- [ 1891.998975] BTRFS warning (device vdd): failed setting block group ro: -28
- [ 1892.038338] BTRFS error (device vdd): btrfs_scrub_dev(/dev/vdd, 1, /dev/vdb) failed -28
- [ 1892.059993] ------------[ cut here ]------------
- [ 1892.063032] WARNING: CPU: 2 PID: 2244 at fs/btrfs/dev-replace.c:506 btrfs_dev_replace_start.cold+0xf9/0x140 [btrfs]
- [ 1892.074346] CPU: 2 PID: 2244 Comm: btrfs Not tainted 5.5.0-rc7-default+ #942
- [ 1892.079956] RIP: 0010:btrfs_dev_replace_start.cold+0xf9/0x140 [btrfs]
-
- [ 1892.096576] RSP: 0018:ffffbb58c7b3fd10 EFLAGS: 00010286
- [ 1892.098311] RAX: 00000000ffffffe4 RBX: 0000000000000001 RCX: 8888888888888889
- [ 1892.100342] RDX: 0000000000000001 RSI: ffff9e889645f5d8 RDI: ffffffff92821080
- [ 1892.102291] RBP: ffff9e889645c000 R08: 000001b8878fe1f6 R09: 0000000000000000
- [ 1892.104239] R10: ffffbb58c7b3fd08 R11: 0000000000000000 R12: ffff9e88a0017000
- [ 1892.106434] R13: ffff9e889645f608 R14: ffff9e88794e1000 R15: ffff9e88a07b5200
- [ 1892.108642] FS: 00007fcaed3f18c0(0000) GS:ffff9e88bda00000(0000) knlGS:0000000000000000
- [ 1892.111558] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
- [ 1892.113492] CR2: 00007f52509ff420 CR3: 00000000603dd002 CR4: 0000000000160ee0
-
- [ 1892.115814] Call Trace:
- [ 1892.116896] btrfs_dev_replace_by_ioctl+0x35/0x60 [btrfs]
- [ 1892.118962] btrfs_ioctl+0x1d62/0x2550 [btrfs]
-
-caused by the previous patch ("btrfs: scrub: Require mandatory block
-group RO for dev-replace"). Hitting ENOSPC is possible and could happen
-when the block group is set read-only, preventing NOCOW writes to the
-area that's being accessed by dev-replace.
-
-This has happend with scratch devices of size 12G but not with 5G and
-20G, so this is depends on timing and other activity on the filesystem.
-The whole replace operation is restartable, the space state should be
-examined by the user in any case.
-
-The error code is propagated back to the ioctl caller so the kernel
-warning is causing false alerts.
-
-Signed-off-by: David Sterba <dsterba@suse.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/btrfs/dev-replace.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c
-index 48890826b5e66..4a1d60c81ef9a 100644
---- a/fs/btrfs/dev-replace.c
-+++ b/fs/btrfs/dev-replace.c
-@@ -500,11 +500,8 @@ static int btrfs_dev_replace_start(struct btrfs_fs_info *fs_info,
- &dev_replace->scrub_progress, 0, 1);
-
- ret = btrfs_dev_replace_finishing(fs_info, ret);
-- if (ret == -EINPROGRESS) {
-+ if (ret == -EINPROGRESS)
- ret = BTRFS_IOCTL_DEV_REPLACE_RESULT_SCRUB_INPROGRESS;
-- } else if (ret != -ECANCELED) {
-- WARN_ON(ret);
-- }
-
- return ret;
-
---
-2.20.1
-