[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v2 04/43] block: Involve block drivers in permis
From: |
Fam Zheng |
Subject: |
Re: [Qemu-block] [PATCH v2 04/43] block: Involve block drivers in permission granting |
Date: |
Tue, 28 Feb 2017 16:18:55 +0800 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
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
- [Qemu-block] [PATCH v2 00/43] New op blocker system, part 1, Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 01/43] block: Add op blocker permission constants, Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 02/43] block: Add Error argument to bdrv_attach_child(), Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 03/43] block: Let callers request permissions when attaching a child node, Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 04/43] block: Involve block drivers in permission granting, Kevin Wolf, 2017/02/27
- Re: [Qemu-block] [PATCH v2 04/43] block: Involve block drivers in permission granting,
Fam Zheng <=
- [Qemu-block] [PATCH v2 05/43] block: Default .bdrv_child_perm() for filter drivers, Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 06/43] block: Request child permissions in filter drivers, Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 07/43] block: Default .bdrv_child_perm() for format drivers, Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 08/43] block: Request child permissions in format drivers, Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 09/43] vvfat: Implement .bdrv_child_perm(), Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 10/43] block: Require .bdrv_child_perm() with child nodes, Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 11/43] block: Request real permissions in bdrv_attach_child(), Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 12/43] block: Add permissions to BlockBackend, Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 13/43] block: Add permissions to blk_new(), Kevin Wolf, 2017/02/27
- [Qemu-block] [PATCH v2 14/43] block: Add error parameter to blk_insert_bs(), Kevin Wolf, 2017/02/27