From 9f570a3967c0a4ebbe35a04284181406faf8fe36 Mon Sep 17 00:00:00 2001 From: Prasanna Kumar Kalever Date: Wed, 8 Feb 2017 21:18:20 +0530 Subject: gluster-block: create block files in '/block-store' dir MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit till now we have '/block-meta' dir for meta files and actual block files used to reside in '/' dir. From now, lets place block files in '/block-store' So, this is how it looks like: $ tree /mnt/ /mnt/ ├── block-meta │   ├── meta.lock │   └── TARGET └── block-store └── 103e4cf1-bf41-404a-9fe1-b7c70fc33b3e Signed-off-by: Prasanna Kumar Kalever --- rpc/glfs-operations.c | 72 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 62 insertions(+), 10 deletions(-) (limited to 'rpc/glfs-operations.c') diff --git a/rpc/glfs-operations.c b/rpc/glfs-operations.c index 0e3787c..4a7e081 100644 --- a/rpc/glfs-operations.c +++ b/rpc/glfs-operations.c @@ -12,9 +12,6 @@ # include "common.h" # include "glfs-operations.h" -# define METADIR "/block-meta" -# define TXLOCKFILE "meta.lock" - struct glfs * @@ -67,9 +64,23 @@ glusterBlockCreateEntry(struct glfs *glfs, char *gbid) { struct glfs_fd *tgfd; - int ret = -1; + int ret; + ret = glfs_mkdir (glfs, GB_STOREDIR, 0); + if (ret && errno != EEXIST) { + LOG("gfapi", GB_LOG_ERROR, "glfs_mkdir(%s) on volume %s failed[%s]", + GB_STOREDIR, blk->volume, strerror(errno)); + goto out; + } + + ret = glfs_chdir (glfs, GB_STOREDIR); + if (ret) { + LOG("gfapi", GB_LOG_ERROR, "glfs_chdir(%s) on volume %s failed[%s]", + GB_STOREDIR, blk->volume, strerror(errno)); + goto out; + } + tgfd = glfs_creat(glfs, gbid, O_WRONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); @@ -103,12 +114,20 @@ glusterBlockDeleteEntry(struct glfs *glfs, char *volume, char *gbid) int ret; + ret = glfs_chdir (glfs, GB_STOREDIR); + if (ret) { + LOG("gfapi", GB_LOG_ERROR, "glfs_chdir(%s) on volume %s failed[%s]", + GB_STOREDIR, volume, strerror(errno)); + goto out; + } + ret = glfs_unlink(glfs, gbid); if (ret) { LOG("gfapi", GB_LOG_ERROR, "glfs_unlink(%s) on volume %s failed[%s]", gbid, volume, strerror(errno)); } + out: return ret; } @@ -120,24 +139,24 @@ glusterBlockCreateMetaLockFile(struct glfs *glfs, char *volume) int ret; - ret = glfs_mkdir (glfs, METADIR, 0); + ret = glfs_mkdir (glfs, GB_METADIR, 0); if (ret && errno != EEXIST) { LOG("gfapi", GB_LOG_ERROR, "glfs_mkdir(%s) on volume %s failed[%s]", - METADIR, volume, strerror(errno)); + GB_METADIR, volume, strerror(errno)); goto out; } - ret = glfs_chdir (glfs, METADIR); + ret = glfs_chdir (glfs, GB_METADIR); if (ret) { LOG("gfapi", GB_LOG_ERROR, "glfs_chdir(%s) on volume %s failed[%s]", - METADIR, volume, strerror(errno)); + GB_METADIR, volume, strerror(errno)); goto out; } - lkfd = glfs_creat(glfs, TXLOCKFILE, O_RDWR, S_IRUSR | S_IWUSR); + lkfd = glfs_creat(glfs, GB_TXLOCKFILE, O_RDWR, S_IRUSR | S_IWUSR); if (!lkfd) { LOG("gfapi", GB_LOG_ERROR, "glfs_creat(%s) on volume %s failed[%s]", - TXLOCKFILE, volume, strerror(errno)); + GB_TXLOCKFILE, volume, strerror(errno)); goto out; } @@ -147,6 +166,31 @@ glusterBlockCreateMetaLockFile(struct glfs *glfs, char *volume) return NULL; } +int +glusterBlockDeleteMetaLockFile(struct glfs *glfs, + char *volume, char *blockname) +{ + int ret; + + + ret = glfs_chdir (glfs, GB_METADIR); + if (ret) { + LOG("gfapi", GB_LOG_ERROR, "glfs_chdir(%s) on volume %s failed[%s]", + GB_METADIR, volume, strerror(errno)); + goto out; + } + + ret = glfs_unlink(glfs, blockname); + if (ret && errno != ENOENT) { + LOG("gfapi", GB_LOG_ERROR, "glfs_unlink(%s) on volume %s failed[%s]", + blockname, volume, strerror(errno)); + goto out; + } + + out: + return ret; +} + void blockFreeMetaInfo(MetaInfo *info) @@ -232,7 +276,15 @@ blockGetMetaInfo(struct glfs* glfs, char* metafile, MetaInfo *info) struct glfs_fd *tgmfd; char line[1024]; char *tmp; + int ret; + + ret = glfs_chdir (glfs, GB_METADIR); + if (ret) { + LOG("gfapi", GB_LOG_ERROR, "glfs_chdir(%s) on volume %s failed[%s]", + GB_METADIR, info->volume, strerror(errno)); + return ret; + } tgmfd = glfs_open(glfs, metafile, O_RDONLY); if (!tgmfd) { -- cgit