LGTM generally excluding the comments that Andrey already made. Not sure about patch 12 because I lack deep understanding of the subsystem. Also some of the fixes you have sent have already been submitted by Mirian in his GPU related series, so whoever gets merged first needs to rebase.
Reviewed-by: Vasileios Almpanis <[email protected]>

On 7/6/26 12:59 PM, Konstantin Khorenko wrote:
This series collects 24 independent, self-contained kernel fixes found
while building out a kselftest suite for our VZ-specific kernel code
(VE containers/cgroups, the dm-ploop/dm-qcow2/dm-tracking/blk-cbt
block-storage stack, fuse), driven throughout by GCOV line-coverage
measurement against the VZ commit range (VSTOR-137234). Coverage ended
up at ~90% for the block-storage group and its node/config ceiling
(~78%) for the rest; chasing the remaining uncovered lines with real
and fault-injected error paths is what surfaced all of the bugs below.

Each patch is independently reviewable and bisectable - there are no
dependencies between them. Every one of them also has a corresponding
regression kselftest under tools/testing/selftests/ve/ (not included in
this series; they already live on the selftests branch) that reproduces
the bug against a pre-fix kernel and passes clean against the fix.

Grouped by kind, for review:

- Unkillable D-state hangs (unbounded retry-forever on I/O error),
   wedging `dmsetup remove`/`ploop umount` and eventually `reboot` on the
   stuck task - patches 23, 24. The dm-ploop instance (24) was found by
   auditing the twin driver immediately after live-reproducing and fixing
   the dm-qcow2 one (23); both are the same bug shape.

- NULL-deref / use-after-free / invalid free - patches 6, 18, 20, 21.

- A fault-injection annotation bug (a function documented to only ever
   return -ENOMEM was annotated for NULL-class injection instead of
   ERRNO-class, so a NULL return read as "not an error" and fell through
   to a guaranteed NULL-pointer write) - patch 22.

- Locking / RCU / lockdep / uninitialised lock - patches 3, 9, 10, 11,
   13, 14, 17.

- User-triggerable kernel WARN, a DoS vector wherever panic_on_warn is
   set - patches 7, 8.

- VE container correctness / availability, including one that could
   block *all* container starts on a host until reboot - patches 16, 19.

- Bounds / validation / logic - patches 4, 5, 15.

- Data-integrity / filesystem correctness - patches 1, 2, 12.

https://virtuozzo.atlassian.net/browse/VSTOR-137234

Konstantin Khorenko (24):
   ext4: attach jinode when opening the balloon inode for write
   fuse: don't wake page_waitq for non-regular inodes in the invalidate
     worker
   fuse: also take req_lock when walking open_files in fusectl
   ve/mm: enforce the 0..100 bound on vfs_cache_min_ratio
   fence-watchdog: return count from watchdog_log_path store
   ve/fs/devmnt: fix interior kfree() of strsep cursor in
     ve_devmnt_check()
   blk-cbt: don't WARN on a user-supplied ABI version mismatch
   ve: don't WARN on untrusted exec/mmap attempts from a container
   kernfs: rcu_read_lock() when walking parents in ve visibility checks
   dm-ploop: annotate nested md_lock in ploop_check_delta_before_flip()
   ve/kernfs: hold the iterated tree's rwsem in the perms seq_file
   oracle/mm: enter COW seqcount/mmu-notifier section in
     copy_page_range_mt()
   dm-tracking: initialize dmt->lock with spin_lock_init()
   sched/ve: read task ve locklessly in update_sched_lat() under rq->lock
   ve/hooks: fix off-by-one in chain bounds check
   drivers/base/cpu: fix cpu/offline content inside a ve
   ve/cgroup: take cgroup_mutex + threadgroup lock around vz.slice attach
   ve: fix NULL-deref / use-after-free in ve_create() error unwind
   ve/cgroup: don't block container start on unused cgroup1 hierarchies
   dm-ploop: fix NULL-derefs on the ctr error / fault-injection paths
   dm-qcow2: fix NULL deref in merge_backward complete without an active
     merge
   dm-qcow2: fix ALLOW_ERROR_INJECTION class on qcow2_alloc_delta (ERRNO
     not NULL)
   dm-qcow2: fail waiters instead of retrying forever after metadata I/O
     error
   dm-ploop: fail BAT-writeback waiters instead of retrying forever on
     I/O error

  block/blk-cbt.c              |  4 +--
  drivers/base/cpu.c           |  2 +-
  drivers/md/dm-ploop-cmd.c    |  8 ++++-
  drivers/md/dm-ploop-map.c    | 28 ++++++++++++++---
  drivers/md/dm-ploop-target.c |  6 ++--
  drivers/md/dm-qcow2-cmd.c    |  8 ++++-
  drivers/md/dm-qcow2-map.c    | 17 +++++++++-
  drivers/md/dm-qcow2-target.c |  2 +-
  drivers/md/dm-tracking.c     |  1 +
  fs/ext4/ioctl.c              | 16 ++++++++++
  fs/fuse/control.c            |  1 +
  fs/fuse/inode.c              | 11 ++++++-
  fs/kernfs/ve.c               | 33 +++++++++++++-------
  fs/namespace.c               | 13 ++++++--
  fs/sysfs/ve.c                |  2 +-
  include/linux/kernfs-ve.h    |  2 +-
  kernel/cgroup/cgroup.c       | 60 +++++++++++++++++++++++++++++++++++-
  kernel/fence-watchdog.c      |  2 +-
  kernel/sched/stats.c         | 11 ++++++-
  kernel/sysctl.c              |  2 +-
  kernel/ve/hooks.c            |  2 +-
  kernel/ve/ve.c               |  7 ++---
  mm/memory.c                  | 35 ++++++++++++++++++++-
  23 files changed, 234 insertions(+), 39 deletions(-)

--
Best regards, Vasileios Almpanis
Software Developer, Virtuozzo.

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to