From: Gladyshev Ilya <foxido@foxido.dev>
To: foxido@foxido.dev
Cc: Chris Mason <clm@fb.com>, David Sterba <dsterba@suse.com>,
linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [RFC PATCH 0/8] use cleanup.h in btrfs
Date: Wed, 12 Nov 2025 21:49:36 +0300 [thread overview]
Message-ID: <cover.1762972845.git.foxido@foxido.dev> (raw)
This series represents my experimentation with refactoring with
cleanup guards. In my opinion, RAII-style locking improves readability
in most cases and also improves code robustness for future code changes,
so I tried to refactor simple cases that really benefits from lock guards.
However readability is a subjective concept, so you can freely disagree
and reject any of those changes, I won't insist on any. Please note that
patches 1-3 can be useful even without lock guards.
I didn't know how to split this series, mostly because it's just a lot of
small changes... so I tried to split it by types of transformation:
1. Patches 1-3 include some preparation work and simple fixes I noticed.
2. Patches 4-6 gradually increase the complexity of the refactored
situations, from simple lock/unlock pairs to scoped guards.
3. Patch 7 refactors functions which control flow can really benefit from
removed cleanups on exit. E.g. we can get rid of obscure if statements
in exit paths.
4. Patch 8 is kinda an example of overdone code refactoring and I predict
that it will be dropped anyway.
There is no TODOs for this series, but it's junk enough to be marked as
RFC.
Gladyshev Ilya (8):
btrfs: remove redundant label in __del_qgroup_relation
btrfs: move kfree out of btrfs_create_qgroup's cleanup path
btrfs: simplify control flow in scrub_simple_mirror
btrfs: simplify function protections with guards
btrfs: use cleanup.h guard()s to simplify unlocks on return
btrfs: simplify cleanup via scoped_guard()
btrfs: simplify return path via cleanup.h
btrfs: simplify cleanup in btrfs_add_qgroup_relation
fs/btrfs/block-group.c | 24 ++----
fs/btrfs/compression.c | 13 ++-
fs/btrfs/discard.c | 20 ++---
fs/btrfs/disk-io.c | 9 +-
fs/btrfs/extent-io-tree.c | 72 ++++++----------
fs/btrfs/extent-tree.c | 104 ++++++++++-------------
fs/btrfs/extent_io.c | 33 ++++----
fs/btrfs/file-item.c | 6 +-
fs/btrfs/free-space-cache.c | 87 +++++++------------
fs/btrfs/fs.c | 9 +-
fs/btrfs/inode.c | 3 +-
fs/btrfs/ordered-data.c | 67 ++++++---------
fs/btrfs/qgroup.c | 165 ++++++++++++++----------------------
fs/btrfs/raid56.c | 20 ++---
fs/btrfs/scrub.c | 19 ++---
fs/btrfs/send.c | 40 ++++-----
fs/btrfs/space-info.c | 4 +-
fs/btrfs/subpage.c | 41 +++------
fs/btrfs/tree-log.c | 28 +++---
fs/btrfs/volumes.c | 3 +-
fs/btrfs/zoned.c | 13 +--
fs/btrfs/zstd.c | 13 +--
22 files changed, 299 insertions(+), 494 deletions(-)
base-commit: 24172e0d79900908cf5ebf366600616d29c9b417
--
2.51.1.dirty
next reply other threads:[~2025-11-12 19:07 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-12 18:49 Gladyshev Ilya [this message]
2025-11-12 18:49 ` [RFC PATCH 1/8] btrfs: remove redundant label in __del_qgroup_relation Gladyshev Ilya
2025-11-12 18:49 ` [RFC PATCH 2/8] btrfs: move kfree out of btrfs_create_qgroup's cleanup path Gladyshev Ilya
2025-11-12 20:30 ` Qu Wenruo
2025-11-12 18:49 ` [RFC PATCH 3/8] btrfs: simplify control flow in scrub_simple_mirror Gladyshev Ilya
2025-11-12 18:49 ` [RFC PATCH 4/8] btrfs: simplify function protections with guards Gladyshev Ilya
2025-11-13 8:43 ` David Sterba
2025-11-13 10:06 ` Gladyshev Ilya
2025-11-13 11:25 ` David Sterba
2025-11-13 12:30 ` Daniel Vacek
2025-11-12 18:49 ` [RFC PATCH 5/8] btrfs: use cleanup.h guard()s to simplify unlocks on return Gladyshev Ilya
2025-11-12 18:49 ` [RFC PATCH 6/8] btrfs: simplify cleanup via scoped_guard() Gladyshev Ilya
2025-11-13 8:48 ` David Sterba
2025-11-12 18:49 ` [RFC PATCH 7/8] btrfs: simplify return path via cleanup.h Gladyshev Ilya
2025-11-12 20:50 ` Qu Wenruo
2025-11-13 8:54 ` David Sterba
2025-11-13 12:48 ` Daniel Vacek
2025-11-12 18:49 ` [RFC PATCH 8/8] btrfs: simplify cleanup in btrfs_add_qgroup_relation Gladyshev Ilya
2025-11-12 20:46 ` Qu Wenruo
2025-11-12 20:55 ` [RFC PATCH 0/8] use cleanup.h in btrfs Qu Wenruo
2025-11-13 8:01 ` Gladyshev Ilya
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=cover.1762972845.git.foxido@foxido.dev \
--to=foxido@foxido.dev \
--cc=clm@fb.com \
--cc=dsterba@suse.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kernel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.