Mercurial > nomad > experimental
changeset 659:5ab6a21b3506
objstore/posix: rely on generic code's vdev private data allocation
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Sat, 02 Mar 2019 20:20:31 -0500 |
parents | 6c8f926b1136 |
children | ec184641e021 |
files | src/objstore/posix/main.c |
diffstat | 1 files changed, 5 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/src/objstore/posix/main.c Sat Mar 02 20:27:03 2019 -0500 +++ b/src/objstore/posix/main.c Sat Mar 02 20:20:31 2019 -0500 @@ -78,30 +78,19 @@ static int posix_create_vdev(struct objstore_vdev *vdev) { - struct posix_vdev *pvdev; + struct posix_vdev *pvdev = vdev->private; int ret; cmn_err(CE_WARN, "The POSIX objstore backend is still experimental"); cmn_err(CE_WARN, "Do not expect compatibility from version to version"); - pvdev = malloc(sizeof(struct posix_vdev)); - if (!pvdev) - return -ENOMEM; - pvdev->vdev = vdev; ret = __create_vdev(pvdev); if (ret) - goto err; - - vdev->private = pvdev; + return ret; return 0; - -err: - free(pvdev); - - return ret; } static int __create_root_dir_ver_dirent(struct posix_vol *pvol, int verfd, @@ -382,34 +371,24 @@ static int posix_import_vdev(struct objstore_vdev *vdev, struct xuuid **vols) { - struct posix_vdev *pvdev; + struct posix_vdev *pvdev = vdev->private; int ret; cmn_err(CE_WARN, "The POSIX objstore backend is still experimental"); cmn_err(CE_WARN, "Do not expect compatibility from version to version"); - pvdev = malloc(sizeof(struct posix_vdev)); - if (!pvdev) - return -ENOMEM; - pvdev->vdev = vdev; ret = __import_vdev(pvdev); if (ret) - goto err; - - vdev->private = pvdev; + return ret; return 0; - -err: - free(pvdev); - - return ret; } const struct objstore_vdev_def objvdev = { .name = "posix", + .vdev_private_size = sizeof(struct posix_vdev), .create_vdev = posix_create_vdev, .import_vdev = posix_import_vdev,