Defined in 1 files as a function:

Referenced in 46 files:

Smatch caller information:

drivers/md/dm-cache-target.c disable_passdown_if_not_supported() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
HALF_LOCKED2 &md->suspend_lock

drivers/md/dm-log-writes.c log_writes_io_hints() -> bdev_max_discard_sectors()

Type Parameter Key Value
HALF_LOCKED2 &md->suspend_lock

drivers/md/md-linear.c linear_make_request() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 bdev->bd_queue->last_merge->__sector 0-u64max
USER_DATA 0 bdev->bd_queue->last_merge->__sector 0-u64max
NO_OVERFLOW_SIMPLE 0 bdev->bd_disk->queue->queue_hw_ctx
NO_OVERFLOW_SIMPLE 0 bdev->bd_disk->queue->stats
UNITS 0 bdev unit_byte
HALF_LOCKED2 &md->io_barrier
HALF_LOCKED2 0 &bdev->bd_queue->queue_lock

fs/btrfs/volumes.c btrfs_open_one_device() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &uuid_mutex

drivers/block/drbd/drbd_nl.c drbd_discard_supported() -> bdev_max_discard_sectors()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &q->limits_lock
HALF_LOCKED2 &adm_ctx->resource->adm_mutex
TYPE_LOCK (struct request_queue)->limits_lock

drivers/block/drbd/drbd_nl.c sanitize_disk_conf() -> bdev_max_discard_sectors()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &adm_ctx->resource->adm_mutex
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &device->resource->conf_update
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
TYPE_LOCK (struct drbd_resource)->adm_mutex

drivers/block/drbd/drbd_nl.c sanitize_disk_conf() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &adm_ctx->resource->adm_mutex
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &device->resource->conf_update
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
TYPE_LOCK (struct drbd_resource)->adm_mutex

mm/swapfile.c __do_sys_swapon() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
CAPABLE 0 21
UNITS 0 bdev unit_byte
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

mm/swapfile.c __do_sys_swapon() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
CAPABLE 0 21
UNITS 0 bdev unit_byte
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

drivers/md/dm-clone-target.c disable_passdown_if_not_supported() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
HALF_LOCKED2 &md->suspend_lock

fs/f2fs/segment.c __submit_discard_cmd() -> bdev_max_discard_sectors()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
LOCK2 &dcc->cmd_lock
TYPE_LOCK (struct discard_cmd_control)->cmd_lock

fs/f2fs/segment.c __submit_discard_cmd() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
CAPPED_DATA 0 bdev 1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
LOCK2 &dcc->cmd_lock
TYPE_LOCK (struct discard_cmd_control)->cmd_lock

fs/f2fs/segment.c __update_discard_tree_range() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
CAPPED_DATA 0 bdev 1
DATA_SOURCE 0 bdev $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
HALF_LOCKED2 &dcc->cmd_lock
HALF_LOCKED2 &sbi->umount_mutex

fs/f2fs/segment.c f2fs_bdev_support_discard() -> bdev_max_discard_sectors()

Type Parameter Key Value
DATA_SOURCE 0 bdev $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sbi->pin_sem.internal_rwsem
HALF_LOCKED2 &sbi->umount_mutex

fs/ntfs/super.c ntfs_fill_super() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
HALF_LOCKED2 &fc->uapi_mutex

drivers/block/drbd/drbd_main.c drbd_send_sizes() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
PARAM_VALUE 0 bdev->bd_queue 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &sock->mutex
HALF_LOCKED2 &adm_ctx->resource->adm_mutex
TYPE_LOCK (struct drbd_socket)->mutex

drivers/block/drbd/drbd_receiver.c can_do_reliable_discards() -> bdev_max_discard_sectors()

Type Parameter Key Value

drivers/block/drbd/drbd_receiver.c drbd_issue_discard_or_zero_out() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
PARAM_VALUE 0 bdev->bd_queue 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

drivers/md/bcache/request.c cached_dev_write() -> bdev_max_discard_sectors()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

drivers/md/bcache/request.c detached_dev_do_request() -> bdev_max_discard_sectors()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &orig_bio->bi_bdev->bd_queue->queue_lock

fs/exfat/super.c exfat_fill_super() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
HALF_LOCKED2 &fc->uapi_mutex

fs/exfat/super.c exfat_reconfigure() -> bdev_max_discard_sectors()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
HALF_LOCKED2 &fc->uapi_mutex
HALF_LOCKED2 &sb->s_umount

drivers/block/xen-blkback/xenbus.c xen_blkbk_discard() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
BUF_SIZE 0 bdev 2136
DATA_SOURCE 0 bdev r file_bdev
TASK_NOT_RUNNING
LOCK2 global &xenwatch_mutex

drivers/block/loop.c lo_fallocate() -> bdev_max_discard_sectors()

Type Parameter Key Value
LOCK2 &pool->lock

fs/gfs2/rgrp.c gfs2_fitrim() -> bdev_max_discard_sectors()

Type Parameter Key Value
CAPABLE 0 21
UNITS 0 bdev unit_byte

fs/nilfs2/ioctl.c nilfs_ioctl_trim_fs() -> bdev_max_discard_sectors()

Type Parameter Key Value
CAPABLE 0 21
UNITS 0 bdev unit_byte

fs/fat/file.c fat_ioctl_fitrim() -> bdev_max_discard_sectors()

Type Parameter Key Value
CAPABLE 0 21
UNITS 0 bdev unit_byte

block/ioctl.c blk_ioctl_discard() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
BUF_SIZE 0 bdev 2136
DATA_SOURCE 0 bdev $0

block/ioctl.c blkdev_cmd_discard() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
BUF_SIZE 0 bdev 2136
DATA_SOURCE 0 bdev r I_BDEV
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->uring_lock

drivers/md/dm-thin.c disable_discard_passdown_if_not_supported() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
HALF_LOCKED2 &md->suspend_lock

fs/jbd2/journal.c __jbd2_journal_erase() -> bdev_max_discard_sectors()

Type Parameter Key Value
CAPABLE 0 21
RX_PATH
UNITS 0 bdev unit_byte
LOCK2 &journal->j_checkpoint_mutex
TYPE_LOCK (struct journal_s)->j_checkpoint_mutex

fs/f2fs/sysfs.c f2fs_bdev_support_discard() -> bdev_max_discard_sectors()

Type Parameter Key Value
DATA_SOURCE 0 bdev $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
LOCK2 &seq->lock
TYPE_LOCK (struct seq_file)->lock

fs/xfs/xfs_zone_gc.c xfs_submit_zone_reset_bio() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte

block/blk-core.c submit_bio_noacct() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
HALF_LOCKED2 &cache->writeback_lock
HALF_LOCKED2 &head->srcu
HALF_LOCKED2 &md->io_barrier
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &zmd->mblk_sem
HALF_LOCKED2 global &bch_register_lock

drivers/md/dm.c clone_endio() -> bdev_max_discard_sectors()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 bdev->bd_queue->last_merge->__sector 0-18446744073709551614
NO_OVERFLOW_SIMPLE 0 bdev->bd_disk->queue->queue_hw_ctx
NO_OVERFLOW_SIMPLE 0 bdev->bd_disk->queue->stats
UNITS 0 bdev unit_byte
HALF_LOCKED2 0 &bdev->bd_queue->queue_lock

fs/jfs/super.c jfs_fill_super() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
HALF_LOCKED2 &fc->uapi_mutex

drivers/md/raid1.c raid1_submit_write() -> bdev_max_discard_sectors()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte

fs/fat/inode.c fat_fill_super() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
HALF_LOCKED2 &fc->uapi_mutex

drivers/md/dm-io.c do_region() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max

fs/exfat/file.c exfat_ioctl_fitrim() -> bdev_max_discard_sectors()

Type Parameter Key Value
CAPABLE 0 21
UNITS 0 bdev unit_byte

fs/btrfs/ioctl.c btrfs_ioctl_fitrim() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 1-u64max
CAPABLE 0 21
UNITS 0 bdev unit_byte
LOCK2 rcu_read

fs/btrfs/extent-tree.c btrfs_trim_free_extents_throttle() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 1-u64max
CAPABLE 0 21
UNITS 0 bdev unit_byte
LOCK2 &fs_devices->device_list_mutex
TYPE_LOCK (struct btrfs_fs_devices)->device_list_mutex

fs/btrfs/extent-tree.c do_discard_extent() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
HALF_LOCKED2 &fs_info->unused_bg_unpin_mutex

drivers/md/dm-raid.c configure_discard_support() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 1-u64max
LOCK2 &rs->md.reconfig_mutex
HALF_LOCKED2 &md->type_lock
TYPE_LOCK (struct mddev)->reconfig_mutex

fs/f2fs/file.c f2fs_bdev_support_discard() -> bdev_max_discard_sectors()

Type Parameter Key Value
DATA_SOURCE 0 bdev $0
UNITS 0 bdev unit_byte

fs/ntfs/file.c ntfs_ioctl_fitrim() -> bdev_max_discard_sectors()

Type Parameter Key Value
CAPABLE 0 21
UNITS 0 bdev unit_byte

drivers/md/dm-table.c device_not_discard_capable() -> bdev_max_discard_sectors()

Type Parameter Key Value

drivers/block/rnbd/rnbd-srv.c rnbd_srv_fill_msg_open_rsp() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
BUF_SIZE 0 bdev 2136
DATA_SOURCE 0 bdev r file_bdev
LOCK2 &srv_sess->lock
TYPE_LOCK (struct rnbd_srv_session)->lock

fs/ext4/ioctl.c ext4_ioctl_checkpoint() -> bdev_max_discard_sectors()

Type Parameter Key Value
CAPABLE 0 21
UNITS 0 bdev unit_byte

drivers/target/target_core_device.c target_configure_unmap_from_bdev() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
DATA_SOURCE 0 bdev $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &buffer->mutex
HALF_LOCKED2 &frag->frag_sem

drivers/target/target_core_device.c target_configure_unmap_from_bdev() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
DATA_SOURCE 0 bdev $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &buffer->mutex
HALF_LOCKED2 &frag->frag_sem

drivers/md/raid10.c raid1_submit_write() -> bdev_max_discard_sectors()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte

fs/xfs/xfs_discard.c xfs_ioc_trim() -> bdev_max_discard_sectors()

Type Parameter Key Value
CAPABLE 0 21
UNITS 0 bdev unit_byte

fs/xfs/xfs_discard.c xfs_ioc_trim() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
CAPABLE 0 21
UNITS 0 bdev unit_byte

fs/xfs/xfs_discard.c xfs_ioc_trim() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
CAPABLE 0 21
UNITS 0 bdev unit_byte

fs/ntfs3/file.c ntfs_ioctl_fitrim() -> bdev_max_discard_sectors()

Type Parameter Key Value
CAPABLE 0 21
UNITS 0 bdev unit_byte

fs/f2fs/super.c f2fs_bdev_support_discard() -> bdev_max_discard_sectors()

Type Parameter Key Value
DATA_SOURCE 0 bdev $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
HALF_LOCKED2 &sb->s_umount
HALF_LOCKED2 &sbi->umount_mutex

fs/ocfs2/ioctl.c ocfs2_ioctl() -> bdev_max_discard_sectors()

Type Parameter Key Value
CAPABLE 0 21
UNITS 0 bdev unit_byte

fs/xfs/xfs_super.c xfs_fs_fill_super() -> bdev_max_discard_sectors()

Type Parameter Key Value
PARAM_VALUE 0 bdev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 bdev unit_byte
HALF_LOCKED2 &fc->uapi_mutex

fs/jfs/ioctl.c jfs_ioctl() -> bdev_max_discard_sectors()

Type Parameter Key Value
CAPABLE 0 21
UNITS 0 bdev unit_byte

drivers/md/raid5-cache.c r5l_write_super_and_discard_space() -> bdev_max_discard_sectors()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING