ext4 updates for v5.14
The following changes since commit 614124bea77e452aa6df7a8714e8bc820b489922:
Linux 5.13-rc5 (2021-06-06 15:47:27 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git tags/ext4_for_linus
for you to fetch changes up to 16aa4c9a1fbe763c147a964cdc1f5be8ed98ed13:
jbd2: export jbd2_journal_[un]register_shrinker() (2021-06-30 11:05:00 -0400)
----------------------------------------------------------------
In addition to bug fixes and cleanups, there are two new features for ext4 in 5.14:
- Allow applications to poll on changes to /sys/fs/ext4/*/errors_count
- Add the ioctl EXT4_IOC_CHECKPOINT which allows the journal to be checkpointed, truncated and discarded or zero'ed.
----------------------------------------------------------------
Anirudh Rayabharam (1):
ext4: fix kernel infoleak via ext4_extent_header
Eric Biggers (1):
ext4: fix comment for s_hash_unsigned
Jan Kara (1):
ext4: fix overflow in ext4_iomap_alloc()
Jiapeng Chong (1):
ext4: remove redundant assignment to error
Jonathan Davies (1):
ext4: notify sysfs on errors_count value change
Joseph Qi (1):
ext4: remove redundant check buffer_uptodate()
Josh Triplett (2):
ext4: consolidate checks for resize of bigalloc into ext4_resize_begin
ext4: add check to prevent attempting to resize an fs with sparse_super2
Leah Rumancik (3):
ext4: add discard/zeroout flags to journal flush
ext4: add ioctl EXT4_IOC_CHECKPOINT
ext4: update journal documentation
Pan Dong (1):
ext4: fix avefreec in find_group_orlov
Pavel Skripkin (1):
ext4: fix memory leak in ext4_fill_super
Ritesh Harjani (2):
ext4: fsmap: fix the block/inode bitmap comment
ext4: remove duplicate definition of ext4_xattr_ibody_inline_set()
Tian Tao (1):
ext4: remove set but rewrite variables
Yang Yingliang (1):
ext4: return error code when ext4_fill_flex_info() fails
Zhang Yi (12):
ext4: cleanup in-core orphan list if ext4_truncate() failed to get a transaction handle
ext4: remove check for zero nr_to_scan in ext4_es_scan()
ext4: correct the cache_nr in tracepoint ext4_es_shrink_exit
jbd2: remove the out label in __jbd2_journal_remove_checkpoint()
jbd2: ensure abort the journal if detect IO error when writing original buffer back
jbd2: don't abort the journal when freeing buffers
jbd2: remove redundant buffer io error checks
jbd2,ext4: add a shrinker to release checkpointed buffers
jbd2: simplify journal_clean_one_cp_list()
ext4: remove bdev_try_to_free_page() callback
fs: remove bdev_try_to_free_page callback
jbd2: export jbd2_journal_[un]register_shrinker()
chenyichong (1):
ext4: use local variable ei instead of EXT4_I() macro
yangerkun (2):
jbd2: clean up misleading comments for jbd2_fc_release_bufs
ext4: no need to verify new add extent block
Documentation/filesystems/ext4/journal.rst | 39 +++++-- fs/block_dev.c | 15 --- fs/ext4/ext4.h | 18 ++- fs/ext4/extents.c | 4 + fs/ext4/extents_status.c | 4 +- fs/ext4/fsmap.h | 4 +- fs/ext4/ialloc.c | 11 +- fs/ext4/inline.c | 11 +- fs/ext4/inode.c | 8 +- fs/ext4/ioctl.c | 80 +++++++++---- fs/ext4/mmp.c | 28 +++-- fs/ext4/namei.c | 2 +- fs/ext4/resize.c | 9 ++ fs/ext4/super.c | 57 +++++---- fs/ext4/sysfs.c | 5 + fs/ext4/xattr.c | 26 +---- fs/ext4/xattr.h | 6 +- fs/jbd2/checkpoint.c | 206 ++++++++++++++++++++++++++------- fs/jbd2/journal.c | 230 +++++++++++++++++++++++++++++++++++-- fs/jbd2/transaction.c | 17 --- fs/ocfs2/alloc.c | 2 +- fs/ocfs2/journal.c | 8 +- include/linux/fs.h | 1 - include/linux/jbd2.h | 43 ++++++- include/trace/events/jbd2.h | 101 ++++++++++++++++ 25 files changed, 720 insertions(+), 215 deletions(-)
The pull request you sent on Wed, 30 Jun 2021 16:49:27 -0400:
The pull request you sent on Wed, 30 Jun 2021 16:49:27 -0400:
Quoted 1 line
git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.gittags/ext4_for_linus
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/a6ecc2a491e378e00e65e59a006d4005e1c2f4af
Thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html
Jon Hunter
maintainerHi Ted, Zhang,
Quoted 20 lines · Theodore Ts'o
The following changes since commit
614124bea77e452aa6df7a8714e8bc820b489922:Linux 5.13-rc5 (2021-06-06 15:47:27 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.gittags/ext4_for_linusfor you to fetch changes up to
16aa4c9a1fbe763c147a964cdc1f5be8ed98ed13:jbd2: export jbd2_journal_[un]register_shrinker() (2021-06-30 11:05:00 -0400)
----------------------------------------------------------------
In addition to bug fixes and cleanups, there are two new features for ext4 in 5.14:
- Allow applications to poll on changes to/sys/fs/ext4/*/errors_count
- Add the ioctlEXT4_IOC_CHECKPOINTwhich allows the journal to be checkpointed, truncated and discarded or zero'ed.----------------------------------------------------------------
...
Quoted 9 lines
Zhang Yi (12):
ext4: cleanup in-core orphan list ifext4_truncate()failed to get a transaction handle
ext4: remove check for zeronr_to_scaninext4_es_scan()
ext4: correct thecache_nrin tracepointext4_es_shrink_exit
jbd2: remove the out label in__jbd2_journal_remove_checkpoint()
jbd2: ensure abort the journal if detect IO error when writing original buffer back
jbd2: don't abort the journal when freeing buffers
jbd2: remove redundant buffer io error checks
jbd2,ext4: add a shrinker to release checkpointed buffers
I have noticed that with next-20210701 that one of our eMMC tests started failing on all our ARM and ARM64 platforms and bisect is pointing to commit 4ba3fcdde7e3 ("jbd2,ext4: add a shrinker to release checkpointed buffers"). Today I am seeing the same failure on the mainline.
Looking at the kernel logs I see the following crash ...
[ 74.430365] Unable to handle kernel paging request at virtual address ffff8001e353a000 [ 74.438304] Mem abort info: [ 74.441110] ESR = 0x96000005 [ 74.444226] EC = 0x25: DABT (current EL), IL = 32 bits [ 74.449548] SET = 0, FnV = 0 [ 74.452595] EA = 0, S1PTW = 0 [ 74.455740] FSC = 0x05: level 1 translation fault [ 74.460620] Data abort info: [ 74.463504] ISV = 0, ISS = 0x00000005 [ 74.467343] CM = 0, WnR = 0 [ 74.470314] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000081adc000 [ 74.477013] [ffff8001e353a000] pgd=10000002771ff803, p4d=10000002771ff803, pud=0000000000000000 [ 74.485718] Internal error: Oops: 96000005 [#1] PREEMPT SMP [ 74.491284] Modules linked in: tegra_drm snd_soc_tegra186_dspk cec snd_soc_tegra210_dmic snd_soc_tegra210_admaif snd_soc_tegra_pcm snd_soc_tegra210_i2s drm_kms_helper drm snd_soc_tegra210_ahub tegra210_adma crct10dif_ce snd_hda_codec_hdmi snd_soc_tegra_audio_graph_card snd_soc_audio_graph_card snd_hda_tegra snd_soc_simple_card_utils snd_hda_codec at24 tegra_bpmp_thermal snd_hda_core tegra_aconnect tegra_xudc ina3221 host1x ip_tables x_tables ipv6 [ 74.530804] CPU: 0 PID: 936 Comm: umount Tainted: G S 5.13.0-next-20210701-gfb0ca446157a #1 [ 74.540446] Hardware name: NVIDIA Jetson TX2 Developer Kit (DT) [ 74.546354] pstate: a0000005 (NzCv daif -PAN -UAO -TCO BTYPE=--) [ 74.552354] pc : percpu_counter_add_batch+0x30/0x118 [ 74.557317] lr : __jbd2_journal_remove_checkpoint+0x70/0x170 [ 74.562972] sp : ffff800013923b90 [ 74.566278] x29: ffff800013923b90 x28: ffff000080ba8d80 x27: 0000000000000000 [ 74.573408] x26: 0000000000000001 x25: 0000000000000006 x24: ffff000080ba8d80 [ 74.580536] x23: ffff00008965a450 x22: ffff800011ce9000 x21: ffff00008965a380 [ 74.587665] x20: ffffffffffffffff x19: ffff00008a9d8000 x18: 0000000000000011 [ 74.594792] x17: 0000000000000000 x16: 0000000000000000 x15: 000000000000038d [ 74.601921] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000 [ 74.609048] x11: 0000000000000001 x10: 0000000000000960 x9 : ffff800013923b90 [ 74.616175] x8 : ffff000080ba9740 x7 : 0000000000000400 x6 : ffff00008965a0b0 [ 74.623304] x5 : ffff00008965a0b0 x4 : ffff8001e353a000 x3 : ffff000080ba8d80 [ 74.630430] x2 : 0000000000000020 x1 : 0000000000000000 x0 : ffff00008965a380 [ 74.637558] Call trace: [ 74.640000] percpu_counter_add_batch+0x30/0x118 [ 74.644610] __jbd2_journal_remove_checkpoint+0x70/0x170 [ 74.649914] jbd2_log_do_checkpoint+0xa8/0x398 [ 74.654351] jbd2_journal_destroy+0x100/0x2a8 [ 74.658703] ext4_put_super+0x7c/0x388 [ 74.662449] generic_shutdown_super+0x70/0xf8 [ 74.666802] kill_block_super+0x1c/0x60 [ 74.670633] deactivate_locked_super+0x6c/0x98 [ 74.675071] deactivate_super+0x84/0x90 [ 74.678901] cleanup_mnt+0x8c/0x110 [ 74.682385] __cleanup_mnt+0x10/0x18 [ 74.685953] task_work_run+0x78/0x150 [ 74.689612] do_notify_resume+0x31c/0x498 [ 74.693618] work_pending+0xc/0x328 [ 74.697103] Code: 11000484 b9000864 d538d084 f9401001 (b8a46833) [ 74.703186] ---[ end trace e18485293afc06e4 ]---
Is this causing problems for anyone else?
Thanks
Jon
Signature · 1 line
nvpublic
Quoted 6 lines · Jon Hunter
I have noticed that with next-20210701 that one of our eMMC tests started failing on all our ARM and ARM64 platforms and bisect is pointing to commit
4ba3fcdde7e3("jbd2,ext4: add a shrinker to release checkpointed buffers"). Today I am seeing the same failure on the mainline.
Yes, this was noted as a problem on Power as well. I'll be sending a fix for this shortly...
Apologies for not catching this, but for some reason it's not causing problems on x86_64.
- Ted