Go to file
Ojaswin Mujoo ac6f420291 quota: flush quota_release_work upon quota writeback
One of the paths quota writeback is called from is:

freeze_super()
  sync_filesystem()
    ext4_sync_fs()
      dquot_writeback_dquots()

Since we currently don't always flush the quota_release_work queue in
this path, we can end up with the following race:

 1. dquot are added to releasing_dquots list during regular operations.
 2. FS Freeze starts, however, this does not flush the quota_release_work queue.
 3. Freeze completes.
 4. Kernel eventually tries to flush the workqueue while FS is frozen which
    hits a WARN_ON since transaction gets started during frozen state:

  ext4_journal_check_start+0x28/0x110 [ext4] (unreliable)
  __ext4_journal_start_sb+0x64/0x1c0 [ext4]
  ext4_release_dquot+0x90/0x1d0 [ext4]
  quota_release_workfn+0x43c/0x4d0

Which is the following line:

  WARN_ON(sb->s_writers.frozen == SB_FREEZE_COMPLETE);

Which ultimately results in generic/390 failing due to dmesg
noise. This was detected on powerpc machine 15 cores.

To avoid this, make sure to flush the workqueue during
dquot_writeback_dquots() so we dont have any pending workitems after
freeze.

Reported-by: Disha Goel <disgoel@linux.ibm.com>
CC: stable@vger.kernel.org
Fixes: dabc8b2075 ("quota: fix dqput() to follow the guarantees dquot_srcu should provide")
Reviewed-by: Baokun Li <libaokun1@huawei.com>
Signed-off-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20241121123855.645335-2-ojaswin@linux.ibm.com
2024-11-26 22:54:00 +01:00
arch This is the bulk of the pin control changes for v6.13: 2024-11-25 17:24:51 -08:00
block for-6.13/block-20241118 2024-11-18 16:50:08 -08:00
certs
crypto Random number generator updates for Linux 6.13-rc1. 2024-11-19 10:43:44 -08:00
Documentation SCSI misc on 20241125 2024-11-25 18:50:55 -08:00
drivers - Dm: remove unused functions and variables 2024-11-25 18:54:00 -08:00
fs quota: flush quota_release_work upon quota writeback 2024-11-26 22:54:00 +01:00
include SCSI misc on 20241125 2024-11-25 18:50:55 -08:00
init - The series "resource: A couple of cleanups" from Andy Shevchenko 2024-11-25 16:09:48 -08:00
io_uring A rather large update for timekeeping and timers: 2024-11-19 16:35:06 -08:00
ipc - The series "resource: A couple of cleanups" from Andy Shevchenko 2024-11-25 16:09:48 -08:00
kernel - The series "resource: A couple of cleanups" from Andy Shevchenko 2024-11-25 16:09:48 -08:00
lib slab updates for 6.13 2024-11-25 16:51:24 -08:00
LICENSES
mm slab updates for 6.13 2024-11-25 16:51:24 -08:00
net Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
rust Add Rust support for trace events: 2024-11-25 15:44:29 -08:00
samples - The series "resource: A couple of cleanups" from Andy Shevchenko 2024-11-25 16:09:48 -08:00
scripts - The series "resource: A couple of cleanups" from Andy Shevchenko 2024-11-25 16:09:48 -08:00
security - The series "resource: A couple of cleanups" from Andy Shevchenko 2024-11-25 16:09:48 -08:00
sound - Several drivers, including atmel-flexcom/rk8xx-core, palmas, and 2024-11-22 16:19:47 -08:00
tools firewire updates for v6.13 2024-11-25 17:12:54 -08:00
usr
virt The biggest change here is eliminating the awful idea that KVM had, of 2024-11-23 16:00:50 -08:00
.clang-format
.cocciconfig
.editorconfig
.get_maintainer.ignore MAINTAINERS: Retire Ralf Baechle 2024-11-12 15:48:59 +01:00
.gitattributes
.gitignore Kbuild updates for v6.12 2024-09-24 13:02:06 -07:00
.mailmap media updates for v6.13-rc1 2024-11-20 14:01:15 -08:00
.rustfmt.toml
COPYING
CREDITS cgroup: Changes for v6.13 2024-11-20 09:54:49 -08:00
Kbuild
Kconfig
MAINTAINERS SCSI misc on 20241125 2024-11-25 18:50:55 -08:00
Makefile Linux 6.12 2024-11-17 14:15:08 -08:00
README

Linux kernel

There are several guides for kernel developers and users. These guides can be rendered in a number of formats, like HTML and PDF. Please read Documentation/admin-guide/README.rst first.

In order to build the documentation, use make htmldocs or make pdfdocs. The formatted documentation can also be read online at:

https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory, several of them using the reStructuredText markup notation.

Please read the Documentation/process/changes.rst file, as it contains the requirements for building and running the kernel, and information about the problems which may result by upgrading your kernel.