[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] file-posix: Fix alignment after reopen changing O_DIRECT

From: Hanna Reitz
Subject: Re: [PATCH] file-posix: Fix alignment after reopen changing O_DIRECT
Date: Thu, 4 Nov 2021 14:32:35 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0

On 04.11.21 12:31, Kevin Wolf wrote:
At the end of a reopen, we already call bdrv_refresh_limits(), which
should update bs->request_alignment according to the new file
descriptor. However, raw_probe_alignment() relies on s->needs_alignment
and just uses 1 if it isn't set. We neglected to update this field, so
starting with cache=writeback and then reopening with cache=none means
that we get an incorrect bs->request_alignment == 1 and unaligned
requests fail instead of being automatically aligned.

Fix this by recalculating s->needs_alignment in raw_refresh_limits()
before calling raw_probe_alignment().

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
  block/file-posix.c         | 20 ++++++++++++++++----
  tests/qemu-iotests/142     | 22 ++++++++++++++++++++++
  tests/qemu-iotests/142.out | 15 +++++++++++++++
  3 files changed, 53 insertions(+), 4 deletions(-)

Reviewed-by: Hanna Reitz <hreitz@redhat.com>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]