On Fri, 06/03 16:49, Fam Zheng wrote:
> +static
> +int raw_reopen_downgrade(BDRVReopenState *state,
> + RawReopenOperation op,
> + BdrvLockfCmd old_lock,
> + BdrvLockfCmd new_lock,
> + Error **errp)
> +{
> + BDRVRawReopenState *raw_s = state->opaque;
> + BDRVRawState *s = state->bs->opaque;
> + int ret;
This should be initialized to 0 for the nop branches.
Fam
> +
> + assert(old_lock == BDRV_LOCKF_EXCLUSIVE);
> + assert(new_lock == BDRV_LOCKF_SHARED);
> + switch (op) {
> + case RAW_REOPEN_PREPARE:
> + break;
> + case RAW_REOPEN_COMMIT:
> + ret = raw_lockf_fd(s->lock_fd, BDRV_LOCKF_SHARED);
> + if (ret) {
> + error_report("Failed to downgrade old lock");
> + break;
> + }
> + ret = raw_lockf_fd(raw_s->lock_fd, BDRV_LOCKF_SHARED);
> + if (ret) {
> + error_report("Failed to lock new fd");
> + break;
> + }
> + break;
> + case RAW_REOPEN_ABORT:
> + break;
> + }
> +
> + return ret;
> +}