Skip to content

Commit

Permalink
Remove bdi_congested() and wb_congested() and related functions
Browse files Browse the repository at this point in the history
These functions are no longer useful as the only bdis that report
congestion are in ceph, fuse, and nfs.  None of those bdis can be the
target of the calls in drbd, ext2, nilfs2, or xfs.

Removing the test on bdi_write_contested() in current_may_throttle()
could cause a small change in behaviour, but only when PF_LOCAL_THROTTLE
is set.

So replace the calls by 'false' and simplify the code - and remove the
functions.

Signed-off-by: NeilBrown <neilb@suse.de>
  • Loading branch information
neilbrown authored and intel-lab-lkp committed Jan 27, 2022
1 parent 264bb1d commit 4e63f49
Show file tree
Hide file tree
Showing 7 changed files with 2 additions and 50 deletions.
3 changes: 0 additions & 3 deletions drivers/block/drbd/drbd_int.h
Expand Up @@ -638,9 +638,6 @@ enum {
STATE_SENT, /* Do not change state/UUIDs while this is set */
CALLBACK_PENDING, /* Whether we have a call_usermodehelper(, UMH_WAIT_PROC)
* pending, from drbd worker context.
* If set, bdi_write_congested() returns true,
* so shrink_page_list() would not recurse into,
* and potentially deadlock on, this drbd worker.
*/
DISCONNECT_SENT,

Expand Down
3 changes: 1 addition & 2 deletions drivers/block/drbd/drbd_req.c
Expand Up @@ -909,8 +909,7 @@ static bool remote_due_to_read_balancing(struct drbd_device *device, sector_t se

switch (rbm) {
case RB_CONGESTED_REMOTE:
return bdi_read_congested(
device->ldev->backing_bdev->bd_disk->bdi);
return 0;
case RB_LEAST_PENDING:
return atomic_read(&device->local_cnt) >
atomic_read(&device->ap_pending_cnt) + atomic_read(&device->rs_pending_cnt);
Expand Down
2 changes: 0 additions & 2 deletions fs/ext2/ialloc.c
Expand Up @@ -173,8 +173,6 @@ static void ext2_preread_inode(struct inode *inode)
struct backing_dev_info *bdi;

bdi = inode_to_bdi(inode);
if (bdi_rw_congested(bdi))
return;

block_group = (inode->i_ino - 1) / EXT2_INODES_PER_GROUP(inode->i_sb);
gdp = ext2_get_group_desc(inode->i_sb, block_group, NULL);
Expand Down
11 changes: 0 additions & 11 deletions fs/nilfs2/segbuf.c
Expand Up @@ -343,17 +343,6 @@ static int nilfs_segbuf_submit_bio(struct nilfs_segment_buffer *segbuf,
struct bio *bio = wi->bio;
int err;

if (segbuf->sb_nbio > 0 &&
bdi_write_congested(segbuf->sb_super->s_bdi)) {
wait_for_completion(&segbuf->sb_bio_event);
segbuf->sb_nbio--;
if (unlikely(atomic_read(&segbuf->sb_err))) {
bio_put(bio);
err = -EIO;
goto failed;
}
}

bio->bi_end_io = nilfs_end_bio_write;
bio->bi_private = segbuf;
bio_set_op_attrs(bio, mode, mode_flags);
Expand Down
3 changes: 0 additions & 3 deletions fs/xfs/xfs_buf.c
Expand Up @@ -843,9 +843,6 @@ xfs_buf_readahead_map(
{
struct xfs_buf *bp;

if (bdi_read_congested(target->bt_bdev->bd_disk->bdi))
return;

xfs_buf_read_map(target, map, nmaps,
XBF_TRYLOCK | XBF_ASYNC | XBF_READ_AHEAD, &bp, ops,
__this_address);
Expand Down
26 changes: 0 additions & 26 deletions include/linux/backing-dev.h
Expand Up @@ -135,11 +135,6 @@ static inline bool writeback_in_progress(struct bdi_writeback *wb)

struct backing_dev_info *inode_to_bdi(struct inode *inode);

static inline int wb_congested(struct bdi_writeback *wb, int cong_bits)
{
return wb->congested & cong_bits;
}

long congestion_wait(int sync, long timeout);

static inline bool mapping_can_writeback(struct address_space *mapping)
Expand Down Expand Up @@ -391,27 +386,6 @@ static inline void wb_blkcg_offline(struct blkcg *blkcg)

#endif /* CONFIG_CGROUP_WRITEBACK */

static inline int bdi_congested(struct backing_dev_info *bdi, int cong_bits)
{
return wb_congested(&bdi->wb, cong_bits);
}

static inline int bdi_read_congested(struct backing_dev_info *bdi)
{
return bdi_congested(bdi, 1 << WB_sync_congested);
}

static inline int bdi_write_congested(struct backing_dev_info *bdi)
{
return bdi_congested(bdi, 1 << WB_async_congested);
}

static inline int bdi_rw_congested(struct backing_dev_info *bdi)
{
return bdi_congested(bdi, (1 << WB_sync_congested) |
(1 << WB_async_congested));
}

const char *bdi_dev_name(struct backing_dev_info *bdi);

#endif /* _LINUX_BACKING_DEV_H */
4 changes: 1 addition & 3 deletions mm/vmscan.c
Expand Up @@ -2362,9 +2362,7 @@ static unsigned int move_pages_to_lru(struct lruvec *lruvec,
*/
static int current_may_throttle(void)
{
return !(current->flags & PF_LOCAL_THROTTLE) ||
current->backing_dev_info == NULL ||
bdi_write_congested(current->backing_dev_info);
return !(current->flags & PF_LOCAL_THROTTLE);
}

/*
Expand Down

0 comments on commit 4e63f49

Please sign in to comment.