From: Joseph Qi <joseph.qi@linux.alibaba.com>
To: Andrew Morton <akpm@linux-foundation.org>,
Heming Zhao <heming.zhao@suse.com>
Cc: ocfs2-devel@lists.linux.dev, linux-kernel@vger.kernel.org,
jack@suse.cz, glass.su@suse.com
Subject: Re: [PATCH v8 1/1] ocfs2: split transactions in dio completion to avoid credit exhaustion
Date: Tue, 7 Apr 2026 11:04:44 +0800 [thread overview]
Message-ID: <f863f63e-3872-4a70-ab29-174a2e408232@linux.alibaba.com> (raw)
In-Reply-To: <20260403123239.5e49f98fc752b24cf309f453@linux-foundation.org>
On 4/4/26 3:32 AM, Andrew Morton wrote:
> On Thu, 2 Apr 2026 21:43:27 +0800 Heming Zhao <heming.zhao@suse.com> wrote:
>
>> During ocfs2 dio operations, JBD2 may report warnings via following
>> call trace:
>> ocfs2_dio_end_io_write
>> ocfs2_mark_extent_written
>> ocfs2_change_extent_flag
>> ocfs2_split_extent
>> ocfs2_try_to_merge_extent
>> ocfs2_extend_rotate_transaction
>> ocfs2_extend_trans
>> jbd2__journal_restart
>> start_this_handle
>> output: JBD2: kworker/6:2 wants too many credits credits:5450 rsv_credits:0 max:5449
>>
>> To prevent exceeding the credits limit, modify ocfs2_dio_end_io_write() to
>> handle extents in a batch of transaction.
>>
>> Additionally, relocate ocfs2_del_inode_from_orphan(). The orphan inode should
>> only be removed from the orphan list after the extent tree update is complete.
>> This ensures that if a crash occurs in the middle of extent tree updates, we
>> won't leave stale blocks beyond EOF.
>>
>> This patch also changes the logic for updating the inode size and removing
>> orphan, making it similar to ext4_dio_write_end_io(). Both operations are
>> performed only when everything looks good.
>>
>> Finally, thanks to Jans and Joseph for providing the bug fix prototype and
>> suggestions.
>
> AI review has a question:
> https://sashiko.dev/#/patchset/20260402134328.27334-2-heming.zhao@suse.com
There are two paths to recover:
1. During next write to the same file, ocfs2_add_inode_to_orphan() will
manually recover it first.
2. During next mount or node recover, ocfs2_recover_orphans() will also
do the same recovery operations (truncate + delete from orphan).
So I think it is false positive report.
Thanks,
Joseph
prev parent reply other threads:[~2026-04-07 3:04 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-02 13:43 [PATCH v8 0/1] " Heming Zhao
2026-04-02 13:43 ` [PATCH v8 1/1] " Heming Zhao
2026-04-03 1:31 ` Joseph Qi
2026-04-03 19:32 ` Andrew Morton
2026-04-07 3:04 ` Joseph Qi [this message]
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=f863f63e-3872-4a70-ab29-174a2e408232@linux.alibaba.com \
--to=joseph.qi@linux.alibaba.com \
--cc=akpm@linux-foundation.org \
--cc=glass.su@suse.com \
--cc=heming.zhao@suse.com \
--cc=jack@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=ocfs2-devel@lists.linux.dev \
/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
Powered by JetHome