[PATCH 29/44] block: remove the nr_sects field in struct hd_struct
Christoph Hellwig
hch at lst.de
Thu Nov 26 12:52:08 EST 2020
On Thu, Nov 26, 2020 at 05:50:36PM +0100, Jan Kara wrote:
> > + if (size == capacity ||
> > + (disk->flags & (GENHD_FL_UP | GENHD_FL_HIDDEN)) != GENHD_FL_UP)
> > + return false;
> > + pr_info("%s: detected capacity change from %lld to %lld\n",
> > + disk->disk_name, size, capacity);
> > + kobject_uevent_env(&disk_to_dev(disk)->kobj, KOBJ_CHANGE, envp);
>
> I think we don't want to generate resize event for changes from / to 0...
Didn't you ask for that in the last round?
> Also the return value of this function is now different.
It returns true if it did send an uevent, which is what the callers rely
on.
> > diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c
> > index 4e37fa9b409d52..a70c33c49f0960 100644
> > --- a/drivers/target/target_core_pscsi.c
> > +++ b/drivers/target/target_core_pscsi.c
> > @@ -1027,12 +1027,7 @@ static u32 pscsi_get_device_type(struct se_device *dev)
> >
> > static sector_t pscsi_get_blocks(struct se_device *dev)
> > {
> > - struct pscsi_dev_virt *pdv = PSCSI_DEV(dev);
> > -
> > - if (pdv->pdv_bd && pdv->pdv_bd->bd_part)
> > - return pdv->pdv_bd->bd_part->nr_sects;
> > -
> > - return 0;
> > + return bdev_nr_sectors(PSCSI_DEV(dev)->pdv_bd);
>
> I pdv_bd guaranteed to be non-NULL in pscsi_dev_virt?
Looking at the code - only for disk devices. And while ->get_blocks
should only be called for those I'd rather err on the safe side and will
add the check back.
More information about the linux-mtd
mailing list