On Mon 21-09-20 10:07:26, Christoph Hellwig wrote: > Set up a readahead size by default, as very few users have a good > reason to change it. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > Acked-by: David Sterba <dsterba@xxxxxxxx> [btrfs] > Acked-by: Richard Weinberger <richard@xxxxxx> [ubifs, mtd] The patch looks good to me. You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> I'd just prefer if the changelog explicitely mentioned that this patch results in enabling readahead for coda, ecryptfs, and orangefs... Just in case someone bisects some issue down to this patch :). Honza > --- > block/blk-core.c | 2 -- > drivers/mtd/mtdcore.c | 2 ++ > fs/9p/vfs_super.c | 6 ++++-- > fs/afs/super.c | 1 - > fs/btrfs/disk-io.c | 1 - > fs/fuse/inode.c | 1 - > fs/nfs/super.c | 9 +-------- > fs/ubifs/super.c | 2 ++ > fs/vboxsf/super.c | 2 ++ > mm/backing-dev.c | 2 ++ > 10 files changed, 13 insertions(+), 15 deletions(-) > > diff --git a/block/blk-core.c b/block/blk-core.c > index ca3f0f00c9435f..865d39e5be2b28 100644 > --- a/block/blk-core.c > +++ b/block/blk-core.c > @@ -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; > > diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c > index 7d930569a7dfb7..b5e5d3140f578e 100644 > --- a/drivers/mtd/mtdcore.c > +++ b/drivers/mtd/mtdcore.c > @@ -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 > diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c > index 74df32be4c6a52..e34fa20acf612e 100644 > --- a/fs/9p/vfs_super.c > +++ b/fs/9p/vfs_super.c > @@ -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) > diff --git a/fs/afs/super.c b/fs/afs/super.c > index b552357b1d1379..3a40ee752c1e3f 100644 > --- a/fs/afs/super.c > +++ b/fs/afs/super.c > @@ -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) { > diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c > index f6bba7eb1fa171..047934cea25efa 100644 > --- a/fs/btrfs/disk-io.c > +++ b/fs/btrfs/disk-io.c > @@ -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); > > diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c > index bba747520e9b08..17b00670fb539e 100644 > --- a/fs/fuse/inode.c > +++ b/fs/fuse/inode.c > @@ -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; > > diff --git a/fs/nfs/super.c b/fs/nfs/super.c > index 7a70287f21a2c1..f943e37853fa25 100644 > --- a/fs/nfs/super.c > +++ b/fs/nfs/super.c > @@ -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; > } > > diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c > index a2420c900275a8..fbddb2a1c03f5e 100644 > --- a/fs/ubifs/super.c > +++ b/fs/ubifs/super.c > @@ -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; > diff --git a/fs/vboxsf/super.c b/fs/vboxsf/super.c > index 8fe03b4a0d2b03..8e3792177a8523 100644 > --- a/fs/vboxsf/super.c > +++ b/fs/vboxsf/super.c > @@ -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; > diff --git a/mm/backing-dev.c b/mm/backing-dev.c > index 8e8b00627bb2d8..2dac3be6127127 100644 > --- a/mm/backing-dev.c > +++ b/mm/backing-dev.c > @@ -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); > -- > 2.28.0 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR