geom_virstor: Remove wholly unnecessary g_metadata_store copy
Just code cleanup. No functional change. Sponsored by: Dell EMC Isilon
This commit is contained in:
parent
0bd816f211
commit
985f4b3eb5
@ -140,62 +140,6 @@ virstor_main(struct gctl_req *req, unsigned flags)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
pathgen(const char *name, char *path, size_t size)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (strncmp(name, _PATH_DEV, sizeof(_PATH_DEV) - 1) != 0)
|
|
||||||
snprintf(path, size, "%s%s", _PATH_DEV, name);
|
|
||||||
else
|
|
||||||
strlcpy(path, name, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
my_g_metadata_store(const char *name, u_char *md, size_t size)
|
|
||||||
{
|
|
||||||
char path[MAXPATHLEN];
|
|
||||||
unsigned sectorsize;
|
|
||||||
off_t mediasize;
|
|
||||||
u_char *sector;
|
|
||||||
int error, fd;
|
|
||||||
|
|
||||||
pathgen(name, path, sizeof(path));
|
|
||||||
sector = NULL;
|
|
||||||
error = 0;
|
|
||||||
|
|
||||||
fd = open(path, O_RDWR);
|
|
||||||
if (fd == -1)
|
|
||||||
return (errno);
|
|
||||||
mediasize = g_get_mediasize(name);
|
|
||||||
if (mediasize == 0) {
|
|
||||||
error = errno;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
sectorsize = g_get_sectorsize(name);
|
|
||||||
if (sectorsize == 0) {
|
|
||||||
error = errno;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
assert(sectorsize >= size);
|
|
||||||
sector = malloc(sectorsize);
|
|
||||||
if (sector == NULL) {
|
|
||||||
error = ENOMEM;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
bcopy(md, sector, size);
|
|
||||||
bzero(sector + size, sectorsize - size);
|
|
||||||
if (pwrite(fd, sector, sectorsize, mediasize - sectorsize) !=
|
|
||||||
(ssize_t)sectorsize) {
|
|
||||||
error = errno;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
out:
|
|
||||||
if (sector != NULL)
|
|
||||||
free(sector);
|
|
||||||
close(fd);
|
|
||||||
return (error);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Labels a new geom Meaning: parses and checks the parameters, calculates &
|
* Labels a new geom Meaning: parses and checks the parameters, calculates &
|
||||||
* writes metadata to the relevant providers so when the next round of
|
* writes metadata to the relevant providers so when the next round of
|
||||||
@ -465,7 +409,7 @@ virstor_label(struct gctl_req *req)
|
|||||||
err(1, "Cannot allocate sector of %zu bytes", ssize);
|
err(1, "Cannot allocate sector of %zu bytes", ssize);
|
||||||
bzero(sect, ssize);
|
bzero(sect, ssize);
|
||||||
virstor_metadata_encode(&md, sect);
|
virstor_metadata_encode(&md, sect);
|
||||||
error = my_g_metadata_store(name, sect, ssize);
|
error = g_metadata_store(name, sect, ssize);
|
||||||
free(sect);
|
free(sect);
|
||||||
if (error != 0) {
|
if (error != 0) {
|
||||||
if (verbose)
|
if (verbose)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user