On 10/07/19 13:02, Kevin Wolf wrote: > Hm... Actually, file-posix implements .bdrv_check_perm and could just > refuse attaching a parent there if it doesn't request a specific > permission like BLK_PERM_SUPPORT_ZONED. That should give us the > whitelist semantics through existing infrastructure.
I'd like Dmitry to have something more precise to base his work on. The permissions system is really complicated and I never really wrapped my head around it, so I need your help. IIUC, blkconf_apply_backend_options would grow a new argument (like "resizable") and that argument would add BLK_PERM_SUPPORT_ZONED to the perm that blkconf_apply_backend_options passes to blk_set_perm. On the other side raw_check_perm would say something like if (is_zoned(s) && !(perm & BLK_PERM_SUPPORT_ZONED)) { error_setg(....); return -ENOTSUP; } Is this correct? In addition, BLK_PERM_SUPPORT_ZONED would have to be a shared permission, since it's possible to assign the same block device to multiple scsi-block devices. So BLK_PERM_SUPPORT_ZONED would be added unconditionally to shared_perm. Paolo ps: I have always thought that shared_perm is expressed the wrong way and should have been "denied_perm". How hard would it be to change that now?