Message ID | d67dc2650159fbcbe0cafc5bb9ab390aa985ce11.1694174371.git.fdmanana@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: updates to delayed refs accounting and space reservation | expand |
On Fri, Sep 08, 2023 at 01:09:07PM +0100, fdmanana@kernel.org wrote: > From: Filipe Manana <fdmanana@suse.com> > > At btrfs_put_delayed_ref(), it's pointless to have a WARN_ON() to check if > the refcount of the delayed ref is zero. Such check is already done by the > refcount_t module and refcount_dec_and_test(), which loudly complains if > we try to decrement a reference count that is currently 0. > > The WARN_ON() dates back to the time when used a regular atomic_t type > for the reference counter, before we switched to the refcount_t type. > The main goal of the refcount_t type/module is precisely to catch such > types of bugs and loudly complain if they happen. > > This also reduces a bit the module's text size. > Before this change: > > $ size fs/btrfs/btrfs.ko > text data bss dec hex filename > 1612483 167145 16864 1796492 1b698c fs/btrfs/btrfs.ko > > After this change: > > $ size fs/btrfs/btrfs.ko > text data bss dec hex filename > 1612371 167073 16864 1796308 1b68d4 fs/btrfs/btrfs.ko > > Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: Josef Bacik <josef@toxicpanda.com> Thanks, Josef
diff --git a/fs/btrfs/delayed-ref.h b/fs/btrfs/delayed-ref.h index fd9bf2b709c0..46a1421cd99d 100644 --- a/fs/btrfs/delayed-ref.h +++ b/fs/btrfs/delayed-ref.h @@ -338,7 +338,6 @@ btrfs_free_delayed_extent_op(struct btrfs_delayed_extent_op *op) static inline void btrfs_put_delayed_ref(struct btrfs_delayed_ref_node *ref) { - WARN_ON(refcount_read(&ref->refs) == 0); if (refcount_dec_and_test(&ref->refs)) { WARN_ON(!RB_EMPTY_NODE(&ref->ref_node)); switch (ref->type) {