[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 2/2] quorum: Implement bdrv_co_pwrite_zeroes()
From: |
Alberto Garcia |
Subject: |
Re: [PATCH v3 2/2] quorum: Implement bdrv_co_pwrite_zeroes() |
Date: |
Fri, 13 Nov 2020 17:26:02 +0100 |
User-agent: |
Notmuch/0.18.2 (http://notmuchmail.org) Emacs/24.4.1 (i586-pc-linux-gnu) |
On Fri 13 Nov 2020 05:11:20 PM CET, Max Reitz wrote:
>> We could set all supported_zero_flags as long as all children support
>> them, right?
>
> Sure, I was just thinking that we could set these regardless of
> whether the children support them, because (on zero-writes) the block
> layer will figure out for us whether the child nodes support them. O:)
But it can happen that one child supports e.g. BDRV_REQ_NO_FALLBACK but
the rest don't. In this case I think the block layer should return
-ENOTSUP earlier without writing to the child(ren) that do support that
flag.
So Quorum's supported_zero_flags would be the logical and of all of its
children's flags, right?
I'm unsure about BDRV_REQ_WRITE_UNCHANGED, many filters set that on top
of the other flags, but when would a BDS not support this flag?
>> pwrite_zeroes() does this additionaly:
>>
>> if (!(child->bs->open_flags & BDRV_O_UNMAP)) {
>> flags &= ~BDRV_REQ_MAY_UNMAP;
>> }
>
> Interesting. Technically, Quorum doesn’t support that flag (in
> supported_zero_flags O:))), so it shouldn’t appear, but, er, well
> then.
It would with the change that I'm proposing above.
Berto
[PATCH v3 1/2] quorum: Implement bdrv_co_block_status(), Alberto Garcia, 2020/11/11