Message ID | 20190802140314.19001-1-kwolf@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | block: Simplify bdrv_filter_default_perms() | expand |
On 8/2/19 9:03 AM, Kevin Wolf wrote: > The same change as commit 2b23f28639 ('block/copy-on-read: Fix > permissions for inactive node') made for the copy-on-read driver can be > made for bdrv_filter_default_perms(): Retaining the old permissions from > the BdrvChild if it is given complicates things unnecessary when in the unnecessarily > end this only means that the options set in the c == NULL case (i.e. > during child creation) are retained. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > block.c | 12 ++---------- > 1 file changed, 2 insertions(+), 10 deletions(-) Reviewed-by: Eric Blake <eblake@redhat.com>
On 02.08.19 16:03, Kevin Wolf wrote: > The same change as commit 2b23f28639 ('block/copy-on-read: Fix > permissions for inactive node') made for the copy-on-read driver can be > made for bdrv_filter_default_perms(): Retaining the old permissions from > the BdrvChild if it is given complicates things unnecessary when in the > end this only means that the options set in the c == NULL case (i.e. > during child creation) are retained. My best guess is that we had this code because this way any party could set or remove the GRAPH_MOD permission and it would be kept through .bdrv_child_perm() invocations. (But I think that’s kaputt.) > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > block.c | 12 ++---------- > 1 file changed, 2 insertions(+), 10 deletions(-) Reviewed-by: Max Reitz <mreitz@redhat.com>
diff --git a/block.c b/block.c index cbd8da5f3b..6db8ecd62b 100644 --- a/block.c +++ b/block.c @@ -2168,16 +2168,8 @@ void bdrv_filter_default_perms(BlockDriverState *bs, BdrvChild *c, uint64_t perm, uint64_t shared, uint64_t *nperm, uint64_t *nshared) { - if (c == NULL) { - *nperm = perm & DEFAULT_PERM_PASSTHROUGH; - *nshared = (shared & DEFAULT_PERM_PASSTHROUGH) | DEFAULT_PERM_UNCHANGED; - return; - } - - *nperm = (perm & DEFAULT_PERM_PASSTHROUGH) | - (c->perm & DEFAULT_PERM_UNCHANGED); - *nshared = (shared & DEFAULT_PERM_PASSTHROUGH) | - (c->shared_perm & DEFAULT_PERM_UNCHANGED); + *nperm = perm & DEFAULT_PERM_PASSTHROUGH; + *nshared = (shared & DEFAULT_PERM_PASSTHROUGH) | DEFAULT_PERM_UNCHANGED; } void bdrv_format_default_perms(BlockDriverState *bs, BdrvChild *c,
The same change as commit 2b23f28639 ('block/copy-on-read: Fix permissions for inactive node') made for the copy-on-read driver can be made for bdrv_filter_default_perms(): Retaining the old permissions from the BdrvChild if it is given complicates things unnecessary when in the end this only means that the options set in the c == NULL case (i.e. during child creation) are retained. Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-)