[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/7] block: Ignore loosening perm restrictions f
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH 0/7] block: Ignore loosening perm restrictions failures |
Date: |
Wed, 8 May 2019 16:30:22 +0200 |
User-agent: |
Mutt/1.11.3 (2019-02-01) |
Am 06.05.2019 um 21:47 hat Max Reitz geschrieben:
> Hi,
>
> This series is mainly a fix for
> https://bugzilla.redhat.com/show_bug.cgi?id=1703793. The problem
> described there is that mirroring to a gluster volume, then switching
> off the volume makes qemu crash. There are two problems here:
>
> (1) file-posix reopens the FD all the time because it thinks the FD it
> has is RDONLY. It actually isn’t after the first reopen, we just
> forgot to change the internal flags. That’s what patch 1 is for.
>
> (2) Even then, when mirror completes, it drops its write permission on
> the FD. This requires a reopen, which will fail if the volume is
> down. Mirror doesn’t expect that. Nobody ever expects that
> dropping permissions can fail, and rightfully so because that’s what
> I think we have generally agreed on.
> Therefore, the block layer should hide this error. This is what the
> last two patches are for.
>
> The last patch adds two assertions: bdrv_replace_child() (for the old
> BDS) and bdrv_inactivate_recurse() assume they only ever drop
> assertions. This is now substantiated by these new assertions.
> It turns out that this assumption was just plain wrong. Patches 3 to 5
> make it right.
There are some places in this series that were a bit confusing (just
because the whole permission mechanism is rather confusing). I suggested
improvements for two patches, and deleted the half-written mails for the
rest. After all, it does look correct to me, so whether you want to
address my comments or not:
Reviewed-by: Kevin Wolf <address@hidden>
- Re: [Qemu-devel] [PATCH 1/7] file-posix: Update open_flags in raw_set_perm(), (continued)
- [Qemu-devel] [PATCH 2/7] block: Add bdrv_child_refresh_perms(), Max Reitz, 2019/05/06
- [Qemu-devel] [PATCH 3/7] block/mirror: Fix child permissions, Max Reitz, 2019/05/06
- [Qemu-devel] [PATCH 4/7] block/commit: Drop bdrv_child_try_set_perm(), Max Reitz, 2019/05/06
- [Qemu-devel] [PATCH 5/7] block: Fix order in bdrv_replace_child(), Max Reitz, 2019/05/06
- [Qemu-devel] [PATCH 6/7] block: Add *loosen_restrictions to *check*_perm(), Max Reitz, 2019/05/06
- [Qemu-devel] [PATCH 7/7] block: Ignore loosening perm restrictions failures, Max Reitz, 2019/05/06
- Re: [Qemu-devel] [PATCH 0/7] block: Ignore loosening perm restrictions failures,
Kevin Wolf <=