Lines Matching refs:bdev

193 static void btrfs_kobject_uevent(struct block_device *bdev,  in btrfs_kobject_uevent()  argument
198 ret = kobject_uevent(&disk_to_dev(bdev->bd_disk)->kobj, action); in btrfs_kobject_uevent()
202 kobject_name(&disk_to_dev(bdev->bd_disk)->kobj), in btrfs_kobject_uevent()
203 &disk_to_dev(bdev->bd_disk)->kobj); in btrfs_kobject_uevent()
269 int flush, struct block_device **bdev, in btrfs_get_bdev_and_sb() argument
274 *bdev = blkdev_get_by_path(device_path, flags, holder); in btrfs_get_bdev_and_sb()
276 if (IS_ERR(*bdev)) { in btrfs_get_bdev_and_sb()
277 ret = PTR_ERR(*bdev); in btrfs_get_bdev_and_sb()
282 filemap_write_and_wait((*bdev)->bd_inode->i_mapping); in btrfs_get_bdev_and_sb()
283 ret = set_blocksize(*bdev, 4096); in btrfs_get_bdev_and_sb()
285 blkdev_put(*bdev, flags); in btrfs_get_bdev_and_sb()
288 invalidate_bdev(*bdev); in btrfs_get_bdev_and_sb()
289 *bh = btrfs_read_dev_super(*bdev); in btrfs_get_bdev_and_sb()
292 blkdev_put(*bdev, flags); in btrfs_get_bdev_and_sb()
299 *bdev = NULL; in btrfs_get_bdev_and_sb()
354 bdi = blk_get_backing_dev_info(device->bdev); in run_scheduled_bios()
788 if (device->bdev) { in btrfs_close_extra_devices()
789 blkdev_put(device->bdev, device->mode); in btrfs_close_extra_devices()
790 device->bdev = NULL; in btrfs_close_extra_devices()
810 fs_devices->latest_bdev = latest_dev->bdev; in btrfs_close_extra_devices()
821 if (device->bdev) in __free_device()
822 blkdev_put(device->bdev, device->mode); in __free_device()
891 struct block_device *bdev; in __btrfs_open_devices() local
904 if (device->bdev) in __btrfs_open_devices()
911 &bdev, &bh)) in __btrfs_open_devices()
931 device->writeable = !bdev_read_only(bdev); in __btrfs_open_devices()
935 q = bdev_get_queue(bdev); in __btrfs_open_devices()
939 device->bdev = bdev; in __btrfs_open_devices()
943 if (!blk_queue_nonrot(bdev_get_queue(bdev))) in __btrfs_open_devices()
958 blkdev_put(bdev, flags); in __btrfs_open_devices()
967 fs_devices->latest_bdev = latest_dev->bdev; in __btrfs_open_devices()
998 struct block_device *bdev; in btrfs_scan_one_device() local
1018 bdev = blkdev_get_by_path(path, flags, holder); in btrfs_scan_one_device()
1020 if (IS_ERR(bdev)) { in btrfs_scan_one_device()
1021 ret = PTR_ERR(bdev); in btrfs_scan_one_device()
1026 if (bytenr + PAGE_CACHE_SIZE >= i_size_read(bdev->bd_inode)) in btrfs_scan_one_device()
1039 page = read_cache_page_gfp(bdev->bd_inode->i_mapping, in btrfs_scan_one_device()
1079 blkdev_put(bdev, flags); in btrfs_scan_one_device()
1186 map = (struct map_lookup *)em->bdev; in contains_pending_extent()
1694 struct block_device *bdev; in btrfs_rm_device() local
1758 !tmp->bdev) { in btrfs_rm_device()
1763 bdev = NULL; in btrfs_rm_device()
1774 &bdev, &bh); in btrfs_rm_device()
1846 if (device->bdev == root->fs_info->sb->s_bdev) in btrfs_rm_device()
1847 root->fs_info->sb->s_bdev = next_device->bdev; in btrfs_rm_device()
1848 if (device->bdev == root->fs_info->fs_devices->latest_bdev) in btrfs_rm_device()
1849 root->fs_info->fs_devices->latest_bdev = next_device->bdev; in btrfs_rm_device()
1851 if (device->bdev) { in btrfs_rm_device()
1903 i_size_read(bdev->bd_inode)) in btrfs_rm_device()
1907 bh = __bread(bdev, bytenr / 4096, in btrfs_rm_device()
1927 if (bdev) { in btrfs_rm_device()
1929 btrfs_kobject_uevent(bdev, KOBJ_CHANGE); in btrfs_rm_device()
1937 if (bdev) in btrfs_rm_device()
1938 blkdev_put(bdev, FMODE_READ | FMODE_EXCL); in btrfs_rm_device()
1977 btrfs_scratch_superblocks(srcdev->bdev, srcdev->name->str); in btrfs_rm_dev_replace_remove_srcdev()
1980 if (srcdev->bdev) in btrfs_rm_dev_replace_remove_srcdev()
2026 if (tgtdev->bdev) { in btrfs_destroy_dev_replace_tgtdev()
2027 btrfs_scratch_superblocks(tgtdev->bdev, tgtdev->name->str); in btrfs_destroy_dev_replace_tgtdev()
2034 if (tgtdev->bdev == fs_info->sb->s_bdev) in btrfs_destroy_dev_replace_tgtdev()
2035 fs_info->sb->s_bdev = next_device->bdev; in btrfs_destroy_dev_replace_tgtdev()
2036 if (tgtdev->bdev == fs_info->fs_devices->latest_bdev) in btrfs_destroy_dev_replace_tgtdev()
2037 fs_info->fs_devices->latest_bdev = next_device->bdev; in btrfs_destroy_dev_replace_tgtdev()
2053 struct block_device *bdev; in btrfs_find_device_by_path() local
2058 root->fs_info->bdev_holder, 0, &bdev, &bh); in btrfs_find_device_by_path()
2069 blkdev_put(bdev, FMODE_READ); in btrfs_find_device_by_path()
2088 if (tmp->in_fs_metadata && !tmp->bdev) { in btrfs_find_device_missing_or_by_path()
2246 struct block_device *bdev; in btrfs_init_new_device() local
2257 bdev = blkdev_get_by_path(device_path, FMODE_WRITE | FMODE_EXCL, in btrfs_init_new_device()
2259 if (IS_ERR(bdev)) in btrfs_init_new_device()
2260 return PTR_ERR(bdev); in btrfs_init_new_device()
2268 filemap_write_and_wait(bdev->bd_inode->i_mapping); in btrfs_init_new_device()
2274 if (device->bdev == bdev) { in btrfs_init_new_device()
2306 q = bdev_get_queue(bdev); in btrfs_init_new_device()
2314 device->total_bytes = i_size_read(bdev->bd_inode); in btrfs_init_new_device()
2318 device->bdev = bdev; in btrfs_init_new_device()
2323 set_blocksize(device->bdev, 4096); in btrfs_init_new_device()
2348 if (!blk_queue_nonrot(bdev_get_queue(bdev))) in btrfs_init_new_device()
2443 blkdev_put(bdev, FMODE_EXCL); in btrfs_init_new_device()
2457 struct block_device *bdev; in btrfs_init_dev_replace_tgtdev() local
2470 bdev = blkdev_get_by_path(device_path, FMODE_WRITE | FMODE_EXCL, in btrfs_init_dev_replace_tgtdev()
2472 if (IS_ERR(bdev)) { in btrfs_init_dev_replace_tgtdev()
2474 return PTR_ERR(bdev); in btrfs_init_dev_replace_tgtdev()
2477 filemap_write_and_wait(bdev->bd_inode->i_mapping); in btrfs_init_dev_replace_tgtdev()
2481 if (device->bdev == bdev) { in btrfs_init_dev_replace_tgtdev()
2489 if (i_size_read(bdev->bd_inode) < in btrfs_init_dev_replace_tgtdev()
2511 q = bdev_get_queue(bdev); in btrfs_init_dev_replace_tgtdev()
2527 device->bdev = bdev; in btrfs_init_dev_replace_tgtdev()
2532 set_blocksize(device->bdev, 4096); in btrfs_init_dev_replace_tgtdev()
2543 blkdev_put(bdev, FMODE_EXCL); in btrfs_init_dev_replace_tgtdev()
2759 map = (struct map_lookup *)em->bdev; in btrfs_remove_chunk()
4723 em->bdev = (struct block_device *)map; in __btrfs_alloc_chunk()
4818 map = (struct map_lookup *)em->bdev; in btrfs_finish_chunk_alloc()
4960 map = (struct map_lookup *)em->bdev; in btrfs_chunk_readonly()
5040 map = (struct map_lookup *)em->bdev; in btrfs_num_copies()
5076 map = (struct map_lookup *)em->bdev; in btrfs_full_stripe_len()
5097 map = (struct map_lookup *)em->bdev; in btrfs_is_parity_mirror()
5125 if (map->stripes[optimal].dev->bdev && in find_live_mirror()
5129 if (map->stripes[i].dev->bdev && in find_live_mirror()
5256 map = (struct map_lookup *)em->bdev; in __btrfs_map_block()
5798 map = (struct map_lookup *)em->bdev; in btrfs_rmap_block()
5877 if (dev->bdev) { in btrfs_end_bio()
5937 if (device->missing || !device->bdev) { in btrfs_schedule_bio()
6001 (u64)bio->bi_iter.bi_sector, (u_long)dev->bdev->bd_dev, in submit_stripe_bio()
6006 bio->bi_bdev = dev->bdev; in submit_stripe_bio()
6083 if (!dev || !dev->bdev || (rw & WRITE && !dev->writeable)) { in btrfs_map_bio()
6234 em->bdev = (struct block_device *)map; in read_one_chunk()
6396 if (!device->bdev && !btrfs_test_opt(root, DEGRADED)) in read_one_dev()
6399 if(!device->bdev && !device->missing) { in read_one_dev()
6865 void btrfs_scratch_superblocks(struct block_device *bdev, char *device_path) in btrfs_scratch_superblocks() argument
6871 if (!bdev) in btrfs_scratch_superblocks()
6877 if (btrfs_read_dev_one_super(bdev, copy_num, &bh)) in btrfs_scratch_superblocks()
6889 btrfs_kobject_uevent(bdev, KOBJ_CHANGE); in btrfs_scratch_superblocks()
6933 map = (struct map_lookup *)em->bdev; in btrfs_update_commit_device_bytes_used()
6967 if (device->bdev) in btrfs_close_one_device()