]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
bdi: initialize ->ra_pages and ->io_pages in bdi_init
authorChristoph Hellwig <hch@lst.de>
Thu, 24 Sep 2020 06:51:32 +0000 (08:51 +0200)
committerJens Axboe <axboe@kernel.dk>
Thu, 24 Sep 2020 19:43:39 +0000 (13:43 -0600)
Set up a readahead size by default, as very few users have a good
reason to change it.  This means code, ecryptfs, and orangefs now
set up the values while they were previously missing it, while ubifs,
mtd and vboxsf manually set it to 0 to avoid readahead.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Acked-by: David Sterba <dsterba@suse.com> [btrfs]
Acked-by: Richard Weinberger <richard@nod.at> [ubifs, mtd]
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-core.c
drivers/mtd/mtdcore.c
fs/9p/vfs_super.c
fs/afs/super.c
fs/btrfs/disk-io.c
fs/fuse/inode.c
fs/nfs/super.c
fs/ubifs/super.c
fs/vboxsf/super.c
mm/backing-dev.c

index ca3f0f00c9435ffbad3c0ae5ce8f2ee10880f759..865d39e5be2b28ed35f7b4f5ba396a4b713d8bbc 100644 (file)
@@ -538,8 +538,6 @@ struct request_queue *blk_alloc_queue(int node_id)
        if (!q->stats)
                goto fail_stats;
 
-       q->backing_dev_info->ra_pages = VM_READAHEAD_PAGES;
-       q->backing_dev_info->io_pages = VM_READAHEAD_PAGES;
        q->backing_dev_info->capabilities = BDI_CAP_CGROUP_WRITEBACK;
        q->node = node_id;
 
index 7d930569a7dfb740522316297ae8c90c86316d3a..b5e5d3140f578edc6d76f19f254bf8d26e9e4132 100644 (file)
@@ -2196,6 +2196,8 @@ static struct backing_dev_info * __init mtd_bdi_init(char *name)
        bdi = bdi_alloc(NUMA_NO_NODE);
        if (!bdi)
                return ERR_PTR(-ENOMEM);
+       bdi->ra_pages = 0;
+       bdi->io_pages = 0;
 
        /*
         * We put '-0' suffix to the name to get the same name format as we
index 74df32be4c6a524f158991bfb1e6b8d0ddb341d1..e34fa20acf612e5db3a66c68d1510146acbf7ed8 100644 (file)
@@ -80,8 +80,10 @@ v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
        if (ret)
                return ret;
 
-       if (v9ses->cache)
-               sb->s_bdi->ra_pages = VM_READAHEAD_PAGES;
+       if (!v9ses->cache) {
+               sb->s_bdi->ra_pages = 0;
+               sb->s_bdi->io_pages = 0;
+       }
 
        sb->s_flags |= SB_ACTIVE | SB_DIRSYNC;
        if (!v9ses->cache)
index b552357b1d1379d4940fe839cf46d263cd095f35..3a40ee752c1e3fd298e258686e4d9d68d818c36b 100644 (file)
@@ -456,7 +456,6 @@ static int afs_fill_super(struct super_block *sb, struct afs_fs_context *ctx)
        ret = super_setup_bdi(sb);
        if (ret)
                return ret;
-       sb->s_bdi->ra_pages     = VM_READAHEAD_PAGES;
 
        /* allocate the root inode and dentry */
        if (as->dyn_root) {
index f6bba7eb1fa171f2c1885d23f2f65b36054dbe3b..047934cea25efab9d2ff9a9da9aed1d8310391ba 100644 (file)
@@ -3092,7 +3092,6 @@ int __cold open_ctree(struct super_block *sb, struct btrfs_fs_devices *fs_device
        }
 
        sb->s_bdi->capabilities |= BDI_CAP_CGROUP_WRITEBACK;
-       sb->s_bdi->ra_pages = VM_READAHEAD_PAGES;
        sb->s_bdi->ra_pages *= btrfs_super_num_devices(disk_super);
        sb->s_bdi->ra_pages = max(sb->s_bdi->ra_pages, SZ_4M / PAGE_SIZE);
 
index bba747520e9b08b752128a3db2bf62da36b473a3..17b00670fb539e64b2098fa7d002c36c4b614050 100644 (file)
@@ -1049,7 +1049,6 @@ static int fuse_bdi_init(struct fuse_conn *fc, struct super_block *sb)
        if (err)
                return err;
 
-       sb->s_bdi->ra_pages = VM_READAHEAD_PAGES;
        /* fuse does it's own writeback accounting */
        sb->s_bdi->capabilities = BDI_CAP_NO_ACCT_WB | BDI_CAP_STRICTLIMIT;
 
index 7a70287f21a2c1e3f1a13192db3795df8330d53d..f943e37853fa25770d2e10de7f363e4d300e9c9c 100644 (file)
@@ -1200,13 +1200,6 @@ static void nfs_get_cache_cookie(struct super_block *sb,
 }
 #endif
 
-static void nfs_set_readahead(struct backing_dev_info *bdi,
-                             unsigned long iomax_pages)
-{
-       bdi->ra_pages = VM_READAHEAD_PAGES;
-       bdi->io_pages = iomax_pages;
-}
-
 int nfs_get_tree_common(struct fs_context *fc)
 {
        struct nfs_fs_context *ctx = nfs_fc2context(fc);
@@ -1251,7 +1244,7 @@ int nfs_get_tree_common(struct fs_context *fc)
                                             MINOR(server->s_dev));
                if (error)
                        goto error_splat_super;
-               nfs_set_readahead(s->s_bdi, server->rpages);
+               s->s_bdi->io_pages = server->rpages;
                server->super = s;
        }
 
index a2420c900275a82a85527cecdc0605bc0d4bccac..fbddb2a1c03f5e468c2f4ffd8a85a9339c41ad14 100644 (file)
@@ -2177,6 +2177,8 @@ static int ubifs_fill_super(struct super_block *sb, void *data, int silent)
                                   c->vi.vol_id);
        if (err)
                goto out_close;
+       sb->s_bdi->ra_pages = 0;
+       sb->s_bdi->io_pages = 0;
 
        sb->s_fs_info = c;
        sb->s_magic = UBIFS_SUPER_MAGIC;
index 8fe03b4a0d2b038e99b4920e8539e1f5363e55d8..8e3792177a8523e655254c7b9500b6a504718ab7 100644 (file)
@@ -167,6 +167,8 @@ static int vboxsf_fill_super(struct super_block *sb, struct fs_context *fc)
        err = super_setup_bdi_name(sb, "vboxsf-%d", sbi->bdi_id);
        if (err)
                goto fail_free;
+       sb->s_bdi->ra_pages = 0;
+       sb->s_bdi->io_pages = 0;
 
        /* Turn source into a shfl_string and map the folder */
        size = strlen(fc->source) + 1;
index 8e8b00627bb2d8efb7afc6cdc4c7b4d2fc5ce364..2dac3be61271278c60ec9cdbb128d40a9831ce86 100644 (file)
@@ -746,6 +746,8 @@ struct backing_dev_info *bdi_alloc(int node_id)
                kfree(bdi);
                return NULL;
        }
+       bdi->ra_pages = VM_READAHEAD_PAGES;
+       bdi->io_pages = VM_READAHEAD_PAGES;
        return bdi;
 }
 EXPORT_SYMBOL(bdi_alloc);