Okay, I'll drop this patch in the V2. On 06/13/2019 08:36 AM, Bart Van Assche wrote: > On 6/13/19 7:59 AM, Chaitanya Kulkarni wrote: >> This patch updates the pscsi_get_blocks() with newly introduced helper >> function to read the nr_sects from block device's hd_parts with the >> help if part_nr_sects_read() protected by appropriate locking. >> >> Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@xxxxxxx> >> --- >> drivers/target/target_core_pscsi.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c >> index c9d92b3e777d..da481edab2de 100644 >> --- a/drivers/target/target_core_pscsi.c >> +++ b/drivers/target/target_core_pscsi.c >> @@ -1030,7 +1030,7 @@ 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 bdev_nr_sects(pdv->pdv_bd); >> >> return 0; >> } > > As far as I can see bd_part does not change between blkdev_get() and > blkdev_put(). Since the pscsi code guarantees that blkdev_put() is not > called concurrently with pscsi_get_blocks() this patch is not necessary. > > Bart. > > >