So things have been pretty calm, and rc8 is fairly small. I'm still
waiting for a networking pull with some fixes, so it's not like I
could have made a final 5.9 release even if I had wanted to, but there
was nothing scary going on this past week, and it all feels ready for
a final 5.9 next weekend.
In fact, a lot of the emails I'm seeing are about the next merge
window, and I already have one pull request ready to go, which is all
good. That's how it's all supposed to work.
Anyway, the changes in rc8 are mostly driver fixlets, with some AMD
GPU header file updates being a fairly noticeable part of the patch.
That's not some scary big change - it' just the usual register
definition update (and much smaller than the wholesale big ones we've
had).
Outside of the driver stuff, we do have a few filesystem fixes (btrfs
and nfs), and a couple of core fixes (tiny fallout from the VM
changes, but also a pipe splice race fixlet for stable and a couple of
epoll fixes). And slime other small noise (small arch and DT fixes).
Quite a small diffstat overall - which it obviously should be this
late in the release.
One final push for testing this week,
Linus
---
Adrian Huang (1):
iommu/amd: Fix the overwritten field in IVMD header
Ahmad Fatoum (1):
gpio: siox: explicitly support only threaded irqs
Al Viro (4):
epoll: do not insert into poll queues until all sanity checks are done
epoll: replace ->visited/visited_list with generation count
epoll: EPOLL_CTL_ADD: close the race in decision to take fast path
ep_create_wakeup_source(): dentry name can change under you...
Alex Deucher (6):
drm/amdgpu: add the GC 10.3 VRS registers
drm/amdgpu: add VCN 3.0 AV1 registers
drm/amdgpu: use the AV1 defines for VCN 3.0
drm/amdgpu: remove experimental flag from navi12
drm/amdgpu/display: fix CFLAGS setup for DCN30
drm/amdgpu/swsmu/smu12: fix force clock handling for mclk
Andy Shevchenko (3):
gpiolib: Fix line event handling in syscall compatible mode
gpio: pca953x: Use bitmap API over implicit GCC extension
gpio: pca953x: Correctly initialize registers 6 and 7 for PCA957x
Anup Patel (1):
RISC-V: Check clint_time_val before use
Ard Biesheuvel (1):
arm64: permit ACPI core to map kernel memory used for table overrides
Bartosz Golaszewski (1):
gpio: mockup: fix resource leak in error path
Bryan O'Donoghue (1):
USB: gadget: f_ncm: Fix NDP16 datagram validation
Chris Packham (1):
pinctrl: mvebu: Fix i2c sda definition for 98DX3236
Dan Carpenter (1):
phy: ti: am654: Fix a leak in serdes_am654_probe()
Dinh Nguyen (1):
clk: socfpga: stratix10: fix the divider for the emac_ptp_free_clk
Dirk Gouders (1):
drm/amd/display: remove duplicate call to rn_vbios_smu_get_smu_version()
Dmitry Baryshkov (2):
iio: adc: qcom-spmi-adc5: fix driver name
pinctrl: qcom: sm8250: correct sdc2_clk
Ed Wildgoose (1):
gpio: amd-fch: correct logic of GPIO_LINE_DIRECTION
Eli Cohen (1):
vhost: Fix documentation
Eric Biggers (1):
scripts/spelling.txt: fix malformed entry
Eric Farman (1):
mm, slub: restore initial kmem_cache flags
Evan Quan (1):
drm/amd/pm: setup APU dpm clock table in SMU HW initialization
Filipe Manana (1):
btrfs: fix filesystem corruption after a device replace
Flora Cui (1):
drm/amd/display: fix return value check for hdcp_work
Hanks Chen (1):
pinctrl: mediatek: check mtk_is_virt_gpio input parameter
Hans de Goede (2):
pinctrl: cherryview: Preserve CHV_PADCTRL1_INVRXTX_TXDATA flag on GPIOs
mmc: sdhci: Workaround broken command queuing on Intel GLK based
IRBIS models
Hao Xu (1):
io_uring: fix async buffered reads when readahead is disabled
Jason A. Donenfeld (1):
mm: do not rely on mm == current->mm in __get_user_pages_locked
Jason Wang (1):
vhost-vdpa: fix backend feature ioctls
Jean Delvare (2):
i2c: i801: Exclude device from suspend direct complete optimization
drm/amdgpu: restore proper ref count in amdgpu_display_crtc_set_config
Jeffrey Mitchell (1):
nfs: Fix security label length not being reset
Jens Axboe (2):
io_uring: always delete double poll wait entry on match
io_uring: fix potential ABBA deadlock in ->show_fdinfo()
Jeremy Kerr (2):
gpio/aspeed-sgpio: enable access to all 80 input & output sgpios
gpio/aspeed-sgpio: don't enable all interrupts by default
Jiansong Chen (2):
drm/amdgpu: remove gpu_info fw support for sienna_cichlid etc.
drm/amdgpu: disable gfxoff temporarily for navy_flounder
Jiri Kosina (1):
Input: i8042 - add nopnp quirk for Acer Aspire 5 A515
Joonsoo Kim (1):
mm/page_alloc: handle a missing case for
memalloc_nocma_{save/restore} APIs
Josef Bacik (2):
btrfs: move btrfs_scratch_superblocks into btrfs_dev_replace_finishing
btrfs: move btrfs_rm_dev_replace_free_srcdev outside of all locks
Juergen Gross (1):
xen/events: don't use chip_data for legacy IRQs
Kai-Heng Feng (1):
memstick: Skip allocating card when removing host
Likun Gao (1):
drm/amdgpu: add device ID for sienna_cichlid (v2)
Linus Torvalds (3):
autofs: use __kernel_write() for the autofs pipe writing
pipe: remove pipe_wait() and fix wakeup race with splice
Linux 5.9-rc8
Lorenzo Pieralisi (1):
PCI: rockchip: Fix bus checks in rockchip_pcie_valid_device()
Lu Baolu (1):
iommu/vt-d: Fix lockdep splat in iommu_flush_dev_iotlb()
M. Vefa Bicakci (4):
Revert "usbip: Implement a match function to fix usbip"
usbcore/driver: Fix specific driver selection
usbcore/driver: Fix incorrect downcast
usbcore/driver: Accommodate usbip
Marc Zyngier (1):
KVM: arm64: Restore missing ISB on nVHE __tlb_switch_to_guest
Marek Behún (1):
dt-bindings: leds: cznic,turris-omnia-leds: fix error in binding
Marek Szyprowski (2):
clk: samsung: Keep top BPLL mux on Exynos542x enabled
clk: samsung: exynos4: mark 'chipid' clock as CLK_IGNORE_UNUSED
Mark Mielke (1):
scsi: iscsi: iscsi_tcp: Avoid holding spinlock while calling getpeername()
Maxime Ripard (1):
ARM: dts: bcm2835: Change firmware compatible from simple-bus to
simple-mfd
Mircea Caprioru (1):
iio: adc: ad7124: Fix typo in device name
Nicolas VINCENT (1):
i2c: cpm: Fix i2c_ram structure
Olga Kornievskaia (1):
NFSv4.2: fix client's attribute cache management for copy_file_range
Pali Rohár (1):
MAINTAINERS: Add Pali Rohár as aardvark PCI maintainer
Palmer Dabbelt (1):
clocksource: clint: Export clint_time_val for modules
Paolo Bonzini (1):
KVM: VMX: update PFEC_MASK/PFEC_MATCH together with PF intercept
Philip Yang (1):
drm/amdgpu: prevent double kfree ttm->sg
Rob Herring (1):
dt-bindings: Fix 'reg' size issues in zynqmp examples
Roman Gushchin (1):
mm: memcg/slab: fix slab statistics in !SMP configuration
Steven Rostedt (VMware) (2):
tracing: Fix trace_find_next_entry() accounting of temp buffer size
ftrace: Move RCU is watching check after recursion check
Sudhakar Panneerselvam (1):
scsi: target: Fix lun lookup for TARGET_SCF_LOOKUP_LUN_FROM_TAG case
Sudheesh Mavila (1):
drm/amd/pm: Removed fixed clock in auto mode DPM
Taiping Lai (1):
gpio: sprd: Clear interrupt when setting the type as edge
Tali Perry (1):
i2c: npcm7xx: Clear LAST bit after a failed transaction.
Tao Ren (1):
gpio: aspeed: fix ast2600 bank properties
Tero Kristo (1):
dt-bindings: crypto: sa2ul: fix a DT binding check warning
Thibaut Sautereau (1):
random32: Restore __latent_entropy attribute on net_rand_state
Thierry Reding (3):
clk: tegra: Capitalization fixes
clk: tegra: Always program PLL_E when enabled
clk: tegra: Fix missing prototype for tegra210_clk_register_emc()
Tony Lindgren (1):
gpio: omap: Fix warnings if PM is disabled
Trond Myklebust (2):
pNFS/flexfiles: Ensure we initialise the mirror bsizes correctly on read
pNFS/flexfiles: Be consistent about mirror index types
Ulf Hansson (1):
ARM: imx6q: Fixup RCU usage for cpuidle
Uwe Kleine-König (1):
scripts/dtc: only append to HOST_EXTRACFLAGS instead of overwriting
Vincent Huang (1):
Input: trackpoint - enable Synaptics trackpoints
Vladimir Murzin (1):
dmaengine: dmatest: Prevent to run on misconfigured channel
Ye Li (1):
gpio: pca953x: Fix uninitialized pending variable
Yoann Congal (1):
Documentation: PM: Fix a reStructuredText syntax error
Yu Kuai (1):
iommu/exynos: add missing put_device() call in exynos_iommu_of_xlate()
Zack Rusin (1):
drm/vmwgfx: Fix error handling in get_node
Zhang Rui (1):
cpufreq: intel_pstate: Fix missing return statement
dillon min (1):
gpio: tc35894: fix up tc35894 interrupt configuration
yangerkun (1):
blk-mq: call commit_rqs while list empty but error happen
Ran into an ext4 regression when testing upgrades to 5.9-rc kernels:
Commit e7bfb5c9bb3d ("ext4: handle add_system_zone() failure in
ext4_setup_system_zone()") breaks mounting of read-only ext4 filesystems
with intentionally overlapping bitmap blocks.
On an always-read-only filesystem explicitly marked with
EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS, prior to that commit, it's safe to
point all the block and inode bitmaps to a single block of all 1s,
because a read-only filesystem will never allocate or free any blocks or
inodes.
However, after that commit, the block validity check rejects such
filesystems with -EUCLEAN and "failed to initialize system zone (-117)".
This causes systems that previously worked correctly to fail when
upgrading to v5.9-rc2 or later.
This was obviously a bugfix, and I'm not suggesting that it should be
reverted; it looks like this effectively worked by accident before,
because the block_validity check wasn't fully functional. However, this
does break real systems, and I'd like to get some kind of regression fix
in before 5.9 final if possible. I think it would suffice to make
block_validity default to false if and only if
EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS is set.
Does that seem like a reasonable fix?
Here's a quick sketch of a patch, which I've tested and confirmed to
work:
----- 8< -----
Subject: [PATCH] Fix ext4 regression in v5.9-rc2 on ro fs with overlapped bitmaps
Commit e7bfb5c9bb3d ("ext4: handle add_system_zone() failure in
ext4_setup_system_zone()") breaks mounting of read-only ext4 filesystems
with intentionally overlapping bitmap blocks.
On an always-read-only filesystem explicitly marked with
EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS, prior to that commit, it's safe to
point all the block and inode bitmaps to a single block of all 1s,
because a read-only filesystem will never allocate or free any blocks or
inodes.
However, after that commit, the block validity check rejects such
filesystems with -EUCLEAN and "failed to initialize system zone (-117)".
This causes systems that previously worked correctly to fail when
upgrading to v5.9-rc2 or later.
Fix this by defaulting block_validity to off when
EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS is set.
Signed-off-by: Josh Triplett <[email protected]>
Fixes: e7bfb5c9bb3d ("ext4: handle add_system_zone() failure in ext4_setup_system_zone()")
---
fs/ext4/ext4.h | 2 ++
fs/ext4/super.c | 3 ++-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 523e00d7b392..7874028fa864 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -1834,6 +1834,7 @@ static inline bool ext4_verity_in_progress(struct inode *inode)
#define EXT4_FEATURE_RO_COMPAT_METADATA_CSUM 0x0400
#define EXT4_FEATURE_RO_COMPAT_READONLY 0x1000
#define EXT4_FEATURE_RO_COMPAT_PROJECT 0x2000
+#define EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS 0x4000
#define EXT4_FEATURE_RO_COMPAT_VERITY 0x8000
#define EXT4_FEATURE_INCOMPAT_COMPRESSION 0x0001
@@ -1930,6 +1931,7 @@ EXT4_FEATURE_RO_COMPAT_FUNCS(bigalloc, BIGALLOC)
EXT4_FEATURE_RO_COMPAT_FUNCS(metadata_csum, METADATA_CSUM)
EXT4_FEATURE_RO_COMPAT_FUNCS(readonly, READONLY)
EXT4_FEATURE_RO_COMPAT_FUNCS(project, PROJECT)
+EXT4_FEATURE_RO_COMPAT_FUNCS(shared_blocks, SHARED_BLOCKS)
EXT4_FEATURE_RO_COMPAT_FUNCS(verity, VERITY)
EXT4_FEATURE_INCOMPAT_FUNCS(compression, COMPRESSION)
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index ea425b49b345..f57a7e966e44 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3954,7 +3954,8 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
else
set_opt(sb, ERRORS_RO);
/* block_validity enabled by default; disable with noblock_validity */
- set_opt(sb, BLOCK_VALIDITY);
+ if (!ext4_has_feature_shared_blocks(sb))
+ set_opt(sb, BLOCK_VALIDITY);
if (def_mount_opts & EXT4_DEFM_DISCARD)
set_opt(sb, DISCARD);
On Mon 05-10-20 01:14:54, Josh Triplett wrote:
> Ran into an ext4 regression when testing upgrades to 5.9-rc kernels:
>
> Commit e7bfb5c9bb3d ("ext4: handle add_system_zone() failure in
> ext4_setup_system_zone()") breaks mounting of read-only ext4 filesystems
> with intentionally overlapping bitmap blocks.
>
> On an always-read-only filesystem explicitly marked with
> EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS, prior to that commit, it's safe to
> point all the block and inode bitmaps to a single block of all 1s,
> because a read-only filesystem will never allocate or free any blocks or
> inodes.
>
> However, after that commit, the block validity check rejects such
> filesystems with -EUCLEAN and "failed to initialize system zone (-117)".
> This causes systems that previously worked correctly to fail when
> upgrading to v5.9-rc2 or later.
>
> This was obviously a bugfix, and I'm not suggesting that it should be
> reverted; it looks like this effectively worked by accident before,
> because the block_validity check wasn't fully functional. However, this
> does break real systems, and I'd like to get some kind of regression fix
> in before 5.9 final if possible. I think it would suffice to make
> block_validity default to false if and only if
> EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS is set.
>
> Does that seem like a reasonable fix?
>
> Here's a quick sketch of a patch, which I've tested and confirmed to
> work:
>
> ----- 8< -----
> Subject: [PATCH] Fix ext4 regression in v5.9-rc2 on ro fs with overlapped bitmaps
>
> Commit e7bfb5c9bb3d ("ext4: handle add_system_zone() failure in
> ext4_setup_system_zone()") breaks mounting of read-only ext4 filesystems
> with intentionally overlapping bitmap blocks.
>
> On an always-read-only filesystem explicitly marked with
> EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS, prior to that commit, it's safe to
> point all the block and inode bitmaps to a single block of all 1s,
> because a read-only filesystem will never allocate or free any blocks or
> inodes.
>
> However, after that commit, the block validity check rejects such
> filesystems with -EUCLEAN and "failed to initialize system zone (-117)".
> This causes systems that previously worked correctly to fail when
> upgrading to v5.9-rc2 or later.
>
> Fix this by defaulting block_validity to off when
> EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS is set.
>
> Signed-off-by: Josh Triplett <[email protected]>
> Fixes: e7bfb5c9bb3d ("ext4: handle add_system_zone() failure in ext4_setup_system_zone()")
The patch looks fine to me. Thanks for fixing this and for educating me
about the feature :) You can add:
Reviewed-by: Jan Kara <[email protected]>
Honza
> ---
> fs/ext4/ext4.h | 2 ++
> fs/ext4/super.c | 3 ++-
> 2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
> index 523e00d7b392..7874028fa864 100644
> --- a/fs/ext4/ext4.h
> +++ b/fs/ext4/ext4.h
> @@ -1834,6 +1834,7 @@ static inline bool ext4_verity_in_progress(struct inode *inode)
> #define EXT4_FEATURE_RO_COMPAT_METADATA_CSUM 0x0400
> #define EXT4_FEATURE_RO_COMPAT_READONLY 0x1000
> #define EXT4_FEATURE_RO_COMPAT_PROJECT 0x2000
> +#define EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS 0x4000
> #define EXT4_FEATURE_RO_COMPAT_VERITY 0x8000
>
> #define EXT4_FEATURE_INCOMPAT_COMPRESSION 0x0001
> @@ -1930,6 +1931,7 @@ EXT4_FEATURE_RO_COMPAT_FUNCS(bigalloc, BIGALLOC)
> EXT4_FEATURE_RO_COMPAT_FUNCS(metadata_csum, METADATA_CSUM)
> EXT4_FEATURE_RO_COMPAT_FUNCS(readonly, READONLY)
> EXT4_FEATURE_RO_COMPAT_FUNCS(project, PROJECT)
> +EXT4_FEATURE_RO_COMPAT_FUNCS(shared_blocks, SHARED_BLOCKS)
> EXT4_FEATURE_RO_COMPAT_FUNCS(verity, VERITY)
>
> EXT4_FEATURE_INCOMPAT_FUNCS(compression, COMPRESSION)
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index ea425b49b345..f57a7e966e44 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -3954,7 +3954,8 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
> else
> set_opt(sb, ERRORS_RO);
> /* block_validity enabled by default; disable with noblock_validity */
> - set_opt(sb, BLOCK_VALIDITY);
> + if (!ext4_has_feature_shared_blocks(sb))
> + set_opt(sb, BLOCK_VALIDITY);
> if (def_mount_opts & EXT4_DEFM_DISCARD)
> set_opt(sb, DISCARD);
>
>
--
Jan Kara <[email protected]>
SUSE Labs, CR