The API isn't used any more.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
virStorageSourceGetMetadataFromBuf;
virStorageSourceGetMetadataFromFD;
virStorageSourceGetRelativeBackingPath;
-virStorageSourceGetUniqueIdentifier;
virStorageSourceInit;
virStorageSourceInitAs;
virStorageSourceNewFromBacking;
size_t len,
char **buf);
-typedef const char *
-(*virStorageFileBackendGetUniqueIdentifier)(virStorageSourcePtr src);
-
typedef int
(*virStorageFileBackendAccess)(virStorageSourcePtr src,
int mode);
virStorageFileBackendInit backendInit;
virStorageFileBackendDeinit backendDeinit;
virStorageFileBackendRead storageFileRead;
- virStorageFileBackendGetUniqueIdentifier storageFileGetUniqueIdentifier;
/* The following group of callbacks is expected to set errno
* and return -1 on error. No libvirt error shall be reported */
}
-static const char *
-virStorageFileBackendFileGetUniqueIdentifier(virStorageSourcePtr src)
-{
- virStorageDriverDataPtr drv = src->drv;
- virStorageFileBackendFsPrivPtr priv = drv->priv;
-
- if (!priv->canonpath) {
- if (!(priv->canonpath = virFileCanonicalizePath(src->path))) {
- virReportSystemError(errno, _("can't canonicalize path '%s'"),
- src->path);
- return NULL;
- }
- }
-
- return priv->canonpath;
-}
-
-
static int
virStorageFileBackendFileAccess(virStorageSourcePtr src,
int mode)
.storageFileRead = virStorageFileBackendFileRead,
.storageFileAccess = virStorageFileBackendFileAccess,
.storageFileChown = virStorageFileBackendFileChown,
-
- .storageFileGetUniqueIdentifier = virStorageFileBackendFileGetUniqueIdentifier,
};
.storageFileRead = virStorageFileBackendFileRead,
.storageFileAccess = virStorageFileBackendFileAccess,
.storageFileChown = virStorageFileBackendFileChown,
-
- .storageFileGetUniqueIdentifier = virStorageFileBackendFileGetUniqueIdentifier,
};
.storageFileAccess = virStorageFileBackendFileAccess,
.storageFileChown = virStorageFileBackendFileChown,
-
- .storageFileGetUniqueIdentifier = virStorageFileBackendFileGetUniqueIdentifier,
};
return glfs_access(priv->vol, src->path, mode);
}
-static int
-virStorageFileBackendGlusterReadlinkCallback(const char *path,
- char **linkpath,
- void *data)
-{
- virStorageFileBackendGlusterPrivPtr priv = data;
- size_t bufsiz = 0;
- ssize_t ret;
- struct stat st;
- g_autofree char *buf = NULL;
-
- *linkpath = NULL;
-
- if (glfs_stat(priv->vol, path, &st) < 0) {
- virReportSystemError(errno,
- _("failed to stat gluster path '%s'"),
- path);
- return -1;
- }
-
- if (!S_ISLNK(st.st_mode))
- return 1;
-
- realloc:
- VIR_EXPAND_N(buf, bufsiz, 256);
-
- if ((ret = glfs_readlink(priv->vol, path, buf, bufsiz)) < 0) {
- virReportSystemError(errno,
- _("failed to read link of gluster file '%s'"),
- path);
- return -1;
- }
-
- if (ret == bufsiz)
- goto realloc;
-
- buf[ret] = '\0';
-
- *linkpath = g_steal_pointer(&buf);
-
- return 0;
-}
-
-
-static const char *
-virStorageFileBackendGlusterGetUniqueIdentifier(virStorageSourcePtr src)
-{
- virStorageDriverDataPtr drv = src->drv;
- virStorageFileBackendGlusterPrivPtr priv = drv->priv;
- g_autofree char *filePath = NULL;
-
- if (priv->canonpath)
- return priv->canonpath;
-
- if (!(filePath = virStorageFileCanonicalizePath(src->path,
- virStorageFileBackendGlusterReadlinkCallback,
- priv)))
- return NULL;
-
- priv->canonpath = g_strdup_printf("gluster://%s:%u/%s/%s",
- src->hosts->name,
- src->hosts->port,
- src->volume,
- filePath);
-
- return priv->canonpath;
-}
-
-
static int
virStorageFileBackendGlusterChown(const virStorageSource *src,
uid_t uid,
.storageFileRead = virStorageFileBackendGlusterRead,
.storageFileAccess = virStorageFileBackendGlusterAccess,
.storageFileChown = virStorageFileBackendGlusterChown,
-
- .storageFileGetUniqueIdentifier = virStorageFileBackendGlusterGetUniqueIdentifier,
};
if ((rv = virStorageSourceGetBackendForSupportCheck(src, &backend)) < 1)
return rv;
- return backend->storageFileGetUniqueIdentifier &&
- backend->storageFileRead &&
+ return backend->storageFileRead &&
backend->storageFileAccess ? 1 : 0;
}
}
-/*
- * virStorageSourceGetUniqueIdentifier: Get a unique string describing the volume
- *
- * @src: file structure pointing to the file
- *
- * Returns a string uniquely describing a single volume (canonical path).
- * The string shall not be freed and is valid until the storage file is
- * deinitialized. Returns NULL on error and sets a libvirt error code */
-const char *
-virStorageSourceGetUniqueIdentifier(virStorageSourcePtr src)
-{
- virStorageDriverDataPtr drv = NULL;
-
- if (!virStorageSourceIsInitialized(src)) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("storage file backend not initialized"));
- return NULL;
- }
-
- drv = src->drv;
-
- if (!drv->backend->storageFileGetUniqueIdentifier) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("unique storage file identifier not implemented for "
- "storage type %s (protocol: %s)'"),
- virStorageTypeToString(src->type),
- virStorageNetProtocolTypeToString(src->protocol));
- return NULL;
- }
-
- return drv->backend->storageFileGetUniqueIdentifier(src);
-}
-
-
/**
* virStorageSourceAccess: Check accessibility of a storage file
*
size_t len,
char **buf);
-const char *
-virStorageSourceGetUniqueIdentifier(virStorageSourcePtr src);
-
int
virStorageSourceAccess(virStorageSourcePtr src,
int mode);