From: Fam Zheng <famz@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-block@nongnu.org, mreitz@redhat.com, jcody@redhat.com,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 04/43] block: Involve block drivers in permission granting
Date: Tue, 28 Feb 2017 16:18:55 +0800 [thread overview]
Message-ID: <20170228081855.GA29328@lemon.lan> (raw)
In-Reply-To: <1488226184-9044-5-git-send-email-kwolf@redhat.com>
On Mon, 02/27 21:09, Kevin Wolf wrote:
> + /**
> + * Called to inform the driver that the set of cumulative set of used
> + * permissions for @bs has changed to @perm, and the set of sharable
> + * permission to @shared. The driver can use this to propagate changes to
> + * its children (i.e. request permissions only if a parent actually needs
> + * them).
> + *
> + * This function is only invoked after bdrv_check_perm(),
Trying to rebase the image locking series and found this contract doesn't seem
to hold as in:
(gdb) bt
#0 0x00007ffff1ad291f in raise () at /lib64/libc.so.6
#1 0x00007ffff1ad451a in abort () at /lib64/libc.so.6
#2 0x00007ffff1acada7 in __assert_fail_base () at /lib64/libc.so.6
#3 0x00007ffff1acae52 in () at /lib64/libc.so.6
#4 0x0000555555b9e73e in raw_set_perm (bs=0x5555567ee7a0, perm=0, shared=31) at /stor/work/qemu/block/file-posix.c:2541
#5 0x0000555555b43437 in bdrv_set_perm (bs=0x5555567ee7a0, cumulative_perms=0, cumulative_shared_perms=31) at /stor/work/qemu/block.c:1484
#6 0x0000555555b4357a in bdrv_update_perm (bs=0x5555567ee7a0) at /stor/work/qemu/block.c:1514
#7 0x0000555555b43cb9 in bdrv_replace_child (child=0x5555567f2cb0, new_bs=0x0) at /stor/work/qemu/block.c:1721
#8 0x0000555555b4402e in bdrv_detach_child (child=0x5555567f2cb0) at /stor/work/qemu/block.c:1798
#9 0x0000555555b44070 in bdrv_root_unref_child (child=0x5555567f2cb0) at /stor/work/qemu/block.c:1809
#10 0x0000555555b941f1 in blk_remove_bs (blk=0x5555567f3e60) at /stor/work/qemu/block/block-backend.c:541
#11 0x0000555555b9397a in blk_delete (blk=0x5555567f3e60) at /stor/work/qemu/block/block-backend.c:227
#12 0x0000555555b93b3e in blk_unref (blk=0x5555567f3e60) at /stor/work/qemu/block/block-backend.c:271
#13 0x0000555555b45215 in bdrv_open_inherit (filename=0x5555567de020 "/stor/vm/arch.img", reference=0x0, options=0x5555567ec5e0, flags=8194, parent=0x0, child_role=0x0, errp=0x7fffffffdcc8)
at /stor/work/qemu/block.c:2312
#14 0x0000555555b45613 in bdrv_open (filename=0x5555567de020 "/stor/vm/arch.img", reference=0x0, options=0x5555567e60b0, flags=0, errp=0x7fffffffdcc8) at /stor/work/qemu/block.c:2400
#15 0x0000555555b93864 in blk_new_open (filename=0x5555567de020 "/stor/vm/arch.img", reference=0x0, options=0x5555567e60b0, flags=0, errp=0x7fffffffdcc8)
at /stor/work/qemu/block/block-backend.c:209
#16 0x00005555558d7db0 in blockdev_init (file=0x5555567de020 "/stor/vm/arch.img", bs_opts=0x5555567e60b0, errp=0x7fffffffdcc8) at /stor/work/qemu/blockdev.c:585
#17 0x00005555558d8e92 in drive_new (all_opts=0x55555674ff50, block_default_type=IF_IDE) at /stor/work/qemu/blockdev.c:1083
#18 0x00005555558e883a in drive_init_func (opaque=0x5555567a5760, opts=0x55555674ff50, errp=0x0) at /stor/work/qemu/vl.c:1129
#19 0x0000555555c4c5d8 in qemu_opts_foreach (list=0x555556143c60 <qemu_drive_opts>, func=0x5555558e880a <drive_init_func>, opaque=0x5555567a5760, errp=0x0)
at /stor/work/qemu/util/qemu-option.c:1135
#20 0x00005555558f1020 in main (argc=2, argv=0x7fffffffe1a8, envp=0x7fffffffe1c0) at /stor/work/qemu/vl.c:4410
Maybe bdrv_update_perm should call bdrv_check_perm too?
Fam
next prev parent reply other threads:[~2017-02-28 8:19 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-27 20:09 [Qemu-devel] [PATCH v2 00/43] New op blocker system, part 1 Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 01/43] block: Add op blocker permission constants Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 02/43] block: Add Error argument to bdrv_attach_child() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 03/43] block: Let callers request permissions when attaching a child node Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 04/43] block: Involve block drivers in permission granting Kevin Wolf
2017-02-28 8:18 ` Fam Zheng [this message]
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 05/43] block: Default .bdrv_child_perm() for filter drivers Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 06/43] block: Request child permissions in " Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 07/43] block: Default .bdrv_child_perm() for format drivers Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 08/43] block: Request child permissions in " Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 09/43] vvfat: Implement .bdrv_child_perm() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 10/43] block: Require .bdrv_child_perm() with child nodes Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 11/43] block: Request real permissions in bdrv_attach_child() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 12/43] block: Add permissions to BlockBackend Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 13/43] block: Add permissions to blk_new() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 14/43] block: Add error parameter to blk_insert_bs() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 15/43] block: Add BDRV_O_RESIZE for blk_new_open() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 16/43] block: Request real permissions in blk_new_open() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 17/43] block: Allow error return in BlockDevOps.change_media_cb() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 18/43] hw/block: Request permissions Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 19/43] hw/block: Introduce share-rw qdev property Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 20/43] blockjob: Add permissions to block_job_create() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 21/43] block: Add BdrvChildRole.get_parent_desc() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 22/43] block: Include details on permission errors in message Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 23/43] block: Add BdrvChildRole.stay_at_node Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 24/43] blockjob: Add permissions to block_job_add_bdrv() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 25/43] commit: Use real permissions in commit block job Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 26/43] commit: Use real permissions for HMP 'commit' Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 27/43] backup: Use real permissions in backup block job Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 28/43] block: Fix pending requests check in bdrv_append() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 29/43] block: BdrvChildRole.attach/detach() callbacks Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 30/43] block: Allow backing file links in change_parent_backing_link() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 31/43] mirror: Use real permissions in mirror/active commit block job Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 32/43] stream: Use real permissions in streaming " Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 33/43] mirror: Add filter-node-name to blockdev-mirror Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 34/43] commit: Add filter-node-name to block-commit Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 35/43] hmp: Request permissions in qemu-io Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 36/43] migration/block: Use real permissions Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 37/43] nbd/server: Use real permissions for NBD exports Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 38/43] tests: Remove FIXME comments Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 39/43] block: Pass BdrvChild to bdrv_aligned_preadv/pwritev and copy-on-read Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 40/43] block: Assertions for write permissions Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 41/43] block: Assertions for resize permission Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 42/43] block: Add Error parameter to bdrv_set_backing_hd() Kevin Wolf
2017-02-27 20:09 ` [Qemu-devel] [PATCH v2 43/43] block: Add Error parameter to bdrv_append() Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170228081855.GA29328@lemon.lan \
--to=famz@redhat.com \
--cc=jcody@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.