Message ID | 20200910144833.742260-4-hch@lst.de |
---|---|
State | Not Applicable |
Headers | show |
Series | [01/12] fs: remove the unused SB_I_MULTIROOT flag | expand |
On Thu 10-09-20 16:48:23, Christoph Hellwig wrote: > This case isn't ever used. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Are you sure it's never used? As far as I'm reading drdb code the contents of the disk_conf structure seems to be received through netlink (that code is really a macro hell) and so read_balancing attribute passed to remote_due_to_read_balancing() can have any value userspace passed to it. Honza > --- > drivers/block/drbd/drbd_req.c | 4 ---- > include/linux/drbd.h | 1 - > 2 files changed, 5 deletions(-) > > diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c > index 5c975af9c15fb8..481bc34fcf386a 100644 > --- a/drivers/block/drbd/drbd_req.c > +++ b/drivers/block/drbd/drbd_req.c > @@ -901,13 +901,9 @@ static bool drbd_may_do_local_read(struct drbd_device *device, sector_t sector, > static bool remote_due_to_read_balancing(struct drbd_device *device, sector_t sector, > enum drbd_read_balancing rbm) > { > - struct backing_dev_info *bdi; > int stripe_shift; > > switch (rbm) { > - case RB_CONGESTED_REMOTE: > - bdi = device->ldev->backing_bdev->bd_disk->queue->backing_dev_info; > - return bdi_read_congested(bdi); > case RB_LEAST_PENDING: > return atomic_read(&device->local_cnt) > > atomic_read(&device->ap_pending_cnt) + atomic_read(&device->rs_pending_cnt); > diff --git a/include/linux/drbd.h b/include/linux/drbd.h > index 5755537b51b114..6a8286132751df 100644 > --- a/include/linux/drbd.h > +++ b/include/linux/drbd.h > @@ -94,7 +94,6 @@ enum drbd_read_balancing { > RB_PREFER_REMOTE, > RB_ROUND_ROBIN, > RB_LEAST_PENDING, > - RB_CONGESTED_REMOTE, > RB_32K_STRIPING, > RB_64K_STRIPING, > RB_128K_STRIPING, > -- > 2.28.0 >
On Thu, Sep 17, 2020 at 11:55:07AM +0200, Jan Kara wrote: > On Thu 10-09-20 16:48:23, Christoph Hellwig wrote: > > This case isn't ever used. > > > > Signed-off-by: Christoph Hellwig <hch@lst.de> > > Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> > > Are you sure it's never used? As far as I'm reading drdb code the contents > of the disk_conf structure seems to be received through netlink (that code > is really a macro hell) and so read_balancing attribute passed to > remote_due_to_read_balancing() can have any value userspace passed to it. You are right, looking at how disk_conf is used I can't convince myself that it is indeed not set through netlink and I've thus dropped the patch.
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c index 5c975af9c15fb8..481bc34fcf386a 100644 --- a/drivers/block/drbd/drbd_req.c +++ b/drivers/block/drbd/drbd_req.c @@ -901,13 +901,9 @@ static bool drbd_may_do_local_read(struct drbd_device *device, sector_t sector, static bool remote_due_to_read_balancing(struct drbd_device *device, sector_t sector, enum drbd_read_balancing rbm) { - struct backing_dev_info *bdi; int stripe_shift; switch (rbm) { - case RB_CONGESTED_REMOTE: - bdi = device->ldev->backing_bdev->bd_disk->queue->backing_dev_info; - return bdi_read_congested(bdi); case RB_LEAST_PENDING: return atomic_read(&device->local_cnt) > atomic_read(&device->ap_pending_cnt) + atomic_read(&device->rs_pending_cnt); diff --git a/include/linux/drbd.h b/include/linux/drbd.h index 5755537b51b114..6a8286132751df 100644 --- a/include/linux/drbd.h +++ b/include/linux/drbd.h @@ -94,7 +94,6 @@ enum drbd_read_balancing { RB_PREFER_REMOTE, RB_ROUND_ROBIN, RB_LEAST_PENDING, - RB_CONGESTED_REMOTE, RB_32K_STRIPING, RB_64K_STRIPING, RB_128K_STRIPING,