From 27f39a7c9d10e836295ae4ad1a88d1f0a911079f Mon Sep 17 00:00:00 2001 From: Pranith Kumar K Date: Mon, 30 Aug 2010 01:16:05 +0000 Subject: mgmt/glusterd: remove volfile, brick file upon remove-brick Signed-off-by: Pranith Kumar K Signed-off-by: Vijay Bellur BUG: 1475 (glusterd should delete brick related files upon remove brick) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1475 --- xlators/mgmt/glusterd/src/glusterd-op-sm.c | 2 ++ xlators/mgmt/glusterd/src/glusterd-store.h | 3 +++ xlators/mgmt/glusterd/src/glusterd-volgen.c | 19 +++++++++++++++++++ xlators/mgmt/glusterd/src/glusterd-volgen.h | 4 ++++ 4 files changed, 28 insertions(+) (limited to 'xlators/mgmt/glusterd') diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c index cb8acbeb798..20a57660d0f 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 10fb4a3af01..29caa899f0a 100644 --- a/xlators/mgmt/glusterd/src/glusterd-store.h +++ b/xlators/mgmt/glusterd/src/glusterd-store.h @@ -99,6 +99,9 @@ glusterd_store_update_peerinfo (glusterd_peerinfo_t *peerinfo); 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 4a8bc6d78a8..b8f2cb99ac1 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 24823d59828..0ec8cc7691d 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); -- cgit