]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Merge tag 'block-6.15-20250424' of git://git.kernel.dk/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 25 Apr 2025 18:34:39 +0000 (11:34 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 25 Apr 2025 18:34:39 +0000 (11:34 -0700)
Pull block fixes from Jens Axboe:

 - Fix autoloading of drivers from stat*(2)

 - Fix losing read-ahead setting one suspend/resume, when a device is
   re-probed.

 - Fix race between setting the block size and page cache updates.
   Includes a helper that a coming XFS fix will use as well.

 - ublk cancelation fixes.

 - ublk selftest additions and fixes.

 - NVMe pull via Christoph:
      - fix an out-of-bounds access in nvmet_enable_port (Richard
        Weinberger)

* tag 'block-6.15-20250424' of git://git.kernel.dk/linux:
  ublk: fix race between io_uring_cmd_complete_in_task and ublk_cancel_cmd
  ublk: call ublk_dispatch_req() for handling UBLK_U_IO_NEED_GET_DATA
  block: don't autoload drivers on blk-cgroup configuration
  block: don't autoload drivers on stat
  block: remove the backing_inode variable in bdev_statx
  block: move blkdev_{get,put} _no_open prototypes out of blkdev.h
  block: never reduce ra_pages in blk_apply_bdi_limits
  selftests: ublk: common: fix _get_disk_dev_t for pre-9.0 coreutils
  selftests: ublk: remove useless 'delay_us' from 'struct dev_ctx'
  selftests: ublk: fix recover test
  block: hoist block size validation code to a separate function
  block: fix race between set_blocksize and read paths
  nvmet: fix out-of-bounds access in nvmet_enable_port

1  2 
block/bdev.c
include/linux/blkdev.h

diff --cc block/bdev.c
index 6a34179192c913c7cc475c7286c6884cf0261fb8,520515e4e64ef0a77f0758f537932e29c2887802..889ec6e002d7ed1b8dbcc6b7244c066d56be0824
@@@ -1272,20 -1310,18 +1310,17 @@@ void sync_bdevs(bool wait
  /*
   * Handle STATX_{DIOALIGN, WRITE_ATOMIC} for block devices.
   */
 -void bdev_statx(struct path *path, struct kstat *stat,
 -              u32 request_mask)
 +void bdev_statx(const struct path *path, struct kstat *stat, u32 request_mask)
  {
-       struct inode *backing_inode;
        struct block_device *bdev;
  
-       backing_inode = d_backing_inode(path->dentry);
        /*
-        * Note that backing_inode is the inode of a block device node file,
-        * not the block device's internal inode.  Therefore it is *not* valid
-        * to use I_BDEV() here; the block device has to be looked up by i_rdev
+        * Note that d_backing_inode() returns the block device node inode, not
+        * the block device's internal inode.  Therefore it is *not* valid to
+        * use I_BDEV() here; the block device has to be looked up by i_rdev
         * instead.
         */
-       bdev = blkdev_get_no_open(backing_inode->i_rdev);
+       bdev = blkdev_get_no_open(d_backing_inode(path->dentry)->i_rdev, false);
        if (!bdev)
                return;
  
Simple merge