On 08/04/2017 03:16 PM, Markus Armbruster wrote: > Denis, you added this in commit d50d822: > > #ifdef CONFIG_FALLOCATE > if (s->has_fallocate && aiocb->aio_offset >= bdrv_getlength(aiocb->bs)) { > int ret = do_fallocate(s->fd, 0, aiocb->aio_offset, > aiocb->aio_nbytes); > if (ret == 0 || ret != -ENOTSUP) { > return ret; > } > s->has_fallocate = false; > } > #endif > > bdrv_getlength() can fail. Does it do the right thing then? For what > it's worth, the comparison of its value is signed. fallocate() with 0 flags can work only beyond end of file or on top of the hole. Thus the check is made to validate that we are beyond EOF.
Technically fallocate should fail if that condition will be violated. But you right, we can add sanity check here. This would not harm. Should I send it? Den