From: Nikolay Borisov <nborisov@suse.com>
To: linux-btrfs@vger.kernel.org
Cc: Nikolay Borisov <nborisov@suse.com>
Subject: [PATCH 0/8] Misc improvements to dev-replace code
Date: Tue, 14 May 2019 13:54:37 +0300 [thread overview]
Message-ID: <20190514105445.23051-1-nborisov@suse.com> (raw)
While fixing the failing ASSERT in device replace finishing procedure I also
found several oddities/bugs. Here is the resultant pile.
First 3 patches are a couple simple cleanups.
Patch 4 fixes a real bug since btrfs_init_dev_replace_tgtdev accesses values
which might be updated by transaction commit, so naturally it should be called
after the transaction is actually committed. I think this should go to stable.
Patch 5 cleanups unlocking code in btrfs_dev_replace_start removing a goto label
and a local variable.
Patch 6 also fixes a bug, since persisting the dev-replace item relied on global
reserve being able to satisfy the condition. While this is not wrong per-se I
find it somewhat subtle, so just be explicit and start a transaction with
reservation for at least 1 item.
Patch 7 fixes the race condition which caused the newly added ASSERT to trigger.
I've added the Fixes: tag to point to the first commit which introduced taking
chunk_mutex. This is also stable material.
Patch 8 is also a minor cleanup, just removing what I believe to be a redundant
assignment.
This series went under multiple xfstest runs and no regressions were observed.
Nikolay Borisov (8):
btrfs: Don't opencode sync_blockdev in btrfs_init_dev_replace_tgtdev
btrfs: Reduce critical section in btrfs_init_dev_replace_tgtdev
btrfs: Remove impossible WARN_ON
btrfs: Ensure btrfs_init_dev_replace_tgtdev sees up to date values
btrfs: Streamline replace sem unlock in btrfs_dev_replace_start
btrfs: Explicitly reserve space for devreplace item
btrfs: Ensure replaced device doesn't have pending chunk allocation
btrfs: Remove redundant assignment of tgt_device->commit_total_bytes
fs/btrfs/dev-replace.c | 59 +++++++++++++++++++++++-------------------
1 file changed, 32 insertions(+), 27 deletions(-)
--
2.17.1
next reply other threads:[~2019-05-14 10:54 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-14 10:54 Nikolay Borisov [this message]
2019-05-14 10:54 ` [PATCH 1/8] btrfs: Don't opencode sync_blockdev in btrfs_init_dev_replace_tgtdev Nikolay Borisov
2019-05-14 10:59 ` Johannes Thumshirn
2019-05-14 10:54 ` [PATCH 2/8] btrfs: Reduce critical section " Nikolay Borisov
2019-05-14 11:05 ` Johannes Thumshirn
2019-05-14 10:54 ` [PATCH 3/8] btrfs: Remove impossible WARN_ON Nikolay Borisov
2019-05-14 11:09 ` Johannes Thumshirn
2019-05-14 10:54 ` [PATCH 4/8] btrfs: Ensure btrfs_init_dev_replace_tgtdev sees up to date values Nikolay Borisov
2019-05-14 10:54 ` [PATCH 5/8] btrfs: Streamline replace sem unlock in btrfs_dev_replace_start Nikolay Borisov
2019-05-14 12:50 ` Johannes Thumshirn
2019-05-14 10:54 ` [PATCH 6/8] btrfs: Explicitly reserve space for devreplace item Nikolay Borisov
2019-05-14 12:56 ` Johannes Thumshirn
2019-05-14 10:54 ` [PATCH 7/8] btrfs: Ensure replaced device doesn't have pending chunk allocation Nikolay Borisov
2019-05-15 16:52 ` David Sterba
2019-05-17 7:44 ` [PATCH v2] " Nikolay Borisov
2019-05-17 14:28 ` David Sterba
2019-05-14 10:54 ` [PATCH 8/8] btrfs: Remove redundant assignment of tgt_device->commit_total_bytes Nikolay Borisov
2019-05-14 12:59 ` Johannes Thumshirn
2019-05-28 16:47 ` [PATCH 0/8] Misc improvements to dev-replace code David Sterba
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190514105445.23051-1-nborisov@suse.com \
--to=nborisov@suse.com \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).