On 05/28/14 03:53, Eric Blake wrote:
On 05/26/2014 03:27 AM, Peter Krempa wrote:
> On 05/23/14 18:38, Eric Blake wrote:
>> On 05/22/2014 07:47 AM, Peter Krempa wrote:
>>> My future work will modify the metadata crawler function to use the
>>> storage driver file APIs to access the files instead of accessing them
>>> directly so that we will be able to request the metadata for remote
>>> files too. To avoid linking the storage driver to every helper file
>>> using the utils code, the backing chain traversal function needs to be
>>> moved to the storage driver source.
>>>
>>> src/storage/storage_driver.c | 233
++++++++++++++++++++++++++++++++++++++++++
>>> src/storage/storage_driver.h | 5 +
>>> src/util/virstoragefile.c | 233
+-----------------------------------------
>>> virStorageFileGetMetadataFromFDInternal(virStorageSourcePtr meta,
>>> int fd,
>>> int *backingFormat)
>>
>> It's a bit confusing that we now have virStorageFile* functions spread
>> across two different files; maybe a later patch should rename the
>> storage_driver.h functions to have a different prefix?
>>
>
> We definitely can address this later. Any suggestions on the name of the
> moved code?
virStorageDriverFoo? It's slightly longer, so might cause long lines,
but seems reasonable for the file name.
And what about the functions to access storage files via the storage
driver? they are called virStorageFileFoo but reside in the storage
driver too. Should I change those too?
Peter
src/storage/storage_driver.h:
int virStorageFileInit(virStorageSourcePtr src);
int virStorageFileInitAs(virStorageSourcePtr src,
uid_t uid, gid_t gid);
void virStorageFileDeinit(virStorageSourcePtr src);
int virStorageFileCreate(virStorageSourcePtr src);
int virStorageFileUnlink(virStorageSourcePtr src);
int virStorageFileStat(virStorageSourcePtr src,
struct stat *stat);
ssize_t virStorageFileReadHeader(virStorageSourcePtr src,
ssize_t max_len,
char **buf);
const char *virStorageFileGetUniqueIdentifier(virStorageSourcePtr src);
int virStorageFileAccess(virStorageSourcePtr src, int mode);
int virStorageFileGetMetadata(virStorageSourcePtr src,
uid_t uid, gid_t gid,
bool allow_probe)
ATTRIBUTE_NONNULL(1);