Revision d6e9098e block.c
b/block.c | ||
---|---|---|
338 | 338 |
int ret; |
339 | 339 |
|
340 | 340 |
bs = bdrv_new(""); |
341 |
ret = bdrv_open2(bs, filename, flags | BDRV_O_FILE, NULL);
|
|
341 |
ret = bdrv_open(bs, filename, flags | BDRV_O_FILE, NULL); |
|
342 | 342 |
if (ret < 0) { |
343 | 343 |
bdrv_delete(bs); |
344 | 344 |
return ret; |
... | ... | |
348 | 348 |
return 0; |
349 | 349 |
} |
350 | 350 |
|
351 |
int bdrv_open(BlockDriverState *bs, const char *filename, int flags) |
|
352 |
{ |
|
353 |
return bdrv_open2(bs, filename, flags, NULL); |
|
354 |
} |
|
355 |
|
|
356 |
int bdrv_open2(BlockDriverState *bs, const char *filename, int flags, |
|
357 |
BlockDriver *drv) |
|
351 |
int bdrv_open(BlockDriverState *bs, const char *filename, int flags, |
|
352 |
BlockDriver *drv) |
|
358 | 353 |
{ |
359 | 354 |
int ret, open_flags; |
360 | 355 |
char tmp_filename[PATH_MAX]; |
... | ... | |
379 | 374 |
|
380 | 375 |
/* if there is a backing file, use it */ |
381 | 376 |
bs1 = bdrv_new(""); |
382 |
ret = bdrv_open2(bs1, filename, 0, drv);
|
|
377 |
ret = bdrv_open(bs1, filename, 0, drv); |
|
383 | 378 |
if (ret < 0) { |
384 | 379 |
bdrv_delete(bs1); |
385 | 380 |
return ret; |
... | ... | |
491 | 486 |
|
492 | 487 |
/* backing files always opened read-only */ |
493 | 488 |
open_flags &= ~BDRV_O_RDWR; |
494 |
|
|
495 |
ret = bdrv_open2(bs->backing_hd, backing_filename, open_flags, |
|
496 |
back_drv); |
|
489 |
|
|
490 |
ret = bdrv_open(bs->backing_hd, backing_filename, open_flags, back_drv); |
|
497 | 491 |
if (ret < 0) { |
498 | 492 |
bdrv_close(bs); |
499 | 493 |
return ret; |
... | ... | |
605 | 599 |
bdrv_delete(bs->backing_hd); |
606 | 600 |
bs->backing_hd = NULL; |
607 | 601 |
bs_rw = bdrv_new(""); |
608 |
rw_ret = bdrv_open2(bs_rw, filename, open_flags | BDRV_O_RDWR, NULL);
|
|
602 |
rw_ret = bdrv_open(bs_rw, filename, open_flags | BDRV_O_RDWR, NULL); |
|
609 | 603 |
if (rw_ret < 0) { |
610 | 604 |
bdrv_delete(bs_rw); |
611 | 605 |
/* try to re-open read-only */ |
612 | 606 |
bs_ro = bdrv_new(""); |
613 |
ret = bdrv_open2(bs_ro, filename, open_flags & ~BDRV_O_RDWR, NULL);
|
|
607 |
ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, NULL); |
|
614 | 608 |
if (ret < 0) { |
615 | 609 |
bdrv_delete(bs_ro); |
616 | 610 |
/* drive not functional anymore */ |
... | ... | |
662 | 656 |
bdrv_delete(bs->backing_hd); |
663 | 657 |
bs->backing_hd = NULL; |
664 | 658 |
bs_ro = bdrv_new(""); |
665 |
ret = bdrv_open2(bs_ro, filename, open_flags & ~BDRV_O_RDWR, NULL);
|
|
659 |
ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, NULL); |
|
666 | 660 |
if (ret < 0) { |
667 | 661 |
bdrv_delete(bs_ro); |
668 | 662 |
/* drive not functional anymore */ |
Also available in: Unified diff