]> www.infradead.org Git - users/hch/misc.git/commitdiff
Merge branch 'block-6.15' into for-6.16/block
authorJens Axboe <axboe@kernel.dk>
Fri, 25 Apr 2025 02:41:11 +0000 (20:41 -0600)
committerJens Axboe <axboe@kernel.dk>
Fri, 25 Apr 2025 02:41:11 +0000 (20:41 -0600)
Merge 6.15 block fixes - both to get the fixes causing issues with
XFS testing, but also to make it easier for 6.16 ublk patches to avoid
conflicts.

* block-6.15:
  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
drivers/block/ublk_drv.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
Simple merge