diff mbox series

block: ensure bdi->io_pages is always initialized

Message ID 346e5bf5-b08e-84e8-7b0e-c6cb0c814f96@kernel.dk (mailing list archive)
State New, archived
Headers show
Series block: ensure bdi->io_pages is always initialized | expand

Commit Message

Jens Axboe Aug. 31, 2020, 5:23 p.m. UTC
If a driver leaves the limit settings as the defaults, then we don't
initialize bdi->io_pages. This means that file systems may need to
work around bdi->io_pages == 0, which is somewhat messy.

Initialize the default value just like we do for ->ra_pages.

Cc: stable@vger.kernel.org
Reported-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

---

Comments

OGAWA Hirofumi Aug. 31, 2020, 5:53 p.m. UTC | #1
Jens Axboe <axboe@kernel.dk> writes:

> If a driver leaves the limit settings as the defaults, then we don't
> initialize bdi->io_pages. This means that file systems may need to
> work around bdi->io_pages == 0, which is somewhat messy.
>
> Initialize the default value just like we do for ->ra_pages.
>
> Cc: stable@vger.kernel.org
> Reported-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
> Signed-off-by: Jens Axboe <axboe@kernel.dk>

When queued to submit, please let us know to drop fatfs workaround
"fat-avoid-oops-when-bdi-io_pages==0.patch" in akpm series.

Thanks.

> ---
>
> diff --git a/block/blk-core.c b/block/blk-core.c
> index d9d632639bd1..10c08ac50697 100644
> --- a/block/blk-core.c
> +++ b/block/blk-core.c
> @@ -539,6 +539,7 @@ struct request_queue *blk_alloc_queue(int node_id)
>  		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;
Jens Axboe Aug. 31, 2020, 6:10 p.m. UTC | #2
On 8/31/20 11:53 AM, OGAWA Hirofumi wrote:
> Jens Axboe <axboe@kernel.dk> writes:
> 
>> If a driver leaves the limit settings as the defaults, then we don't
>> initialize bdi->io_pages. This means that file systems may need to
>> work around bdi->io_pages == 0, which is somewhat messy.
>>
>> Initialize the default value just like we do for ->ra_pages.
>>
>> Cc: stable@vger.kernel.org
>> Reported-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
>> Signed-off-by: Jens Axboe <axboe@kernel.dk>
> 
> When queued to submit, please let us know to drop fatfs workaround
> "fat-avoid-oops-when-bdi-io_pages==0.patch" in akpm series.

Will do - planning on submitting it for 5.9, so probably end this
week.
OGAWA Hirofumi Aug. 31, 2020, 6:20 p.m. UTC | #3
Jens Axboe <axboe@kernel.dk> writes:

> On 8/31/20 11:53 AM, OGAWA Hirofumi wrote:
>> Jens Axboe <axboe@kernel.dk> writes:
>> 
>>> If a driver leaves the limit settings as the defaults, then we don't
>>> initialize bdi->io_pages. This means that file systems may need to
>>> work around bdi->io_pages == 0, which is somewhat messy.
>>>
>>> Initialize the default value just like we do for ->ra_pages.
>>>
>>> Cc: stable@vger.kernel.org
>>> Reported-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
>>> Signed-off-by: Jens Axboe <axboe@kernel.dk>
>> 
>> When queued to submit, please let us know to drop fatfs workaround
>> "fat-avoid-oops-when-bdi-io_pages==0.patch" in akpm series.
>
> Will do - planning on submitting it for 5.9, so probably end this
> week.

OK. Andrew, please drop fat-avoid-oops-when-bdi-io_pages==0.patch.

Thanks.
Christoph Hellwig Sept. 1, 2020, 5:43 a.m. UTC | #4
On Mon, Aug 31, 2020 at 11:23:32AM -0600, Jens Axboe wrote:
> If a driver leaves the limit settings as the defaults, then we don't
> initialize bdi->io_pages. This means that file systems may need to
> work around bdi->io_pages == 0, which is somewhat messy.
> 
> Initialize the default value just like we do for ->ra_pages.
> 
> Cc: stable@vger.kernel.org

This should be a fixes for the commit originally adding ->io_pages
instead.

Otherwise looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>
Jens Axboe Sept. 1, 2020, 2 p.m. UTC | #5
On 8/31/20 11:43 PM, Christoph Hellwig wrote:
> On Mon, Aug 31, 2020 at 11:23:32AM -0600, Jens Axboe wrote:
>> If a driver leaves the limit settings as the defaults, then we don't
>> initialize bdi->io_pages. This means that file systems may need to
>> work around bdi->io_pages == 0, which is somewhat messy.
>>
>> Initialize the default value just like we do for ->ra_pages.
>>
>> Cc: stable@vger.kernel.org
> 
> This should be a fixes for the commit originally adding ->io_pages
> instead.

Added that and your reviewed-by, thanks.
diff mbox series

Patch

diff --git a/block/blk-core.c b/block/blk-core.c
index d9d632639bd1..10c08ac50697 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -539,6 +539,7 @@  struct request_queue *blk_alloc_queue(int node_id)
 		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;