summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPranith Kumar K <pranithk@gluster.com>2010-08-30 01:16:05 +0000
committerVijay Bellur <vijay@dev.gluster.com>2010-08-30 02:52:19 -0700
commit27f39a7c9d10e836295ae4ad1a88d1f0a911079f (patch)
tree5c871ace1a6fd1c608eb5175d2a5e64abb3378e5
parenta2dd1e8702eb8dc7234d8262e34182adf1f0573c (diff)
mgmt/glusterd: remove volfile, brick file upon remove-brick
Signed-off-by: Pranith Kumar K <pranithk@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 1475 (glusterd should delete brick related files upon remove brick) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1475
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-op-sm.c2
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-store.h3
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-volgen.c19
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-volgen.h4
4 files changed, 28 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c
index cb8acbeb7..20a57660d 100644
--- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c
+++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c
@@ -1917,6 +1917,8 @@ glusterd_op_remove_brick (gd1_mgmt_stage_op_req *req)
mybrick++;
}
+ glusterd_delete_volfile (volinfo, brickinfo);
+ glusterd_store_delete_brick (volinfo, brickinfo);
glusterd_brickinfo_delete (brickinfo);
volinfo->brick_count--;
diff --git a/xlators/mgmt/glusterd/src/glusterd-store.h b/xlators/mgmt/glusterd/src/glusterd-store.h
index 10fb4a3af..29caa899f 100644
--- a/xlators/mgmt/glusterd/src/glusterd-store.h
+++ b/xlators/mgmt/glusterd/src/glusterd-store.h
@@ -100,5 +100,8 @@ int32_t
glusterd_store_delete_peerinfo (glusterd_peerinfo_t *peerinfo);
int32_t
+glusterd_store_delete_brick (glusterd_volinfo_t *volinfo,
+ glusterd_brickinfo_t *brickinfo);
+int32_t
glusterd_restore ();
#endif
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c
index 4a8bc6d78..b8f2cb99a 100644
--- a/xlators/mgmt/glusterd/src/glusterd-volgen.c
+++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c
@@ -1688,3 +1688,22 @@ glusterd_create_volfiles (glusterd_volinfo_t *volinfo)
out:
return ret;
}
+
+int
+glusterd_delete_volfile (glusterd_volinfo_t *volinfo,
+ glusterd_brickinfo_t *brickinfo)
+{
+ char *filename = NULL;
+
+ GF_ASSERT (volinfo);
+ GF_ASSERT (brickinfo);
+
+ filename = get_brick_filename (volinfo, brickinfo);
+
+ if (filename)
+ unlink (filename);
+
+ if (filename)
+ GF_FREE (filename);
+ return 0;
+}
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.h b/xlators/mgmt/glusterd/src/glusterd-volgen.h
index 24823d598..0ec8cc769 100644
--- a/xlators/mgmt/glusterd/src/glusterd-volgen.h
+++ b/xlators/mgmt/glusterd/src/glusterd-volgen.h
@@ -123,6 +123,10 @@
int
glusterd_create_volfiles (glusterd_volinfo_t *volinfo);
+int
+glusterd_delete_volfile (glusterd_volinfo_t *volinfo,
+ glusterd_brickinfo_t *brickinfo);
+
int32_t
glusterd_default_xlator_options (glusterd_volinfo_t *volinfo);