mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00: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
|
||||
virStorageFileBackendFileUnlink(virStorageSourcePtr src)
|
||||
{
|
||||
@ -1470,6 +1486,7 @@ virStorageFileBackend virStorageFileBackendFile = {
|
||||
.backendInit = virStorageFileBackendFileInit,
|
||||
.backendDeinit = virStorageFileBackendFileDeinit,
|
||||
|
||||
.storageFileCreate = virStorageFileBackendFileCreate,
|
||||
.storageFileUnlink = virStorageFileBackendFileUnlink,
|
||||
.storageFileStat = virStorageFileBackendFileStat,
|
||||
.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
|
||||
virStorageFileBackendGlusterUnlink(virStorageSourcePtr src)
|
||||
{
|
||||
@ -780,6 +794,7 @@ virStorageFileBackend virStorageFileBackendGluster = {
|
||||
.backendInit = virStorageFileBackendGlusterInit,
|
||||
.backendDeinit = virStorageFileBackendGlusterDeinit,
|
||||
|
||||
.storageFileCreate = virStorageFileBackendGlusterCreate,
|
||||
.storageFileUnlink = virStorageFileBackendGlusterUnlink,
|
||||
.storageFileStat = virStorageFileBackendGlusterStat,
|
||||
.storageFileReadHeader = virStorageFileBackendGlusterReadHeader,
|
||||
|
Loading…
x
Reference in New Issue
Block a user