mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
storage: Implement virStorageFileCreate for local and gluster files
Add backends for this frontend function so that we can use it in the snapshot creation code.
This commit is contained in:
parent
24e5cafba6
commit
a2a67eff18
@ -1386,6 +1386,22 @@ virStorageFileBackendFileInit(virStorageSourcePtr src)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
virStorageFileBackendFileCreate(virStorageSourcePtr src)
|
||||||
|
{
|
||||||
|
int fd = -1;
|
||||||
|
|
||||||
|
if ((fd = virFileOpenAs(src->path, O_WRONLY | O_TRUNC | O_CREAT, 0,
|
||||||
|
src->drv->uid, src->drv->gid, 0)) < 0) {
|
||||||
|
errno = -fd;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
VIR_FORCE_CLOSE(fd);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageFileBackendFileUnlink(virStorageSourcePtr src)
|
virStorageFileBackendFileUnlink(virStorageSourcePtr src)
|
||||||
{
|
{
|
||||||
@ -1470,6 +1486,7 @@ virStorageFileBackend virStorageFileBackendFile = {
|
|||||||
.backendInit = virStorageFileBackendFileInit,
|
.backendInit = virStorageFileBackendFileInit,
|
||||||
.backendDeinit = virStorageFileBackendFileDeinit,
|
.backendDeinit = virStorageFileBackendFileDeinit,
|
||||||
|
|
||||||
|
.storageFileCreate = virStorageFileBackendFileCreate,
|
||||||
.storageFileUnlink = virStorageFileBackendFileUnlink,
|
.storageFileUnlink = virStorageFileBackendFileUnlink,
|
||||||
.storageFileStat = virStorageFileBackendFileStat,
|
.storageFileStat = virStorageFileBackendFileStat,
|
||||||
.storageFileReadHeader = virStorageFileBackendFileReadHeader,
|
.storageFileReadHeader = virStorageFileBackendFileReadHeader,
|
||||||
|
@ -633,6 +633,20 @@ virStorageFileBackendGlusterInit(virStorageSourcePtr src)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
virStorageFileBackendGlusterCreate(virStorageSourcePtr src)
|
||||||
|
{
|
||||||
|
virStorageFileBackendGlusterPrivPtr priv = src->drv->priv;
|
||||||
|
glfs_fd_t *fd = NULL;
|
||||||
|
|
||||||
|
if (!(fd = glfs_open(priv->vol, src->path, O_CREAT | O_TRUNC | O_WRONLY)))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
ignore_value(glfs_close(fd));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageFileBackendGlusterUnlink(virStorageSourcePtr src)
|
virStorageFileBackendGlusterUnlink(virStorageSourcePtr src)
|
||||||
{
|
{
|
||||||
@ -780,6 +794,7 @@ virStorageFileBackend virStorageFileBackendGluster = {
|
|||||||
.backendInit = virStorageFileBackendGlusterInit,
|
.backendInit = virStorageFileBackendGlusterInit,
|
||||||
.backendDeinit = virStorageFileBackendGlusterDeinit,
|
.backendDeinit = virStorageFileBackendGlusterDeinit,
|
||||||
|
|
||||||
|
.storageFileCreate = virStorageFileBackendGlusterCreate,
|
||||||
.storageFileUnlink = virStorageFileBackendGlusterUnlink,
|
.storageFileUnlink = virStorageFileBackendGlusterUnlink,
|
||||||
.storageFileStat = virStorageFileBackendGlusterStat,
|
.storageFileStat = virStorageFileBackendGlusterStat,
|
||||||
.storageFileReadHeader = virStorageFileBackendGlusterReadHeader,
|
.storageFileReadHeader = virStorageFileBackendGlusterReadHeader,
|
||||||
|
Loading…
Reference in New Issue
Block a user