]> Git Repo - linux.git/commitdiff
Merge tag 'for-6.6-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave...
authorLinus Torvalds <[email protected]>
Tue, 12 Sep 2023 18:28:00 +0000 (11:28 -0700)
committerLinus Torvalds <[email protected]>
Tue, 12 Sep 2023 18:28:00 +0000 (11:28 -0700)
Pull btrfs fixes from David Sterba:

 - several fixes for handling directory item (inserting, removing,
   iteration, error handling)

 - fix transaction commit stalls when auto relocation is running and
   blocks other tasks that want to commit

 - fix a build error when DEBUG is enabled

 - fix lockdep warning in inode number lookup ioctl

 - fix race when finishing block group creation

 - remove link to obsolete wiki in several files

* tag 'for-6.6-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
  MAINTAINERS: remove links to obsolete btrfs.wiki.kernel.org
  btrfs: assert delayed node locked when removing delayed item
  btrfs: remove BUG() after failure to insert delayed dir index item
  btrfs: improve error message after failure to add delayed dir index item
  btrfs: fix a compilation error if DEBUG is defined in btree_dirty_folio
  btrfs: check for BTRFS_FS_ERROR in pending ordered assert
  btrfs: fix lockdep splat and potential deadlock after failure running delayed items
  btrfs: do not block starts waiting on previous transaction commit
  btrfs: release path before inode lookup during the ino lookup ioctl
  btrfs: fix race between finishing block group creation and its item update

1  2 
MAINTAINERS
fs/btrfs/delayed-inode.c
fs/btrfs/ioctl.c
fs/btrfs/transaction.c

diff --combined MAINTAINERS
index 90f13281d29708439ba448d26308109a3cfd747b,dea8c26efbca14941230d39dffcfdacaace48c73..79630b7d946ef48251df2003542a5b61c3d7a0af
@@@ -915,18 -915,6 +915,18 @@@ S:       Supporte
  F:    drivers/crypto/ccp/sev*
  F:    include/uapi/linux/psp-sev.h
  
 +AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER - DBC SUPPORT
 +M:    Mario Limonciello <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/crypto/ccp/dbc.c
 +F:    drivers/crypto/ccp/dbc.h
 +F:    drivers/crypto/ccp/platform-access.c
 +F:    drivers/crypto/ccp/platform-access.h
 +F:    include/uapi/linux/psp-dbc.h
 +F:    tools/crypto/ccp/*.c
 +F:    tools/crypto/ccp/*.py
 +
  AMD DISPLAY CORE
  M:    Harry Wentland <[email protected]>
  M:    Leo Li <[email protected]>
@@@ -1018,7 -1006,7 +1018,7 @@@ AMD PMC DRIVE
  M:    Shyam Sundar S K <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/platform/x86/amd/pmc.c
 +F:    drivers/platform/x86/amd/pmc/
  
  AMD PMF DRIVER
  M:    Shyam Sundar S K <[email protected]>
@@@ -1086,6 -1074,7 +1086,6 @@@ F:      include/soc/amlogic
  
  AMPHION VPU CODEC V4L2 DRIVER
  M:    Ming Qian <[email protected]>
 -M:    Shijie Qin <[email protected]>
  M:    Zhou Peng <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -1569,10 -1558,9 +1569,10 @@@ M:    Olof Johansson <[email protected]
  M:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 +P:    Documentation/process/maintainer-soc.rst
  C:    irc://irc.libera.chat/armlinux
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git
 -F:    Documentation/process/maintainer-soc.rst
 +F:    Documentation/process/maintainer-soc*.rst
  F:    arch/arm/boot/dts/Makefile
  F:    arch/arm64/boot/dts/Makefile
  
@@@ -1855,7 -1843,6 +1855,7 @@@ F:      Documentation/devicetree/bindings/ph
  F:    arch/arm/boot/dts/amlogic/
  F:    arch/arm/mach-meson/
  F:    arch/arm64/boot/dts/amlogic/
 +F:    drivers/genpd/amlogic/
  F:    drivers/mmc/host/meson*
  F:    drivers/phy/amlogic/
  F:    drivers/pinctrl/meson/
@@@ -1918,7 -1905,6 +1918,7 @@@ F:      drivers/bluetooth/hci_bcm4377.
  F:    drivers/clk/clk-apple-nco.c
  F:    drivers/cpufreq/apple-soc-cpufreq.c
  F:    drivers/dma/apple-admac.c
 +F:    drivers/genpd/apple/
  F:    drivers/i2c/busses/i2c-pasemi-core.c
  F:    drivers/i2c/busses/i2c-pasemi-platform.c
  F:    drivers/iommu/apple-dart.c
@@@ -2435,7 -2421,6 +2435,7 @@@ F:      arch/arm/mach-ux500
  F:    drivers/clk/clk-nomadik.c
  F:    drivers/clocksource/clksrc-dbx500-prcmu.c
  F:    drivers/dma/ste_dma40*
 +F:    drivers/genpd/st/ste-ux500-pm-domain.c
  F:    drivers/hwspinlock/u8500_hsem.c
  F:    drivers/i2c/busses/i2c-nomadik.c
  F:    drivers/iio/adc/ab8500-gpadc.c
@@@ -2508,6 -2493,16 +2508,6 @@@ S:     Maintaine
  W:    http://www.digriz.org.uk/ts78xx/kernel
  F:    arch/arm/mach-orion5x/ts78xx-*
  
 -ARM/OXNAS platform support
 -M:    Neil Armstrong <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -F:    arch/arm/boot/dts/ox8*.dts*
 -F:    arch/arm/mach-oxnas/
 -F:    drivers/power/reset/oxnas-restart.c
 -N:    oxnas
 -
  ARM/QUALCOMM CHROMEBOOK SUPPORT
  R:    [email protected]
  F:    arch/arm64/boot/dts/qcom/sc7180*
@@@ -2598,7 -2593,6 +2598,7 @@@ F:      arch/arm/include/debug/renesas-scif.
  F:    arch/arm/mach-shmobile/
  F:    arch/arm64/boot/dts/renesas/
  F:    arch/riscv/boot/dts/renesas/
 +F:    drivers/genpd/renesas/
  F:    drivers/soc/renesas/
  F:    include/linux/soc/renesas/
  K:    \brenesas,
@@@ -2641,7 -2635,6 +2641,7 @@@ R:      Alim Akhtar <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
 +P:    Documentation/process/maintainer-soc-clean-dts.rst
  Q:    https://patchwork.kernel.org/project/linux-samsung-soc/list/
  B:    mailto:[email protected]
  C:    irc://irc.libera.chat/linux-exynos
@@@ -2936,13 -2929,14 +2936,13 @@@ M:   Sudeep Holla <[email protected]
  M:    Lorenzo Pieralisi <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -F:    */*/*/vexpress*
 -F:    */*/vexpress*
 -F:    arch/arm/boot/dts/arm/vexpress*
 +N:    mps2
 +N:    vexpress
  F:    arch/arm/mach-versatile/
  F:    arch/arm64/boot/dts/arm/
 -F:    drivers/clk/versatile/clk-vexpress-osc.c
  F:    drivers/clocksource/timer-versatile.c
 -N:    mps2
 +X:    drivers/cpufreq/vexpress-spc-cpufreq.c
 +X:    Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
  
  ARM/VFP SUPPORT
  M:    Russell King <[email protected]>
@@@ -3691,7 -3685,6 +3691,7 @@@ F:      include/linux/filter.
  F:    include/linux/tnum.h
  F:    kernel/bpf/core.c
  F:    kernel/bpf/dispatcher.c
 +F:    kernel/bpf/mprog.c
  F:    kernel/bpf/syscall.c
  F:    kernel/bpf/tnum.c
  F:    kernel/bpf/trampoline.c
@@@ -3702,7 -3695,7 +3702,7 @@@ R:      David Vernet <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/bpf/instruction-set.rst
 +F:    Documentation/bpf/standardization/
  
  BPF [GENERAL] (Safe Dynamic Programs and Tools)
  M:    Alexei Starovoitov <[email protected]>
@@@ -3710,7 -3703,7 +3710,7 @@@ M:      Daniel Borkmann <[email protected]
  M:    Andrii Nakryiko <[email protected]>
  R:    Martin KaFai Lau <[email protected]>
  R:    Song Liu <[email protected]>
 -R:    Yonghong Song <y[email protected]>
 +R:    Yonghong Song <y[email protected]>
  R:    John Fastabend <[email protected]>
  R:    KP Singh <[email protected]>
  R:    Stanislav Fomichev <[email protected]>
@@@ -3749,7 -3742,7 +3749,7 @@@ F:      tools/lib/bpf
  F:    tools/testing/selftests/bpf/
  
  BPF [ITERATOR]
 -M:    Yonghong Song <y[email protected]>
 +M:    Yonghong Song <y[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    kernel/bpf/*iter.c
  S:    Maintained
  F:    kernel/bpf/bpf_struct*
  
 -BPF [NETWORKING] (tc BPF, sock_addr)
 +BPF [NETWORKING] (tcx & tc BPF, sock_addr)
  M:    Martin KaFai Lau <[email protected]>
  M:    Daniel Borkmann <[email protected]>
  R:    John Fastabend <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 +F:    include/net/tcx.h
 +F:    kernel/bpf/tcx.c
  F:    net/core/filter.c
  F:    net/sched/act_bpf.c
  F:    net/sched/cls_bpf.c
@@@ -3845,15 -3836,6 +3845,15 @@@ S:    Maintaine
  F:    kernel/bpf/stackmap.c
  F:    kernel/trace/bpf_trace.c
  
 +BROADCOM ASP 2.0 ETHERNET DRIVER
 +M:    Justin Chen <[email protected]>
 +M:    Florian Fainelli <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/net/brcm,asp-v2.0.yaml
 +F:    drivers/net/ethernet/broadcom/asp2/
 +
  BROADCOM B44 10/100 ETHERNET DRIVER
  M:    Michael Chan <[email protected]>
  L:    [email protected]
@@@ -4026,7 -4008,7 +4026,7 @@@ F:      arch/mips/kernel/*bmips
  F:    drivers/irqchip/irq-bcm63*
  F:    drivers/irqchip/irq-bcm7*
  F:    drivers/irqchip/irq-brcmstb*
 -F:    drivers/soc/bcm/bcm63xx
 +F:    drivers/genpd/bcm/bcm63xx-power.c
  F:    include/linux/bcm963xx_nvram.h
  F:    include/linux/bcm963xx_tag.h
  
@@@ -4144,7 -4126,7 +4144,7 @@@ BROADCOM BCM6348/BCM6358 SPI controlle
  M:    Jonas Gorski <[email protected]>
  L:    [email protected]
  S:    Odd Fixes
 -F:    Documentation/devicetree/bindings/spi/spi-bcm63xx.txt
 +F:    Documentation/devicetree/bindings/spi/brcm,bcm63xx-spi.yaml
  F:    drivers/spi/spi-bcm63xx.c
  
  BROADCOM ETHERNET PHY DRIVERS
@@@ -4213,7 -4195,7 +4213,7 @@@ BROADCOM KONA GPIO DRIVE
  M:    Ray Jui <[email protected]>
  R:    Broadcom internal kernel review list <[email protected]>
  S:    Supported
 -F:    Documentation/devicetree/bindings/gpio/brcm,kona-gpio.txt
 +F:    Documentation/devicetree/bindings/gpio/brcm,kona-gpio.yaml
  F:    drivers/gpio/gpio-bcm-kona.c
  
  BROADCOM MPI3 STORAGE CONTROLLER DRIVER
@@@ -4248,7 -4230,7 +4248,7 @@@ R:      Broadcom internal kernel review lis
  L:    [email protected]
  S:    Maintained
  T:    git https://github.com/broadcom/stblinux.git
 -F:    drivers/soc/bcm/bcm63xx/bcm-pmb.c
 +F:    drivers/genpd/bcm/bcm-pmb.c
  F:    include/dt-bindings/soc/bcm-pmb.h
  
  BROADCOM SPECIFIC AMBA DRIVER (BCMA)
@@@ -4378,7 -4360,6 +4378,6 @@@ M:      David Sterba <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://btrfs.readthedocs.io
- W:    https://btrfs.wiki.kernel.org/
  Q:    https://patchwork.kernel.org/project/linux-btrfs/list/
  C:    irc://irc.libera.chat/btrfs
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git
@@@ -4468,7 -4449,6 +4467,7 @@@ M:      Maxime Ripard <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/cdns,*.txt
 +F:    Documentation/devicetree/bindings/media/cdns,csi2rx.yaml
  F:    drivers/media/platform/cadence/cdns-csi2*
  
  CADENCE NAND DRIVER
@@@ -4838,7 -4818,6 +4837,7 @@@ F:      drivers/input/touchscreen/chipone_ic
  
  CHROME HARDWARE PLATFORM SUPPORT
  M:    Benson Leung <[email protected]>
 +M:    Tzung-Bi Shih <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git
@@@ -4906,11 -4885,7 +4905,11 @@@ L:    [email protected] (moderat
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/sound/cirrus,cs*
 +F:    drivers/mfd/cs42l43*
 +F:    drivers/pinctrl/cirrus/pinctrl-cs42l43*
 +F:    drivers/spi/spi-cs42l43*
  F:    include/dt-bindings/sound/cs*
 +F:    include/linux/mfd/cs42l43*
  F:    include/sound/cs*
  F:    sound/pci/hda/cs*
  F:    sound/pci/hda/hda_cs_dsp_ctl.*
@@@ -5255,8 -5230,6 +5254,8 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/admin-guide/cgroup-v1/cpusets.rst
  F:    include/linux/cpuset.h
  F:    kernel/cgroup/cpuset.c
 +F:    tools/testing/selftests/cgroup/test_cpuset.c
 +F:    tools/testing/selftests/cgroup/test_cpuset_prs.sh
  
  CONTROL GROUP - MEMORY RESOURCE CONTROLLER (MEMCG)
  M:    Johannes Weiner <[email protected]>
@@@ -5395,7 -5368,7 +5394,7 @@@ M:      Kukjin Kim <[email protected]
  R:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -S:    Supported
 +S:    Maintained
  F:    arch/arm/mach-exynos/pm.c
  F:    drivers/cpuidle/cpuidle-exynos.c
  F:    include/linux/platform_data/cpuidle-exynos.h
@@@ -6035,7 -6008,7 +6034,7 @@@ F:      Documentation/devicetree/bindings/mf
  F:    Documentation/devicetree/bindings/mfd/dlg,da90*.yaml
  F:    Documentation/devicetree/bindings/regulator/da92*.txt
  F:    Documentation/devicetree/bindings/regulator/dlg,da9*.yaml
 -F:    Documentation/devicetree/bindings/regulator/slg51000.txt
 +F:    Documentation/devicetree/bindings/regulator/dlg,slg51000.yaml
  F:    Documentation/devicetree/bindings/sound/da[79]*.txt
  F:    Documentation/devicetree/bindings/thermal/da90??-thermal.txt
  F:    Documentation/devicetree/bindings/watchdog/da90??-wdt.txt
@@@ -6118,7 -6091,7 +6117,7 @@@ F:      include/video/udlfb.
  DISTRIBUTED LOCK MANAGER (DLM)
  M:    Christine Caulfield <[email protected]>
  M:    David Teigland <[email protected]>
 -L:    [email protected]
 +L:    [email protected]
  S:    Supported
  W:    http://sources.redhat.com/cluster/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm.git
@@@ -6177,9 -6150,10 +6176,9 @@@ F:     kernel/dma
  DMA-BUF HEAPS FRAMEWORK
  M:    Sumit Semwal <[email protected]>
  R:    Benjamin Gaignard <[email protected]>
 -R:    Liam Mark <[email protected]>
 -R:    Laura Abbott <[email protected]>
  R:    Brian Starkey <[email protected]>
  R:    John Stultz <[email protected]>
 +R:    T.J. Mercier <[email protected]>
  L:    [email protected]
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
@@@ -6239,7 -6213,6 +6238,7 @@@ DOCUMENTATION PROCES
  M:    Jonathan Corbet <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/maintainer/
  F:    Documentation/process/
  
  DOCUMENTATION REPORTING ISSUES
@@@ -6277,17 -6250,11 +6276,17 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
  F:    drivers/media/i2c/dw9714.c
  
 -DONGWOON DW9768 LENS VOICE COIL DRIVER
 -M:    Dongchun Zhu <dongchun.zhu@mediatek.com>
 +DONGWOON DW9719 LENS VOICE COIL DRIVER
 +M:    Daniel Scally <djrscally@gmail.com>
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/i2c/dw9719.c
 +
 +DONGWOON DW9768 LENS VOICE COIL DRIVER
 +L:    [email protected]
 +S:    Orphan
 +T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/i2c/dongwoon,dw9768.yaml
  F:    drivers/media/i2c/dw9768.c
  
@@@ -6428,7 -6395,6 +6427,7 @@@ F:      drivers/gpu/drm/aspeed
  DRM DRIVER FOR AST SERVER GRAPHICS CHIPS
  M:    Dave Airlie <[email protected]>
  R:    Thomas Zimmermann <[email protected]>
 +R:    Jocelyn Falempe <[email protected]>
  L:    [email protected]
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -6580,7 -6546,6 +6579,7 @@@ F:      drivers/gpu/drm/panel/panel-mantix-m
  DRM DRIVER FOR MGA G200 GRAPHICS CHIPS
  M:    Dave Airlie <[email protected]>
  R:    Thomas Zimmermann <[email protected]>
 +R:    Jocelyn Falempe <[email protected]>
  L:    [email protected]
  S:    Supported
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -6980,13 -6945,6 +6979,13 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    drivers/gpu/drm/lima/
  F:    include/uapi/drm/lima_drm.h
  
 +DRM DRIVERS FOR LOONGSON
 +M:    Sui Jingfeng <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    drivers/gpu/drm/loongson/
 +
  DRM DRIVERS FOR MEDIATEK
  M:    Chun-Kuang Hu <[email protected]>
  M:    Philipp Zabel <[email protected]>
@@@ -7056,7 -7014,7 +7055,7 @@@ F:      drivers/gpu/drm/st
  
  DRM DRIVERS FOR TI KEYSTONE
  M:    Jyri Sarha <[email protected]>
 -M:    Tomi Valkeinen <tom[email protected]>
 +M:    Tomi Valkeinen <tom[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -7067,18 -7025,16 +7066,18 @@@ F:   drivers/gpu/drm/tidss
  
  DRM DRIVERS FOR TI LCDC
  M:    Jyri Sarha <[email protected]>
 -R:    Tomi Valkeinen <[email protected]>
 +M:    Tomi Valkeinen <[email protected]>
  L:    [email protected]
  S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/display/tilcdc/
  F:    drivers/gpu/drm/tilcdc/
  
  DRM DRIVERS FOR TI OMAP
 -M:    Tomi Valkeinen <tom[email protected]>
 +M:    Tomi Valkeinen <tom[email protected]>
  L:    [email protected]
  S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/display/ti/
  F:    drivers/gpu/drm/omapdrm/
  
@@@ -7165,14 -7121,6 +7164,14 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    drivers/gpu/drm/ttm/
  F:    include/drm/ttm/
  
 +DRM AUTOMATED TESTING
 +M:    Helen Koike <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/gpu/automated_testing.rst
 +F:    drivers/gpu/drm/ci/
 +
  DSBR100 USB FM RADIO DRIVER
  M:    Alexey Klimov <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/mmc/host/cqhci*
  
 +EMS CPC-PCI CAN DRIVER
 +M:    Gerhard Uttenthaler <[email protected]>
 +M:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/can/sja1000/ems_pci.c
 +
  EMULEX 10Gbps iSCSI - OneConnect DRIVER
  M:    Ketan Mukadam <[email protected]>
  L:    [email protected]
@@@ -7790,7 -7731,6 +7789,7 @@@ F:      include/linux/mii.
  F:    include/linux/of_net.h
  F:    include/linux/phy.h
  F:    include/linux/phy_fixed.h
 +F:    include/linux/phylib_stubs.h
  F:    include/linux/platform_data/mdio-bcm-unimac.h
  F:    include/linux/platform_data/mdio-gpio.h
  F:    include/trace/events/mdio.h
@@@ -8410,6 -8350,7 +8409,6 @@@ L:      [email protected]
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/freescale/fs_enet/
 -F:    include/linux/fs_enet_pd.h
  
  FREESCALE SOC SOUND DRIVERS
  M:    Shengjiu Wang <[email protected]>
@@@ -8460,6 -8401,13 +8459,6 @@@ F:     Documentation/power/freezing-of-task
  F:    include/linux/freezer.h
  F:    kernel/freezer.c
  
 -FRONTSWAP API
 -M:    Konrad Rzeszutek Wilk <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    include/linux/frontswap.h
 -F:    mm/frontswap.c
 -
  FS-CACHE: LOCAL CACHING FOR NETWORK FILESYSTEMS
  M:    David Howells <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -8724,13 -8672,6 +8723,13 @@@ F:    Documentation/devicetree/bindings/po
  F:    drivers/base/power/domain*.c
  F:    include/linux/pm_domain.h
  
 +GENERIC PM DOMAIN PROVIDERS
 +M:    Ulf Hansson <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm.git
 +F:    drivers/genpd/
 +
  GENERIC RESISTIVE TOUCHSCREEN ADC DRIVER
  M:    Eugen Hristev <[email protected]>
  L:    [email protected]
@@@ -8782,7 -8723,7 +8781,7 @@@ F:      scripts/get_maintainer.p
  GFS2 FILE SYSTEM
  M:    Bob Peterson <[email protected]>
  M:    Andreas Gruenbacher <[email protected]>
 -L:    [email protected]
 +L:    [email protected]
  S:    Supported
  B:    https://bugzilla.kernel.org/enter_bug.cgi?product=File%20System&component=gfs2
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git
@@@ -8827,15 -8768,6 +8826,15 @@@ S:    Supporte
  F:    Documentation/networking/device_drivers/ethernet/google/gve.rst
  F:    drivers/net/ethernet/google
  
 +GOOGLE FIRMWARE DRIVERS
 +M:    Tzung-Bi Shih <[email protected]>
 +R:    Brian Norris <[email protected]>
 +R:    Julius Werner <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git
 +F:    drivers/firmware/google/
 +
  GPD POCKET FAN DRIVER
  M:    Hans de Goede <[email protected]>
  L:    [email protected]
@@@ -9373,7 -9305,7 +9372,7 @@@ F:      drivers/crypto/hisilicon/hpre/hpre_c
  F:    drivers/crypto/hisilicon/hpre/hpre_main.c
  
  HISILICON HNS3 PMU DRIVER
 -M:    Guangbin Huang <huangguangbin2@huawei.com>
 +M:    Jijie Shao <shaojijie@huawei.com>
  S:    Supported
  F:    Documentation/admin-guide/perf/hns3-pmu.rst
  F:    drivers/perf/hisilicon/hns3_pmu.c
@@@ -9386,13 -9318,6 +9385,13 @@@ W:    https://www.hisilicon.co
  F:    Documentation/devicetree/bindings/i2c/hisilicon,ascend910-i2c.yaml
  F:    drivers/i2c/busses/i2c-hisi.c
  
 +HISILICON KUNPENG SOC HCCS DRIVER
 +M:    Huisong Li <[email protected]>
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-devices-platform-kunpeng_hccs
 +F:    drivers/soc/hisilicon/kunpeng_hccs.c
 +F:    drivers/soc/hisilicon/kunpeng_hccs.h
 +
  HISILICON LPC BUS DRIVER
  M:    Jay Fang <[email protected]>
  S:    Maintained
@@@ -9418,7 -9343,7 +9417,7 @@@ F:      Documentation/devicetree/bindings/ne
  F:    drivers/net/ethernet/hisilicon/
  
  HISILICON PMU DRIVER
 -M:    Shaokun Zhang <zhangshaokun@hisilicon.com>
 +M:    Yicong Yang <yangyicong@hisilicon.com>
  M:    Jonathan Cameron <[email protected]>
  S:    Supported
  W:    http://www.hisilicon.com
@@@ -9538,12 -9463,6 +9537,12 @@@ S:    Obsolet
  W:    http://w1.fi/hostap-driver.html
  F:    drivers/net/wireless/intersil/hostap/
  
 +HP BIOSCFG DRIVER
 +M:    Jorge Lopez <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/platform/x86/hp/hp-bioscfg/
 +
  HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER
  L:    [email protected]
  S:    Orphan
@@@ -9575,12 -9494,6 +9574,12 @@@ S:    Maintaine
  W:    http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi
  F:    fs/hpfs/
  
 +HS3001 Hardware Temperature and Humidity Sensor
 +M:    Andre Werner <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/hwmon/hs3001.c
 +
  HSI SUBSYSTEM
  M:    Sebastian Reichel <[email protected]>
  S:    Maintained
@@@ -9684,7 -9597,7 +9683,7 @@@ S:      Maintaine
  F:    arch/x86/kernel/cpu/hygon.c
  
  HYNIX HI556 SENSOR DRIVER
 -M:    Shawn Tu <shawnx.tu@intel.com>
 +M:    Sakari Ailus <sakari.ailus@linux.intel.com>
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
@@@ -9697,7 -9610,7 +9696,7 @@@ S:      Maintaine
  F:    drivers/media/i2c/hi846.c
  
  HYNIX HI847 SENSOR DRIVER
 -M:    Shawn Tu <shawnx.tu@intel.com>
 +M:    Sakari Ailus <sakari.ailus@linux.intel.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/media/i2c/hi847.c
  S:    Maintained
  F:    drivers/i2c/i2c-core-acpi.c
  
 +I2C ADDRESS TRANSLATOR (ATR)
 +M:    Tomi Valkeinen <[email protected]>
 +R:    Luca Ceresoli <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/i2c/i2c-atr.c
 +F:    include/linux/i2c-atr.h
 +
  I2C CONTROLLER DRIVER FOR NVIDIA GPU
  M:    Ajay Gupta <[email protected]>
  L:    [email protected]
@@@ -10832,7 -10737,6 +10831,7 @@@ INTEL TPMI DRIVE
  M:    Srinivas Pandruvada <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/ABI/testing/debugfs-tpmi
  F:    drivers/platform/x86/intel/tpmi.c
  F:    include/linux/intel_tpmi.h
  
@@@ -11017,6 -10921,7 +11016,6 @@@ F:   include/linux/io_uring_types.
  F:    include/trace/events/io_uring.h
  F:    include/uapi/linux/io_uring.h
  F:    io_uring/
 -F:    tools/io_uring/
  
  IPMI SUBSYSTEM
  M:    Corey Minyard <[email protected]>
@@@ -11390,7 -11295,6 +11389,7 @@@ F:   scripts/dummy-tools
  F:    scripts/mk*
  F:    scripts/mod/
  F:    scripts/package/
 +F:    usr/
  
  KERNEL HARDENING (not covered by other areas)
  M:    Kees Cook <[email protected]>
@@@ -11479,8 -11383,6 +11478,8 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/dev-tools/kunit/
  F:    include/kunit/
  F:    lib/kunit/
 +F:    rust/kernel/kunit.rs
 +F:    scripts/rustdoc_test_*
  F:    tools/testing/kunit/
  
  KERNEL USERMODE HELPER
@@@ -11597,8 -11499,6 +11596,8 @@@ F:   arch/x86/include/uapi/asm/svm.
  F:    arch/x86/include/uapi/asm/vmx.h
  F:    arch/x86/kvm/
  F:    arch/x86/kvm/*/
 +F:    tools/testing/selftests/kvm/*/x86_64/
 +F:    tools/testing/selftests/kvm/x86_64/
  
  KERNFS
  M:    Greg Kroah-Hartman <[email protected]>
@@@ -12342,8 -12242,8 +12341,8 @@@ R:   WANG Xuerui <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git
 -F:    Documentation/loongarch/
 -F:    Documentation/translations/zh_CN/loongarch/
 +F:    Documentation/arch/loongarch/
 +F:    Documentation/translations/zh_CN/arch/loongarch/
  F:    arch/loongarch/
  F:    drivers/*/*loongarch*
  
@@@ -12369,16 -12269,6 +12368,16 @@@ F: Documentation/devicetree/bindings/cl
  F:    drivers/clk/clk-loongson2.c
  F:    include/dt-bindings/clock/loongson,ls2k-clk.h
  
 +LOONGSON SPI DRIVER
 +M:    Yinbo Zhu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/spi/loongson,ls2k-spi.yaml
 +F:    drivers/spi/spi-loongson-core.c
 +F:    drivers/spi/spi-loongson-pci.c
 +F:    drivers/spi/spi-loongson-plat.c
 +F:    drivers/spi/spi-loongson.h
 +
  LOONGSON-2 SOC SERIES GUTS DRIVER
  M:    Yinbo Zhu <[email protected]>
  L:    [email protected]
@@@ -12386,13 -12276,6 +12385,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/hwinfo/loongson,ls2k-chipid.yaml
  F:    drivers/soc/loongson/loongson2_guts.c
  
 +LOONGSON-2 SOC SERIES PM DRIVER
 +M:    Yinbo Zhu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/soc/loongson/loongson,ls2k-pmc.yaml
 +F:    drivers/soc/loongson/loongson2_pm.c
 +
  LOONGSON-2 SOC SERIES PINCTRL DRIVER
  M:    zhanghongchen <[email protected]>
  M:    Yinbo Zhu <[email protected]>
@@@ -12401,14 -12284,6 +12400,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/pinctrl/loongson,ls2k-pinctrl.yaml
  F:    drivers/pinctrl/pinctrl-loongson2.c
  
 +LOONGSON-2 SOC SERIES THERMAL DRIVER
 +M:    zhanghongchen <[email protected]>
 +M:    Yinbo Zhu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/thermal/loongson,ls2k-thermal.yaml
 +F:    drivers/thermal/loongson2_thermal.c
 +
  LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
  M:    Sathya Prakash <[email protected]>
  M:    Sreekanth Reddy <[email protected]>
@@@ -12950,7 -12825,7 +12949,7 @@@ F:   drivers/power/supply/max77976_charge
  MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS
  M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected]
 -S:    Supported
 +S:    Maintained
  B:    mailto:[email protected]
  F:    Documentation/devicetree/bindings/power/supply/maxim,max14577.yaml
  F:    Documentation/devicetree/bindings/power/supply/maxim,max77693.yaml
@@@ -12961,7 -12836,7 +12960,7 @@@ MAXIM PMIC AND MUIC DRIVERS FOR EXYNOS 
  M:    Chanwoo Choi <[email protected]>
  M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected]
 -S:    Supported
 +S:    Maintained
  B:    mailto:[email protected]
  F:    Documentation/devicetree/bindings/*/maxim,max14577.yaml
  F:    Documentation/devicetree/bindings/*/maxim,max77686.yaml
@@@ -13129,21 -13004,17 +13128,21 @@@ F:        drivers/staging/media/imx
  F:    include/linux/imx-media.h
  F:    include/media/imx.h
  
 -MEDIA DRIVERS FOR FREESCALE IMX7
 +MEDIA DRIVERS FOR FREESCALE IMX7/8
  M:    Rui Miguel Silva <[email protected]>
  M:    Laurent Pinchart <[email protected]>
 +M:    Martin Kepplinger <[email protected]>
 +R:    Purism Kernel Team <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/admin-guide/media/imx7.rst
  F:    Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
  F:    Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml
 +F:    Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml
  F:    drivers/media/platform/nxp/imx-mipi-csis.c
  F:    drivers/media/platform/nxp/imx7-media-csi.c
 +F:    drivers/media/platform/nxp/imx8mq-mipi-csi2.c
  
  MEDIA DRIVERS FOR HELENE
  M:    Abylay Ospan <[email protected]>
  S:    Supported
  F:    Documentation/devicetree/bindings/iommu/mediatek*
  F:    drivers/iommu/mtk_iommu*
 +F:    include/dt-bindings/memory/mediatek,mt*-port.h
  F:    include/dt-bindings/memory/mt*-port.h
  
  MEDIATEK JPEG DRIVER
@@@ -13753,7 -13623,6 +13752,7 @@@ F:   include/linux/memory_hotplug.
  F:    include/linux/mm.h
  F:    include/linux/mmzone.h
  F:    include/linux/pagewalk.h
 +F:    include/linux/rmap.h
  F:    include/trace/events/ksm.h
  F:    mm/
  F:    tools/mm/
@@@ -14048,14 -13917,12 +14047,14 @@@ F:        drivers/nvmem/microchip-otpc.
  F:    include/dt-bindings/nvmem/microchip,sama7g5-otpc.h
  
  MICROCHIP PCI1XXXX GP DRIVER
 +M:    Vaibhaav Ram T.L <[email protected]>
  M:    Kumaravel Thiagarajan <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gp.c
  F:    drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gp.h
  F:    drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gpio.c
 +F:    drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_otpe2p.c
  
  MICROCHIP PCI1XXXX I2C DRIVER
  M:    Tharun Kumar P <[email protected]>
@@@ -14301,7 -14168,7 +14300,7 @@@ W:   http://www.linux-mips.org
  Q:    https://patchwork.kernel.org/project/linux-mips/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git
  F:    Documentation/devicetree/bindings/mips/
 -F:    Documentation/mips/
 +F:    Documentation/arch/mips/
  F:    arch/mips/
  F:    drivers/platform/mips/
  F:    include/dt-bindings/mips/
@@@ -14772,7 -14639,7 +14771,7 @@@ F:   drivers/rtc/rtc-ntxec.
  F:    include/linux/mfd/ntxec.h
  
  NETRONOME ETHERNET DRIVERS
 -M:    Simon Horman <simon.horman@corigine.com>
 +M:    Louis Peens <louis.peens@corigine.com>
  R:    Jakub Kicinski <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -14935,16 -14802,6 +14934,16 @@@ F: net/netfilter/xt_CONNSECMARK.
  F:    net/netfilter/xt_SECMARK.c
  F:    net/netlabel/
  
 +NETWORKING [MACSEC]
 +M:    Sabrina Dubroca <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/macsec.c
 +F:    include/net/macsec.h
 +F:    include/uapi/linux/if_macsec.h
 +K:    macsec
 +K:    \bmdo_
 +
  NETWORKING [MPTCP]
  M:    Matthieu Baerts <[email protected]>
  M:    Mat Martineau <[email protected]>
@@@ -14967,6 -14824,7 +14966,6 @@@ NETWORKING [TCP
  M:    Eric Dumazet <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    include/linux/net_mm.h
  F:    include/linux/tcp.h
  F:    include/net/tcp.h
  F:    include/trace/events/tcp.h
@@@ -15129,7 -14987,6 +15128,7 @@@ F:   include/linux/power/bq27xxx_battery.
  
  NOLIBC HEADER FILE
  M:    Willy Tarreau <[email protected]>
 +M:    Thomas Weißschuh <[email protected]>
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git
  F:    tools/include/nolibc/
@@@ -15656,7 -15513,6 +15655,7 @@@ W:   http://www.muru.com/linux/omap
  W:    http://linux.omap.com/
  Q:    http://patchwork.kernel.org/project/linux-omap/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
 +F:    Documentation/devicetree/bindings/arm/ti/omap.yaml
  F:    arch/arm/configs/omap2plus_defconfig
  F:    arch/arm/mach-omap2/
  F:    drivers/bus/ti-sysc.c
@@@ -15693,7 -15549,7 +15692,7 @@@ F:   Documentation/filesystems/omfs.rs
  F:    fs/omfs/
  
  OMNIVISION OG01A1B SENSOR DRIVER
 -M:    Shawn Tu <shawnx.tu@intel.com>
 +M:    Sakari Ailus <sakari.ailus@linux.intel.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/media/i2c/og01a1b.c
@@@ -15706,8 -15562,9 +15705,8 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    drivers/media/i2c/ov01a10.c
  
  OMNIVISION OV02A10 SENSOR DRIVER
 -M:    Dongchun Zhu <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml
  F:    drivers/media/i2c/ov02a10.c
@@@ -15742,7 -15599,6 +15741,7 @@@ F:   drivers/media/i2c/ov13b10.
  
  OMNIVISION OV2680 SENSOR DRIVER
  M:    Rui Miguel Silva <[email protected]>
 +M:    Hans de Goede <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
@@@ -15759,7 -15615,7 +15758,7 @@@ F:   drivers/media/i2c/ov2685.
  
  OMNIVISION OV2740 SENSOR DRIVER
  M:    Tianshu Qiu <[email protected]>
 -R:    Shawn Tu <shawnx.tu@intel.com>
 +R:    Sakari Ailus <sakari.ailus@linux.intel.com>
  R:    Bingbu Cao <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -15791,7 -15647,7 +15790,7 @@@ F:   Documentation/devicetree/bindings/me
  F:    drivers/media/i2c/ov5647.c
  
  OMNIVISION OV5670 SENSOR DRIVER
 -M:    Chiranjeevi Rapolu <chiranjeevi.rapolu@intel.com>
 +M:    Sakari Ailus <sakari.ailus@linux.intel.com>
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
@@@ -15799,7 -15655,7 +15798,7 @@@ F:   Documentation/devicetree/bindings/me
  F:    drivers/media/i2c/ov5670.c
  
  OMNIVISION OV5675 SENSOR DRIVER
 -M:    Shawn Tu <shawnx.tu@intel.com>
 +M:    Sakari Ailus <sakari.ailus@linux.intel.com>
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
@@@ -15838,8 -15694,9 +15837,8 @@@ F:   drivers/media/i2c/ov772x.
  F:    include/media/i2c/ov772x.h
  
  OMNIVISION OV7740 SENSOR DRIVER
 -M:    Wenyou Yang <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/i2c/ov7740.txt
  F:    drivers/media/i2c/ov7740.c
@@@ -16144,7 -16001,7 +16143,7 @@@ M:   Ilias Apalodimas <ilias.apalodimas@l
  L:    [email protected]
  S:    Supported
  F:    Documentation/networking/page_pool.rst
 -F:    include/net/page_pool.h
 +F:    include/net/page_pool/
  F:    include/trace/events/page_pool.h
  F:    net/core/page_pool.c
  
  S:    Supported
  W:    https://perf.wiki.kernel.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools.git perf-tools
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git perf-tools-next
  F:    arch/*/events/*
  F:    arch/*/events/*/*
  F:    arch/*/include/asm/perf_event.h
@@@ -17175,7 -17030,7 +17174,7 @@@ L:   [email protected] (subscriber
  S:    Maintained
  W:    http://wiki.enneenne.com/index.php/LinuxPPS_support
  F:    Documentation/ABI/testing/sysfs-pps
 -F:    Documentation/devicetree/bindings/pps/pps-gpio.txt
 +F:    Documentation/devicetree/bindings/pps/pps-gpio.yaml
  F:    Documentation/driver-api/pps.rst
  F:    drivers/pps/
  F:    include/linux/pps*.h
@@@ -17191,16 -17046,15 +17190,16 @@@ F:        drivers/net/ppp/pptp.
  PRESSURE STALL INFORMATION (PSI)
  M:    Johannes Weiner <[email protected]>
  M:    Suren Baghdasaryan <[email protected]>
 +R:    Peter Ziljstra <[email protected]>
  S:    Maintained
  F:    include/linux/psi*
  F:    kernel/sched/psi.c
  
  PRINTK
  M:    Petr Mladek <[email protected]>
 -M:    Sergey Senozhatsky <[email protected]>
  R:    Steven Rostedt <[email protected]>
  R:    John Ogness <[email protected]>
 +R:    Sergey Senozhatsky <[email protected]>
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux.git
  F:    include/linux/printk.h
@@@ -17299,13 -17153,6 +17298,13 @@@ F: drivers/ptp/
  F:    include/linux/ptp_cl*
  K:    (?:\b|_)ptp(?:\b|_)
  
 +PTP MOCKUP CLOCK SUPPORT
 +M:    Vladimir Oltean <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/ptp/ptp_mock.c
 +F:    include/linux/ptp_mock.h
 +
  PTP VIRTUAL CLOCK SUPPORT
  M:    Yangbo Lu <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/power/avs/qcom,cpr.yaml
 -F:    drivers/soc/qcom/cpr.c
 +F:    drivers/genpd/qcom/cpr.c
  
  QUALCOMM CPUFREQ DRIVER MSM8996/APQ8096
  M:    Ilia Lin <[email protected]>
@@@ -18094,6 -17941,7 +18093,6 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    Documentation/admin-guide/rtc.rst
  F:    Documentation/devicetree/bindings/rtc/
  F:    drivers/rtc/
 -F:    include/linux/platform_data/rtc-*
  F:    include/linux/rtc.h
  F:    include/linux/rtc/
  F:    include/uapi/linux/rtc.h
@@@ -18163,7 -18011,7 +18162,7 @@@ F:   include/linux/regmap.
  
  REISERFS FILE SYSTEM
  L:    [email protected]
 -S:    Supported
 +S:    Obsolete
  F:    fs/reiserfs/
  
  REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM
@@@ -18704,8 -18552,6 +18703,8 @@@ R:   Boqun Feng <[email protected]
  R:    Gary Guo <[email protected]>
  R:    Björn Roy Baron <[email protected]>
  R:    Benno Lossin <[email protected]>
 +R:    Andreas Hindborg <[email protected]>
 +R:    Alice Ryhl <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://github.com/Rust-for-Linux/linux
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git
  F:    Documentation/driver-api/s390-drivers.rst
 -F:    Documentation/s390/
 +F:    Documentation/arch/s390/
  F:    arch/s390/
  F:    drivers/s390/
  F:    drivers/watchdog/diag288_wdt.c
@@@ -18808,7 -18654,7 +18807,7 @@@ M:   Niklas Schnelle <[email protected].
  M:    Gerald Schaefer <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/s390/pci.rst
 +F:    Documentation/arch/s390/pci.rst
  F:    arch/s390/pci/
  F:    drivers/pci/hotplug/s390_pci_hpc.c
  
@@@ -18825,7 -18671,7 +18824,7 @@@ M:   Halil Pasic <[email protected]
  M:    Jason Herne <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/s390/vfio-ap*
 +F:    Documentation/arch/s390/vfio-ap*
  F:    drivers/s390/crypto/vfio_ap*
  
  S390 VFIO-CCW DRIVER
@@@ -18835,7 -18681,7 +18834,7 @@@ R:   Halil Pasic <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -F:    Documentation/s390/vfio-ccw.rst
 +F:    Documentation/arch/s390/vfio-ccw.rst
  F:    drivers/s390/cio/vfio_ccw*
  F:    include/uapi/linux/vfio_ccw.h
  
@@@ -18941,7 -18787,7 +18940,7 @@@ SAMSUNG MULTIFUNCTION PMIC DEVICE DRIVE
  M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -S:    Supported
 +S:    Maintained
  B:    mailto:[email protected]
  F:    Documentation/devicetree/bindings/clock/samsung,s2mps11.yaml
  F:    Documentation/devicetree/bindings/mfd/samsung,s2m*.yaml
@@@ -19013,7 -18859,7 +19012,7 @@@ M:   Tomasz Figa <[email protected]
  M:    Chanwoo Choi <[email protected]>
  R:    Alim Akhtar <[email protected]>
  L:    [email protected]
 -S:    Supported
 +S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/snawrocki/clk.git
  F:    Documentation/devicetree/bindings/clock/samsung,*.yaml
@@@ -19428,6 -19274,7 +19427,6 @@@ F:   drivers/misc/sgi-gru
  SGI XP/XPC/XPNET DRIVER
  M:    Robin Holt <[email protected]>
  M:    Steve Wahl <[email protected]>
 -R:    Mike Travis <[email protected]>
  S:    Maintained
  F:    drivers/misc/sgi-xp/
  
@@@ -19546,32 -19393,6 +19545,32 @@@ F: drivers/media/mmc/siano
  F:    drivers/media/usb/siano/
  F:    drivers/media/usb/siano/
  
 +SIEMENS IPC LED DRIVERS
 +M:    Gerd Haeussler <[email protected]>
 +M:    Xing Tong Wu <[email protected]>
 +M:    Tobias Schaffner <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/leds/simple/
 +
 +SIEMENS IPC PLATFORM DRIVERS
 +M:    Gerd Haeussler <[email protected]>
 +M:    Xing Tong Wu <[email protected]>
 +M:    Tobias Schaffner <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/platform/x86/siemens/
 +F:    include/linux/platform_data/x86/simatic-ipc-base.h
 +F:    include/linux/platform_data/x86/simatic-ipc.h
 +
 +SIEMENS IPC WATCHDOG DRIVERS
 +M:    Gerd Haeussler <[email protected]>
 +M:    Xing Tong Wu <[email protected]>
 +M:    Tobias Schaffner <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/watchdog/simatic-ipc-wdt.c
 +
  SIFIVE DRIVERS
  M:    Palmer Dabbelt <[email protected]>
  M:    Paul Walmsley <[email protected]>
@@@ -19764,6 -19585,13 +19763,6 @@@ M:  Nicolas Pitre <[email protected]
  S:    Odd Fixes
  F:    drivers/net/ethernet/smsc/smc91x.*
  
 -SMM665 HARDWARE MONITOR DRIVER
 -M:    Guenter Roeck <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    Documentation/hwmon/smm665.rst
 -F:    drivers/hwmon/smm665.c
 -
  SMSC EMC2103 HARDWARE MONITOR DRIVER
  M:    Steve Glendinning <[email protected]>
  L:    [email protected]
@@@ -20416,13 -20244,6 +20415,13 @@@ S: Supporte
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
  F:    drivers/staging/
  
 +STANDALONE CACHE CONTROLLER DRIVERS
 +M:    Conor Dooley <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
 +F:    drivers/cache
 +
  STARFIRE/DURALAN NETWORK DRIVER
  M:    Ion Badulescu <[email protected]>
  S:    Odd Fixes
@@@ -20447,31 -20268,12 +20446,31 @@@ S:        Maintaine
  F:    Documentation/devicetree/bindings/net/starfive,jh7110-dwmac.yaml
  F:    drivers/net/ethernet/stmicro/stmmac/dwmac-starfive.c
  
 +STARFIVE JH7110 DPHY RX DRIVER
 +M:    Jack Zhu <[email protected]>
 +M:    Changhuang Liang <[email protected]>
 +S:    Supported
 +F:    Documentation/devicetree/bindings/phy/starfive,jh7110-dphy-rx.yaml
 +F:    drivers/phy/starfive/phy-jh7110-dphy-rx.c
 +
  STARFIVE JH7110 MMC/SD/SDIO DRIVER
  M:    William Qiu <[email protected]>
  S:    Supported
  F:    Documentation/devicetree/bindings/mmc/starfive*
  F:    drivers/mmc/host/dw_mmc-starfive.c
  
 +STARFIVE JH7110 PLL CLOCK DRIVER
 +M:    Xingyu Wu <[email protected]>
 +S:    Supported
 +F:    Documentation/devicetree/bindings/clock/starfive,jh7110-pll.yaml
 +F:    drivers/clk/starfive/clk-starfive-jh7110-pll.c
 +
 +STARFIVE JH7110 SYSCON
 +M:    William Qiu <[email protected]>
 +M:    Xingyu Wu <[email protected]>
 +S:    Supported
 +F:    Documentation/devicetree/bindings/soc/starfive/starfive,jh7110-syscon.yaml
 +
  STARFIVE JH7110 TDM DRIVER
  M:    Walker Chen <[email protected]>
  S:    Maintained
@@@ -20514,14 -20316,13 +20513,14 @@@ STARFIVE JH71XX PMU CONTROLLER DRIVE
  M:    Walker Chen <[email protected]>
  S:    Supported
  F:    Documentation/devicetree/bindings/power/starfive*
 -F:    drivers/soc/starfive/jh71xx_pmu.c
 +F:    drivers/genpd/starfive/jh71xx-pmu.c
  F:    include/dt-bindings/power/starfive,jh7110-pmu.h
  
  STARFIVE SOC DRIVERS
  M:    Conor Dooley <[email protected]>
  S:    Maintained
  T:    git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
 +F:    Documentation/devicetree/bindings/soc/starfive/
  F:    drivers/soc/starfive/
  
  STARFIVE TRNG DRIVER
@@@ -20537,14 -20338,6 +20536,14 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/watchdog/starfive*
  F:    drivers/watchdog/starfive-wdt.c
  
 +STARFIVE JH71X0 PCIE AND USB PHY DRIVER
 +M:    Minda Chen <[email protected]>
 +S:    Supported
 +F:    Documentation/devicetree/bindings/phy/starfive,jh7110-pcie-phy.yaml
 +F:    Documentation/devicetree/bindings/phy/starfive,jh7110-usb-phy.yaml
 +F:    drivers/phy/starfive/phy-jh7110-pcie.c
 +F:    drivers/phy/starfive/phy-jh7110-usb.c
 +
  STATIC BRANCH/CALL
  M:    Peter Zijlstra <[email protected]>
  M:    Josh Poimboeuf <[email protected]>
@@@ -21258,39 -21051,6 +21257,39 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml
  F:    sound/soc/ti/
  
 +TEXAS INSTRUMENTS AUDIO (ASoC/HDA) DRIVERS
 +M:    Shenghao Ding <[email protected]>
 +M:    Kevin Lu <[email protected]>
 +M:    Baojun Xu <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/tas2552.txt
 +F:    Documentation/devicetree/bindings/sound/tas2562.yaml
 +F:    Documentation/devicetree/bindings/sound/tas2770.yaml
 +F:    Documentation/devicetree/bindings/sound/tas27xx.yaml
 +F:    Documentation/devicetree/bindings/sound/ti,pcm1681.txt
 +F:    Documentation/devicetree/bindings/sound/ti,pcm3168a.yaml
 +F:    Documentation/devicetree/bindings/sound/ti,tlv320*.yaml
 +F:    Documentation/devicetree/bindings/sound/tlv320adcx140.yaml
 +F:    Documentation/devicetree/bindings/sound/tlv320aic31xx.txt
 +F:    Documentation/devicetree/bindings/sound/tpa6130a2.txt
 +F:    include/sound/tas2*.h
 +F:    include/sound/tlv320*.h
 +F:    include/sound/tpa6130a2-plat.h
 +F:    sound/pci/hda/tas2781_hda_i2c.c
 +F:    sound/soc/codecs/pcm1681.c
 +F:    sound/soc/codecs/pcm1789*.*
 +F:    sound/soc/codecs/pcm179x*.*
 +F:    sound/soc/codecs/pcm186x*.*
 +F:    sound/soc/codecs/pcm3008.*
 +F:    sound/soc/codecs/pcm3060*.*
 +F:    sound/soc/codecs/pcm3168a*.*
 +F:    sound/soc/codecs/pcm5102a.c
 +F:    sound/soc/codecs/pcm512x*.*
 +F:    sound/soc/codecs/tas2*.*
 +F:    sound/soc/codecs/tlv320*.*
 +F:    sound/soc/codecs/tpa6130a2.*
 +
  TEXAS INSTRUMENTS DMA DRIVERS
  M:    Peter Ujfalusi <[email protected]>
  L:    [email protected]
@@@ -21339,7 -21099,7 +21338,7 @@@ F:   drivers/irqchip/irq-ti-sci-inta.
  F:    drivers/irqchip/irq-ti-sci-intr.c
  F:    drivers/reset/reset-ti-sci.c
  F:    drivers/soc/ti/ti_sci_inta_msi.c
 -F:    drivers/soc/ti/ti_sci_pm_domains.c
 +F:    drivers/genpd/ti/ti_sci_pm_domains.c
  F:    include/dt-bindings/soc/ti,sci_pm_domain.h
  F:    include/linux/soc/ti/ti_sci_inta_msi.h
  F:    include/linux/soc/ti/ti_sci_protocol.h
@@@ -21566,14 -21326,6 +21565,14 @@@ F: drivers/misc/tifm
  F:    drivers/mmc/host/tifm_sd.c
  F:    include/linux/tifm.h
  
 +TI FPD-LINK DRIVERS
 +M:    Tomi Valkeinen <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/ti,ds90*
 +F:    drivers/media/i2c/ds90*
 +F:    include/media/i2c/ds90*
 +
  TI KEYSTONE MULTICORE NAVIGATOR DRIVERS
  M:    Nishanth Menon <[email protected]>
  M:    Santosh Shilimkar <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
 +F:    drivers/genpd/ti/omap_prm.c
  F:    drivers/soc/ti/*
  
  TI LM49xxx FAMILY ASoC CODEC DRIVERS
@@@ -21824,20 -21575,6 +21823,20 @@@ S: Maintaine
  F:    Documentation/hwmon/tps546d24.rst
  F:    drivers/hwmon/pmbus/tps546d24.c
  
 +TQ SYSTEMS BOARD & DRIVER SUPPORT
 +L:    [email protected]
 +S:    Supported
 +W:    https://www.tq-group.com/en/products/tq-embedded/
 +F:    arch/arm/boot/dts/imx*mba*.dts*
 +F:    arch/arm/boot/dts/imx*tqma*.dts*
 +F:    arch/arm/boot/dts/mba*.dtsi
 +F:    arch/arm64/boot/dts/freescale/imx*mba*.dts*
 +F:    arch/arm64/boot/dts/freescale/imx*tqma*.dts*
 +F:    arch/arm64/boot/dts/freescale/mba*.dtsi
 +F:    drivers/gpio/gpio-tqmx86.c
 +F:    drivers/mfd/tqmx86.c
 +F:    drivers/watchdog/tqmx86_wdt.c
 +
  TRACING
  M:    Steven Rostedt <[email protected]>
  M:    Masami Hiramatsu <[email protected]>
@@@ -21883,7 -21620,8 +21882,7 @@@ F:   kernel/trace/trace_osnoise.
  F:    kernel/trace/trace_sched_wakeup.c
  
  TRADITIONAL CHINESE DOCUMENTATION
 -M:    Hu Haowen <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 +M:    Hu Haowen <[email protected]>
  S:    Maintained
  W:    https://github.com/srcres258/linux-doc
  T:    git git://github.com/srcres258/linux-doc.git doc-zh-tw
@@@ -22047,7 -21785,7 +22046,7 @@@ F:   Documentation/admin-guide/ufs.rs
  F:    fs/ufs/
  
  UHID USERSPACE HID IO DRIVER
 -M:    David Rheinsberg <david[email protected]>
 +M:    David Rheinsberg <david@readahead.eu>
  L:    [email protected]
  S:    Maintained
  F:    drivers/hid/uhid.c
  S:    Maintained
  F:    drivers/clk/ux500/
  
 +V4L2 ASYNC AND FWNODE FRAMEWORKS
 +M:    Sakari Ailus <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/v4l2-core/v4l2-async.c
 +F:    drivers/media/v4l2-core/v4l2-fwnode.c
 +F:    include/media/v4l2-async.h
 +F:    include/media/v4l2-fwnode.h
 +
 +V4L2 LENS DRIVERS
 +M:    Sakari Ailus <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/media/i2c/ak*
 +F:    drivers/media/i2c/dw*
 +F:    drivers/media/i2c/lm*
 +
 +V4L2 CAMERA SENSOR DRIVERS
 +M:    Sakari Ailus <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/driver-api/media/camera-sensor.rst
 +F:    Documentation/driver-api/media/tx-rx.rst
 +F:    drivers/media/i2c/ar*
 +F:    drivers/media/i2c/hi*
 +F:    drivers/media/i2c/imx*
 +F:    drivers/media/i2c/mt*
 +F:    drivers/media/i2c/og*
 +F:    drivers/media/i2c/ov*
 +F:    drivers/media/i2c/s5*
 +F:    drivers/media/i2c/st-vgxy61.c
 +
  VF610 NAND DRIVER
  M:    Stefan Agner <[email protected]>
  L:    [email protected]
@@@ -22635,13 -22340,6 +22634,13 @@@ S: Maintaine
  P:    Documentation/driver-api/vfio-pci-device-specific-driver-acceptance.rst
  F:    drivers/vfio/pci/*/
  
 +VFIO PDS PCI DRIVER
 +M:    Brett Creeley <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/networking/device_drivers/ethernet/amd/pds_vfio_pci.rst
 +F:    drivers/vfio/pci/pds/
 +
  VFIO PLATFORM DRIVER
  M:    Eric Auger <[email protected]>
  L:    [email protected]
@@@ -23114,9 -22812,9 +23113,9 @@@ F:   drivers/net/vrf.
  VSPRINTF
  M:    Petr Mladek <[email protected]>
  M:    Steven Rostedt <[email protected]>
 -M:    Sergey Senozhatsky <[email protected]>
  R:    Andy Shevchenko <[email protected]>
  R:    Rasmus Villemoes <[email protected]>
 +R:    Sergey Senozhatsky <[email protected]>
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux.git
  F:    Documentation/core-api/printk-formats.rst
@@@ -23190,7 -22888,6 +23189,7 @@@ S:   Maintaine
  W:    https://www.net-swift.com
  F:    Documentation/networking/device_drivers/ethernet/wangxun/*
  F:    drivers/net/ethernet/wangxun/
 +F:    drivers/net/pcs/pcs-xpcs-wx.c
  
  WATCHDOG DEVICE DRIVERS
  M:    Wim Van Sebroeck <[email protected]>
@@@ -23219,7 -22916,7 +23218,7 @@@ S:   Maintaine
  F:    drivers/rtc/rtc-sd3078.c
  
  WIIMOTE HID DRIVER
 -M:    David Rheinsberg <david[email protected]>
 +M:    David Rheinsberg <david@readahead.eu>
  L:    [email protected]
  S:    Maintained
  F:    drivers/hid/hid-wiimote*
@@@ -23265,10 -22962,8 +23264,10 @@@ S: Orpha
  F:    drivers/net/wireless/legacy/wl3501*
  
  WMI BINARY MOF DRIVER
 -L:    [email protected]
 -S:    Orphan
 +M:    Armin Wolf <[email protected]>
 +R:    Thomas Weißschuh <[email protected]>
 +L:    [email protected]
 +S:    Maintained
  F:    Documentation/ABI/stable/sysfs-platform-wmi-bmof
  F:    Documentation/wmi/devices/wmi-bmof.rst
  F:    drivers/platform/x86/wmi-bmof.c
@@@ -23443,8 -23138,7 +23442,8 @@@ F:   arch/x86/platfor
  
  X86 PLATFORM UV HPE SUPERDOME FLEX
  M:    Steve Wahl <[email protected]>
 -R:    Mike Travis <[email protected]>
 +R:    Justin Ernst <[email protected]>
 +R:    Kyle Meyer <[email protected]>
  R:    Dimitri Sivanich <[email protected]>
  R:    Russ Anderson <[email protected]>
  S:    Supported
@@@ -23631,14 -23325,12 +23630,14 @@@ F:        include/xen/arm/swiotlb-xen.
  F:    include/xen/swiotlb-xen.h
  
  XFS FILESYSTEM
 -M:    Darrick J. Wong <[email protected]>
 +M:    Chandan Babu R <[email protected]>
 +R:    Darrick J. Wong <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://xfs.org/
  C:    irc://irc.oftc.net/xfs
  T:    git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
 +P:    Documentation/filesystems/xfs-maintainer-entry-profile.rst
  F:    Documentation/ABI/testing/sysfs-fs-xfs
  F:    Documentation/admin-guide/xfs.rst
  F:    Documentation/filesystems/xfs-delayed-logging-design.rst
diff --combined fs/btrfs/delayed-inode.c
index 53c1211dd60bab23b4574820a1b3a70f2b2c8c15,dfe29b29915fc9d0f23cd8010f579d93378e480a..caf0bbd028d11070ea8d87524c9e8c670e7d905d
@@@ -412,6 -412,7 +412,7 @@@ static void finish_one_item(struct btrf
  
  static void __btrfs_remove_delayed_item(struct btrfs_delayed_item *delayed_item)
  {
+       struct btrfs_delayed_node *delayed_node = delayed_item->delayed_node;
        struct rb_root_cached *root;
        struct btrfs_delayed_root *delayed_root;
  
        if (RB_EMPTY_NODE(&delayed_item->rb_node))
                return;
  
-       delayed_root = delayed_item->delayed_node->root->fs_info->delayed_root;
+       /* If it's in a rbtree, then we need to have delayed node locked. */
+       lockdep_assert_held(&delayed_node->mutex);
+       delayed_root = delayed_node->root->fs_info->delayed_root;
  
        BUG_ON(!delayed_root);
  
        if (delayed_item->type == BTRFS_DELAYED_INSERTION_ITEM)
-               root = &delayed_item->delayed_node->ins_root;
+               root = &delayed_node->ins_root;
        else
-               root = &delayed_item->delayed_node->del_root;
+               root = &delayed_node->del_root;
  
        rb_erase_cached(&delayed_item->rb_node, root);
        RB_CLEAR_NODE(&delayed_item->rb_node);
-       delayed_item->delayed_node->count--;
+       delayed_node->count--;
  
        finish_one_item(delayed_root);
  }
@@@ -1153,20 -1157,33 +1157,33 @@@ static int __btrfs_run_delayed_items(st
                ret = __btrfs_commit_inode_delayed_items(trans, path,
                                                         curr_node);
                if (ret) {
-                       btrfs_release_delayed_node(curr_node);
-                       curr_node = NULL;
                        btrfs_abort_transaction(trans, ret);
                        break;
                }
  
                prev_node = curr_node;
                curr_node = btrfs_next_delayed_node(curr_node);
+               /*
+                * See the comment below about releasing path before releasing
+                * node. If the commit of delayed items was successful the path
+                * should always be released, but in case of an error, it may
+                * point to locked extent buffers (a leaf at the very least).
+                */
+               ASSERT(path->nodes[0] == NULL);
                btrfs_release_delayed_node(prev_node);
        }
  
+       /*
+        * Release the path to avoid a potential deadlock and lockdep splat when
+        * releasing the delayed node, as that requires taking the delayed node's
+        * mutex. If another task starts running delayed items before we take
+        * the mutex, it will first lock the mutex and then it may try to lock
+        * the same btree path (leaf).
+        */
+       btrfs_free_path(path);
        if (curr_node)
                btrfs_release_delayed_node(curr_node);
-       btrfs_free_path(path);
        trans->block_rsv = block_rsv;
  
        return ret;
@@@ -1413,7 -1430,29 +1430,29 @@@ void btrfs_balance_delayed_items(struc
        btrfs_wq_run_delayed_node(delayed_root, fs_info, BTRFS_DELAYED_BATCH);
  }
  
- /* Will return 0 or -ENOMEM */
+ static void btrfs_release_dir_index_item_space(struct btrfs_trans_handle *trans)
+ {
+       struct btrfs_fs_info *fs_info = trans->fs_info;
+       const u64 bytes = btrfs_calc_insert_metadata_size(fs_info, 1);
+       if (test_bit(BTRFS_FS_LOG_RECOVERING, &fs_info->flags))
+               return;
+       /*
+        * Adding the new dir index item does not require touching another
+        * leaf, so we can release 1 unit of metadata that was previously
+        * reserved when starting the transaction. This applies only to
+        * the case where we had a transaction start and excludes the
+        * transaction join case (when replaying log trees).
+        */
+       trace_btrfs_space_reservation(fs_info, "transaction",
+                                     trans->transid, bytes, 0);
+       btrfs_block_rsv_release(fs_info, trans->block_rsv, bytes, NULL);
+       ASSERT(trans->bytes_reserved >= bytes);
+       trans->bytes_reserved -= bytes;
+ }
+ /* Will return 0, -ENOMEM or -EEXIST (index number collision, unexpected). */
  int btrfs_insert_delayed_dir_index(struct btrfs_trans_handle *trans,
                                   const char *name, int name_len,
                                   struct btrfs_inode *dir,
  
        mutex_lock(&delayed_node->mutex);
  
+       /*
+        * First attempt to insert the delayed item. This is to make the error
+        * handling path simpler in case we fail (-EEXIST). There's no risk of
+        * any other task coming in and running the delayed item before we do
+        * the metadata space reservation below, because we are holding the
+        * delayed node's mutex and that mutex must also be locked before the
+        * node's delayed items can be run.
+        */
+       ret = __btrfs_add_delayed_item(delayed_node, delayed_item);
+       if (unlikely(ret)) {
+               btrfs_err(trans->fs_info,
+ "error adding delayed dir index item, name: %.*s, index: %llu, root: %llu, dir: %llu, dir->index_cnt: %llu, delayed_node->index_cnt: %llu, error: %d",
+                         name_len, name, index, btrfs_root_id(delayed_node->root),
+                         delayed_node->inode_id, dir->index_cnt,
+                         delayed_node->index_cnt, ret);
+               btrfs_release_delayed_item(delayed_item);
+               btrfs_release_dir_index_item_space(trans);
+               mutex_unlock(&delayed_node->mutex);
+               goto release_node;
+       }
        if (delayed_node->index_item_leaves == 0 ||
            delayed_node->curr_index_batch_size + data_len > leaf_data_size) {
                delayed_node->curr_index_batch_size = data_len;
                 * impossible.
                 */
                if (WARN_ON(ret)) {
-                       mutex_unlock(&delayed_node->mutex);
                        btrfs_release_delayed_item(delayed_item);
+                       mutex_unlock(&delayed_node->mutex);
                        goto release_node;
                }
  
                delayed_node->index_item_leaves++;
-       } else if (!test_bit(BTRFS_FS_LOG_RECOVERING, &fs_info->flags)) {
-               const u64 bytes = btrfs_calc_insert_metadata_size(fs_info, 1);
-               /*
-                * Adding the new dir index item does not require touching another
-                * leaf, so we can release 1 unit of metadata that was previously
-                * reserved when starting the transaction. This applies only to
-                * the case where we had a transaction start and excludes the
-                * transaction join case (when replaying log trees).
-                */
-               trace_btrfs_space_reservation(fs_info, "transaction",
-                                             trans->transid, bytes, 0);
-               btrfs_block_rsv_release(fs_info, trans->block_rsv, bytes, NULL);
-               ASSERT(trans->bytes_reserved >= bytes);
-               trans->bytes_reserved -= bytes;
-       }
-       ret = __btrfs_add_delayed_item(delayed_node, delayed_item);
-       if (unlikely(ret)) {
-               btrfs_err(trans->fs_info,
-                         "err add delayed dir index item(name: %.*s) into the insertion tree of the delayed node(root id: %llu, inode id: %llu, errno: %d)",
-                         name_len, name, delayed_node->root->root_key.objectid,
-                         delayed_node->inode_id, ret);
-               BUG();
+       } else {
+               btrfs_release_dir_index_item_space(trans);
        }
        mutex_unlock(&delayed_node->mutex);
  
@@@ -1806,9 -1844,9 +1844,9 @@@ static void fill_stack_inode_item(struc
                                      inode->i_mtime.tv_nsec);
  
        btrfs_set_stack_timespec_sec(&inode_item->ctime,
 -                                   inode->i_ctime.tv_sec);
 +                                   inode_get_ctime(inode).tv_sec);
        btrfs_set_stack_timespec_nsec(&inode_item->ctime,
 -                                    inode->i_ctime.tv_nsec);
 +                                    inode_get_ctime(inode).tv_nsec);
  
        btrfs_set_stack_timespec_sec(&inode_item->otime,
                                     BTRFS_I(inode)->i_otime.tv_sec);
@@@ -1859,8 -1897,8 +1897,8 @@@ int btrfs_fill_inode(struct inode *inod
        inode->i_mtime.tv_sec = btrfs_stack_timespec_sec(&inode_item->mtime);
        inode->i_mtime.tv_nsec = btrfs_stack_timespec_nsec(&inode_item->mtime);
  
 -      inode->i_ctime.tv_sec = btrfs_stack_timespec_sec(&inode_item->ctime);
 -      inode->i_ctime.tv_nsec = btrfs_stack_timespec_nsec(&inode_item->ctime);
 +      inode_set_ctime(inode, btrfs_stack_timespec_sec(&inode_item->ctime),
 +                      btrfs_stack_timespec_nsec(&inode_item->ctime));
  
        BTRFS_I(inode)->i_otime.tv_sec =
                btrfs_stack_timespec_sec(&inode_item->otime);
diff --combined fs/btrfs/ioctl.c
index a18ee7b5a166649141e9570dee5a45b366537b04,d27b0d86b8e2c62ef0ef8e3d6772bf6e9bcbe237..75ab766fe156550afef8135892dda7f3524aa948
@@@ -384,7 -384,7 +384,7 @@@ update_flags
        binode->flags = binode_flags;
        btrfs_sync_inode_flags_to_i_flags(inode);
        inode_inc_iversion(inode);
 -      inode->i_ctime = current_time(inode);
 +      inode_set_ctime_current(inode);
        ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
  
   out_end_trans:
@@@ -1958,6 -1958,13 +1958,13 @@@ static int btrfs_search_path_in_tree_us
                                goto out_put;
                        }
  
+                       /*
+                        * We don't need the path anymore, so release it and
+                        * avoid deadlocks and lockdep warnings in case
+                        * btrfs_iget() needs to lookup the inode from its root
+                        * btree and lock the same leaf.
+                        */
+                       btrfs_release_path(path);
                        temp_inode = btrfs_iget(sb, key2.objectid, root);
                        if (IS_ERR(temp_inode)) {
                                ret = PTR_ERR(temp_inode);
                                goto out_put;
                        }
  
-                       btrfs_release_path(path);
                        key.objectid = key.offset;
                        key.offset = (u64)-1;
                        dirid = key.objectid;
diff --combined fs/btrfs/transaction.c
index 874e4394df860d379a4b766ae40135343bd08db1,341363beaf108e1be761a66d10aaadeb81e81d23..0bf42dccb0412d80db1250259ced8066deda7848
@@@ -56,12 -56,17 +56,17 @@@ static struct kmem_cache *btrfs_trans_h
   * |  Call btrfs_commit_transaction() on any trans handle attached to
   * |  transaction N
   * V
-  * Transaction N [[TRANS_STATE_COMMIT_START]]
+  * Transaction N [[TRANS_STATE_COMMIT_PREP]]
+  * |
+  * | If there are simultaneous calls to btrfs_commit_transaction() one will win
+  * | the race and the rest will wait for the winner to commit the transaction.
+  * |
+  * | The winner will wait for previous running transaction to completely finish
+  * | if there is one.
   * |
-  * | Will wait for previous running transaction to completely finish if there
-  * | is one
+  * Transaction N [[TRANS_STATE_COMMIT_START]]
   * |
-  * | Then one of the following happes:
+  * | Then one of the following happens:
   * | - Wait for all other trans handle holders to release.
   * |   The btrfs_commit_transaction() caller will do the commit work.
   * | - Wait for current transaction to be committed by others.
   */
  static const unsigned int btrfs_blocked_trans_types[TRANS_STATE_MAX] = {
        [TRANS_STATE_RUNNING]           = 0U,
+       [TRANS_STATE_COMMIT_PREP]       = 0U,
        [TRANS_STATE_COMMIT_START]      = (__TRANS_START | __TRANS_ATTACH),
        [TRANS_STATE_COMMIT_DOING]      = (__TRANS_START |
                                           __TRANS_ATTACH |
@@@ -1854,7 -1860,8 +1860,7 @@@ static noinline int create_pending_snap
  
        btrfs_i_size_write(BTRFS_I(parent_inode), parent_inode->i_size +
                                                  fname.disk_name.len * 2);
 -      parent_inode->i_mtime = current_time(parent_inode);
 -      parent_inode->i_ctime = parent_inode->i_mtime;
 +      parent_inode->i_mtime = inode_set_ctime_current(parent_inode);
        ret = btrfs_update_inode_fallback(trans, parent_root, BTRFS_I(parent_inode));
        if (ret) {
                btrfs_abort_transaction(trans, ret);
@@@ -1982,7 -1989,7 +1988,7 @@@ void btrfs_commit_transaction_async(str
         * Wait for the current transaction commit to start and block
         * subsequent transaction joins
         */
-       btrfs_might_wait_for_state(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_START);
+       btrfs_might_wait_for_state(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_PREP);
        wait_event(fs_info->transaction_blocked_wait,
                   cur_trans->state >= TRANS_STATE_COMMIT_START ||
                   TRANS_ABORTED(cur_trans));
@@@ -2129,7 -2136,7 +2135,7 @@@ static void add_pending_snapshot(struc
                return;
  
        lockdep_assert_held(&trans->fs_info->trans_lock);
-       ASSERT(cur_trans->state >= TRANS_STATE_COMMIT_START);
+       ASSERT(cur_trans->state >= TRANS_STATE_COMMIT_PREP);
  
        list_add(&trans->pending_snapshot->list, &cur_trans->pending_snapshots);
  }
@@@ -2153,7 -2160,7 +2159,7 @@@ int btrfs_commit_transaction(struct btr
        ktime_t interval;
  
        ASSERT(refcount_read(&trans->use_count) == 1);
-       btrfs_trans_state_lockdep_acquire(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_START);
+       btrfs_trans_state_lockdep_acquire(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_PREP);
  
        clear_bit(BTRFS_FS_NEED_TRANS_COMMIT, &fs_info->flags);
  
        }
  
        spin_lock(&fs_info->trans_lock);
-       if (cur_trans->state >= TRANS_STATE_COMMIT_START) {
+       if (cur_trans->state >= TRANS_STATE_COMMIT_PREP) {
                enum btrfs_trans_state want_state = TRANS_STATE_COMPLETED;
  
                add_pending_snapshot(trans);
                        want_state = TRANS_STATE_SUPER_COMMITTED;
  
                btrfs_trans_state_lockdep_release(fs_info,
-                                                 BTRFS_LOCKDEP_TRANS_COMMIT_START);
+                                                 BTRFS_LOCKDEP_TRANS_COMMIT_PREP);
                ret = btrfs_end_transaction(trans);
                wait_for_commit(cur_trans, want_state);
  
                return ret;
        }
  
-       cur_trans->state = TRANS_STATE_COMMIT_START;
+       cur_trans->state = TRANS_STATE_COMMIT_PREP;
        wake_up(&fs_info->transaction_blocked_wait);
-       btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_START);
+       btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_PREP);
  
        if (cur_trans->list.prev != &fs_info->trans_list) {
                enum btrfs_trans_state want_state = TRANS_STATE_COMPLETED;
                        btrfs_put_transaction(prev_trans);
                        if (ret)
                                goto lockdep_release;
-               } else {
-                       spin_unlock(&fs_info->trans_lock);
+                       spin_lock(&fs_info->trans_lock);
                }
        } else {
-               spin_unlock(&fs_info->trans_lock);
                /*
                 * The previous transaction was aborted and was already removed
                 * from the list of transactions at fs_info->trans_list. So we
                 * corrupt state (pointing to trees with unwritten nodes/leafs).
                 */
                if (BTRFS_FS_ERROR(fs_info)) {
+                       spin_unlock(&fs_info->trans_lock);
                        ret = -EROFS;
                        goto lockdep_release;
                }
        }
  
+       cur_trans->state = TRANS_STATE_COMMIT_START;
+       wake_up(&fs_info->transaction_blocked_wait);
+       spin_unlock(&fs_info->trans_lock);
        /*
         * Get the time spent on the work done by the commit thread and not
         * the time spent waiting on a previous commit
@@@ -2586,7 -2596,7 +2595,7 @@@ lockdep_release
        goto cleanup_transaction;
  
  lockdep_trans_commit_start_release:
-       btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_START);
+       btrfs_trans_state_lockdep_release(fs_info, BTRFS_LOCKDEP_TRANS_COMMIT_PREP);
        btrfs_end_transaction(trans);
        return ret;
  }
This page took 0.222292 seconds and 4 git commands to generate.