[Top][All Lists]

[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 
#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 
#9  0x0000555555b44070 in bdrv_root_unref_child (child=0x5555567f2cb0) at 
#10 0x0000555555b941f1 in blk_remove_bs (blk=0x5555567f3e60) at 
#11 0x0000555555b9397a in blk_delete (blk=0x5555567f3e60) at 
#12 0x0000555555b93b3e in blk_unref (blk=0x5555567f3e60) at 
#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, 
    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 
#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?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]