public inbox for linux-ext4@vger.kernel.org
 help / color / mirror / Atom feed
From: Ojaswin Mujoo <ojaswin@linux.ibm.com>
To: linux-ext4@vger.kernel.org, Jan Kara <jack@suse.com>
Cc: Ritesh Harjani <ritesh.list@gmail.com>,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	Baokun Li <libaokun1@huawei.com>
Subject: [PATCH v2 0/2] Fix generic/390 failure due to quota release after freeze
Date: Thu, 21 Nov 2024 18:08:53 +0530	[thread overview]
Message-ID: <20241121123855.645335-1-ojaswin@linux.ibm.com> (raw)

Changes since v1:

 * Patch 1: Move flush_delayed_work() to start of function
 * Patch 2: Guard ext4_release_dquot against freeze

Regarding patch 2, as per my understanding of the journalling code,
right now ext4_release_dquot() can only be called from the
quota_realease_work workqueue and hence ideally should never have a
journal open but to future-proof it we make sure the journal is not
opened when calling sb_start_inwrite().

** Original Cover **

Recently we noticed generic/390 failing on powerpc systems. This test
basically does a freeze-unfreeze loop in parallel with fsstress on the
FS to detect any races in the code paths.

We noticed that the test started failing due to kernel WARN_ONs because
quota_release_work workqueue started executing while the FS was frozen
which led to creating new transactions in ext4_release_quota. 

Most of the details are in the bug however I'd just like to add that
I'm completely new to quota code so the patch, although fixing the
issue, might be not be logically the right thing to do. So reviews and
suggestions are welcome. 

Also, I can only replicate this race on one of my machines reliably and
does not appear on others.  I've tested with with fstests -g quota and
don't see any new failures.

Ojaswin Mujoo (2):
  quota: flush quota_release_work upon quota writeback
  ext4: protect ext4_release_dquot against freezing

 fs/ext4/super.c  | 17 +++++++++++++++++
 fs/quota/dquot.c |  2 ++
 2 files changed, 19 insertions(+)

-- 
2.43.5


             reply	other threads:[~2024-11-21 12:39 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-21 12:38 Ojaswin Mujoo [this message]
2024-11-21 12:38 ` [PATCH v2 1/2] quota: flush quota_release_work upon quota writeback Ojaswin Mujoo
2024-11-26  8:47   ` Jan Kara
2024-11-26 14:28   ` Baokun Li
2024-11-29  8:00   ` Disha Goel
2024-11-21 12:38 ` [PATCH v2 2/2] ext4: protect ext4_release_dquot against freezing Ojaswin Mujoo
2024-11-22  5:25   ` kernel test robot
2024-11-22  6:07   ` kernel test robot
2024-11-26  9:04   ` Jan Kara
2024-11-26 12:41     ` Ojaswin Mujoo
2024-11-26 14:49   ` Baokun Li
2024-11-27  6:01     ` Ojaswin Mujoo
2024-12-03  8:29       ` Baokun Li
2024-12-16  9:11         ` Ojaswin Mujoo
2024-11-28  4:58   ` Ritesh Harjani
2024-11-28 12:01     ` Jan Kara
2025-03-06  6:30   ` Ojaswin Mujoo
2025-03-06 15:59     ` Theodore Ts'o
2024-11-21 12:48 ` [PATCH v2 0/2] Fix generic/390 failure due to quota release after freeze Ojaswin Mujoo

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=20241121123855.645335-1-ojaswin@linux.ibm.com \
    --to=ojaswin@linux.ibm.com \
    --cc=jack@suse.com \
    --cc=libaokun1@huawei.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ritesh.list@gmail.com \
    /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