Lines Matching refs:bdev

12 static int blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg __user *arg)  in blkpg_ioctl()  argument
29 disk = bdev->bd_disk; in blkpg_ioctl()
30 if (bdev != bdev->bd_contains) in blkpg_ioctl()
48 mutex_lock(&bdev->bd_mutex); in blkpg_ioctl()
57 mutex_unlock(&bdev->bd_mutex); in blkpg_ioctl()
66 mutex_unlock(&bdev->bd_mutex); in blkpg_ioctl()
88 mutex_lock_nested(&bdev->bd_mutex, 1); in blkpg_ioctl()
90 mutex_unlock(&bdev->bd_mutex); in blkpg_ioctl()
116 mutex_lock_nested(&bdev->bd_mutex, 1); in blkpg_ioctl()
119 mutex_unlock(&bdev->bd_mutex); in blkpg_ioctl()
134 mutex_unlock(&bdev->bd_mutex); in blkpg_ioctl()
144 mutex_unlock(&bdev->bd_mutex); in blkpg_ioctl()
153 static int blkdev_reread_part(struct block_device *bdev) in blkdev_reread_part() argument
155 struct gendisk *disk = bdev->bd_disk; in blkdev_reread_part()
158 if (!disk_part_scan_enabled(disk) || bdev != bdev->bd_contains) in blkdev_reread_part()
162 if (!mutex_trylock(&bdev->bd_mutex)) in blkdev_reread_part()
164 res = rescan_partitions(disk, bdev); in blkdev_reread_part()
165 mutex_unlock(&bdev->bd_mutex); in blkdev_reread_part()
169 static int blk_ioctl_discard(struct block_device *bdev, uint64_t start, in blk_ioctl_discard() argument
181 if (start + len > (i_size_read(bdev->bd_inode) >> 9)) in blk_ioctl_discard()
185 return blkdev_issue_discard(bdev, start, len, GFP_KERNEL, flags); in blk_ioctl_discard()
188 static int blk_ioctl_zeroout(struct block_device *bdev, uint64_t start, in blk_ioctl_zeroout() argument
198 if (start + len > (i_size_read(bdev->bd_inode) >> 9)) in blk_ioctl_zeroout()
201 return blkdev_issue_zeroout(bdev, start, len, GFP_KERNEL, false); in blk_ioctl_zeroout()
234 int __blkdev_driver_ioctl(struct block_device *bdev, fmode_t mode, in __blkdev_driver_ioctl() argument
237 struct gendisk *disk = bdev->bd_disk; in __blkdev_driver_ioctl()
240 return disk->fops->ioctl(bdev, mode, cmd, arg); in __blkdev_driver_ioctl()
274 int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd, in blkdev_ioctl() argument
277 struct gendisk *disk = bdev->bd_disk; in blkdev_ioctl()
288 ret = __blkdev_driver_ioctl(bdev, mode, cmd, arg); in blkdev_ioctl()
292 fsync_bdev(bdev); in blkdev_ioctl()
293 invalidate_bdev(bdev); in blkdev_ioctl()
297 ret = __blkdev_driver_ioctl(bdev, mode, cmd, arg); in blkdev_ioctl()
304 set_device_ro(bdev, n); in blkdev_ioctl()
317 return blk_ioctl_discard(bdev, range[0], range[1], in blkdev_ioctl()
329 return blk_ioctl_zeroout(bdev, range[0], range[1]); in blkdev_ioctl()
345 geo.start = get_start_sect(bdev); in blkdev_ioctl()
346 ret = disk->fops->getgeo(bdev, &geo); in blkdev_ioctl()
358 bdi = blk_get_backing_dev_info(bdev); in blkdev_ioctl()
361 return put_int(arg, bdev_read_only(bdev) != 0); in blkdev_ioctl()
363 return put_int(arg, block_size(bdev)); in blkdev_ioctl()
365 return put_int(arg, bdev_logical_block_size(bdev)); in blkdev_ioctl()
367 return put_uint(arg, bdev_physical_block_size(bdev)); in blkdev_ioctl()
369 return put_uint(arg, bdev_io_min(bdev)); in blkdev_ioctl()
371 return put_uint(arg, bdev_io_opt(bdev)); in blkdev_ioctl()
373 return put_int(arg, bdev_alignment_offset(bdev)); in blkdev_ioctl()
375 return put_uint(arg, bdev_discard_zeroes_data(bdev)); in blkdev_ioctl()
378 queue_max_sectors(bdev_get_queue(bdev))); in blkdev_ioctl()
381 return put_ushort(arg, !blk_queue_nonrot(bdev_get_queue(bdev))); in blkdev_ioctl()
386 bdi = blk_get_backing_dev_info(bdev); in blkdev_ioctl()
398 bdgrab(bdev); in blkdev_ioctl()
399 if (blkdev_get(bdev, mode | FMODE_EXCL, &bdev) < 0) in blkdev_ioctl()
402 ret = set_blocksize(bdev, n); in blkdev_ioctl()
404 blkdev_put(bdev, mode | FMODE_EXCL); in blkdev_ioctl()
407 ret = blkpg_ioctl(bdev, (struct blkpg_ioctl_arg __user *) arg); in blkdev_ioctl()
410 ret = blkdev_reread_part(bdev); in blkdev_ioctl()
413 size = i_size_read(bdev->bd_inode); in blkdev_ioctl()
418 return put_u64(arg, i_size_read(bdev->bd_inode)); in blkdev_ioctl()
423 ret = blk_trace_ioctl(bdev, cmd, (char __user *) arg); in blkdev_ioctl()
426 ret = __blkdev_driver_ioctl(bdev, mode, cmd, arg); in blkdev_ioctl()