Merge tag 'mm-hotfixes-stable-2023-05-06-10-45' of git://git.kernel.org/pub/scm/linux...
[linux-block.git] / block / genhd.c
index 90c402771bb5707fa2b82f1b46ef633e0f45d9eb..1cb489b927d50ab06a84a4bfd6913ca8ba7318d4 100644 (file)
@@ -57,12 +57,7 @@ static DEFINE_IDA(ext_devt_ida);
 
 void set_capacity(struct gendisk *disk, sector_t sectors)
 {
-       struct block_device *bdev = disk->part0;
-
-       spin_lock(&bdev->bd_size_lock);
-       i_size_write(bdev->bd_inode, (loff_t)sectors << SECTOR_SHIFT);
-       bdev->bd_nr_sectors = sectors;
-       spin_unlock(&bdev->bd_size_lock);
+       bdev_set_nr_sectors(disk->part0, sectors);
 }
 EXPORT_SYMBOL(set_capacity);
 
@@ -487,15 +482,11 @@ int __must_check device_add_disk(struct device *parent, struct gendisk *disk,
         */
        pm_runtime_set_memalloc_noio(ddev, true);
 
-       ret = blk_integrity_add(disk);
-       if (ret)
-               goto out_del_block_link;
-
        disk->part0->bd_holder_dir =
                kobject_create_and_add("holders", &ddev->kobj);
        if (!disk->part0->bd_holder_dir) {
                ret = -ENOMEM;
-               goto out_del_integrity;
+               goto out_del_block_link;
        }
        disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj);
        if (!disk->slave_dir) {
@@ -558,8 +549,6 @@ out_put_slave_dir:
        disk->slave_dir = NULL;
 out_put_holder_dir:
        kobject_put(disk->part0->bd_holder_dir);
-out_del_integrity:
-       blk_integrity_del(disk);
 out_del_block_link:
        sysfs_remove_link(block_depr, dev_name(ddev));
 out_device_del:
@@ -621,7 +610,6 @@ void del_gendisk(struct gendisk *disk)
        if (WARN_ON_ONCE(!disk_live(disk) && !(disk->flags & GENHD_FL_HIDDEN)))
                return;
 
-       blk_integrity_del(disk);
        disk_del_events(disk);
 
        mutex_lock(&disk->open_mutex);
@@ -1155,6 +1143,9 @@ static const struct attribute_group *disk_attr_groups[] = {
        &disk_attr_group,
 #ifdef CONFIG_BLK_DEV_IO_TRACE
        &blk_trace_attr_group,
+#endif
+#ifdef CONFIG_BLK_DEV_INTEGRITY
+       &blk_integrity_attr_group,
 #endif
        NULL
 };