Message ID | 20190613145955.4813-7-chaitanya.kulkarni@wdc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | block: use right accessor to read nr_sects | expand |
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@wdc.com> > --- > 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.
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@wdc.com> >> --- >> 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. > > >
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; }
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@wdc.com> --- drivers/target/target_core_pscsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)