remove inode_congested()
authorNeilBrown <neilb@suse.de>
Tue, 22 Mar 2022 21:39:07 +0000 (14:39 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Mar 2022 22:57:01 +0000 (15:57 -0700)
inode_congested() reports if the backing-device for the inode is
congested.  No bdi reports congestion any more, so this always returns
'false'.

So remove inode_congested() and related functions, and remove the call
sites, assuming that inode_congested() always returns 'false'.

Link: https://lkml.kernel.org/r/164549983741.9187.2174285592262191311.stgit@noble.brown
Signed-off-by: NeilBrown <neilb@suse.de>
Cc: Anna Schumaker <Anna.Schumaker@Netapp.com>
Cc: Chao Yu <chao@kernel.org>
Cc: Darrick J. Wong <djwong@kernel.org>
Cc: Ilya Dryomov <idryomov@gmail.com>
Cc: Jaegeuk Kim <jaegeuk@kernel.org>
Cc: Jan Kara <jack@suse.cz>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Lars Ellenberg <lars.ellenberg@linbit.com>
Cc: Miklos Szeredi <miklos@szeredi.hu>
Cc: Paolo Valente <paolo.valente@linaro.org>
Cc: Philipp Reisner <philipp.reisner@linbit.com>
Cc: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/fs-writeback.c
include/linux/backing-dev.h
mm/fadvise.c
mm/readahead.c
mm/vmscan.c

index f8d7fe6..42a3dfa 100644 (file)
@@ -894,43 +894,6 @@ void wbc_account_cgroup_owner(struct writeback_control *wbc, struct page *page,
 EXPORT_SYMBOL_GPL(wbc_account_cgroup_owner);
 
 /**
- * inode_congested - test whether an inode is congested
- * @inode: inode to test for congestion (may be NULL)
- * @cong_bits: mask of WB_[a]sync_congested bits to test
- *
- * Tests whether @inode is congested.  @cong_bits is the mask of congestion
- * bits to test and the return value is the mask of set bits.
- *
- * If cgroup writeback is enabled for @inode, the congestion state is
- * determined by whether the cgwb (cgroup bdi_writeback) for the blkcg
- * associated with @inode is congested; otherwise, the root wb's congestion
- * state is used.
- *
- * @inode is allowed to be NULL as this function is often called on
- * mapping->host which is NULL for the swapper space.
- */
-int inode_congested(struct inode *inode, int cong_bits)
-{
-       /*
-        * Once set, ->i_wb never becomes NULL while the inode is alive.
-        * Start transaction iff ->i_wb is visible.
-        */
-       if (inode && inode_to_wb_is_valid(inode)) {
-               struct bdi_writeback *wb;
-               struct wb_lock_cookie lock_cookie = {};
-               bool congested;
-
-               wb = unlocked_inode_to_wb_begin(inode, &lock_cookie);
-               congested = wb_congested(wb, cong_bits);
-               unlocked_inode_to_wb_end(inode, &lock_cookie);
-               return congested;
-       }
-
-       return wb_congested(&inode_to_bdi(inode)->wb, cong_bits);
-}
-EXPORT_SYMBOL_GPL(inode_congested);
-
-/**
  * wb_split_bdi_pages - split nr_pages to write according to bandwidth
  * @wb: target bdi_writeback to split @nr_pages to
  * @nr_pages: number of pages to write for the whole bdi
index 483979c..860b675 100644 (file)
@@ -162,7 +162,6 @@ struct bdi_writeback *wb_get_create(struct backing_dev_info *bdi,
                                    gfp_t gfp);
 void wb_memcg_offline(struct mem_cgroup *memcg);
 void wb_blkcg_offline(struct blkcg *blkcg);
-int inode_congested(struct inode *inode, int cong_bits);
 
 /**
  * inode_cgwb_enabled - test whether cgroup writeback is enabled on an inode
@@ -390,29 +389,8 @@ static inline void wb_blkcg_offline(struct blkcg *blkcg)
 {
 }
 
-static inline int inode_congested(struct inode *inode, int cong_bits)
-{
-       return wb_congested(&inode_to_bdi(inode)->wb, cong_bits);
-}
-
 #endif /* CONFIG_CGROUP_WRITEBACK */
 
-static inline int inode_read_congested(struct inode *inode)
-{
-       return inode_congested(inode, 1 << WB_sync_congested);
-}
-
-static inline int inode_write_congested(struct inode *inode)
-{
-       return inode_congested(inode, 1 << WB_async_congested);
-}
-
-static inline int inode_rw_congested(struct inode *inode)
-{
-       return inode_congested(inode, (1 << WB_sync_congested) |
-                                     (1 << WB_async_congested));
-}
-
 static inline int bdi_congested(struct backing_dev_info *bdi, int cong_bits)
 {
        return wb_congested(&bdi->wb, cong_bits);
index d6baa4f..338f160 100644 (file)
@@ -109,9 +109,8 @@ int generic_fadvise(struct file *file, loff_t offset, loff_t len, int advice)
        case POSIX_FADV_NOREUSE:
                break;
        case POSIX_FADV_DONTNEED:
-               if (!inode_write_congested(mapping->host))
-                       __filemap_fdatawrite_range(mapping, offset, endbyte,
-                                                  WB_SYNC_NONE);
+               __filemap_fdatawrite_range(mapping, offset, endbyte,
+                                          WB_SYNC_NONE);
 
                /*
                 * First and last FULL page! Partial pages are deliberately
index 8a97bd4..f61943f 100644 (file)
@@ -709,12 +709,6 @@ void page_cache_async_ra(struct readahead_control *ractl,
 
        folio_clear_readahead(folio);
 
-       /*
-        * Defer asynchronous read-ahead on IO congestion.
-        */
-       if (inode_read_congested(ractl->mapping->host))
-               return;
-
        if (blk_cgroup_congested())
                return;
 
index 59b14e0..e38de64 100644 (file)
@@ -989,17 +989,6 @@ static inline int is_page_cache_freeable(struct page *page)
        return page_count(page) - page_has_private(page) == 1 + page_cache_pins;
 }
 
-static int may_write_to_inode(struct inode *inode)
-{
-       if (current->flags & PF_SWAPWRITE)
-               return 1;
-       if (!inode_write_congested(inode))
-               return 1;
-       if (inode_to_bdi(inode) == current->backing_dev_info)
-               return 1;
-       return 0;
-}
-
 /*
  * We detected a synchronous write error writing a page out.  Probably
  * -ENOSPC.  We need to propagate that into the address_space for a subsequent
@@ -1201,8 +1190,6 @@ static pageout_t pageout(struct page *page, struct address_space *mapping)
        }
        if (mapping->a_ops->writepage == NULL)
                return PAGE_ACTIVATE;
-       if (!may_write_to_inode(mapping->host))
-               return PAGE_KEEP;
 
        if (clear_page_dirty_for_io(page)) {
                int res;
@@ -1578,9 +1565,7 @@ retry:
                 * end of the LRU a second time.
                 */
                mapping = page_mapping(page);
-               if (((dirty || writeback) && mapping &&
-                    inode_write_congested(mapping->host)) ||
-                   (writeback && PageReclaim(page)))
+               if (writeback && PageReclaim(page))
                        stat->nr_congested++;
 
                /*