Re: [PATCH 29/44] block: remove the nr_sects field in struct hd_struct

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux