public inbox for cluster-cvs@sourceware.org help / color / mirror / Atom feed
From: Jonathan Brassow <jbrassow@fedoraproject.org> To: cluster-cvs-relay@redhat.com Subject: RHEL5 - dm-log-clustered/clogd: Adapt to changes in kernel API Date: Tue, 16 Sep 2008 14:36:00 -0000 [thread overview] Message-ID: <20080916140713.82E481203F4@lists.fedorahosted.org> (raw) Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=4b33d439abef45a120c1a4f471fadea9978ef086 Commit: 4b33d439abef45a120c1a4f471fadea9978ef086 Parent: 29e706dc8f469f3cdac13b39dbcedba604d336d9 Author: Jonathan Brassow <jbrassow@redhat.com> AuthorDate: Tue Sep 16 09:05:56 2008 -0500 Committer: Jonathan Brassow <jbrassow@redhat.com> CommitterDate: Tue Sep 16 09:06:53 2008 -0500 dm-log-clustered/clogd: Adapt to changes in kernel API The device-mapper logging APIs have now been exposed. The names of the structures and functions changed a bit when this happpened. This check-in simply adapts to that. --- cmirror-kernel/src/Makefile | 3 -- cmirror-kernel/src/dm-clog.c | 56 +++++++++++++++++++++-------------------- cmirror/src/cluster.c | 22 ++++++++-------- 3 files changed, 40 insertions(+), 41 deletions(-) diff --git a/cmirror-kernel/src/Makefile b/cmirror-kernel/src/Makefile index dc7b6dc..c6bc6b0 100644 --- a/cmirror-kernel/src/Makefile +++ b/cmirror-kernel/src/Makefile @@ -26,9 +26,6 @@ dm-log-clustered-objs := dm-clog.o \ EXTRA_CFLAGS += -I$(obj) -Idrivers/md all: - rm -f dm.h dm-log.h - if [ ! -e ${KERNEL_SRC}/drivers/md/dm.h ]; then ln -s dm.h-copy dm.h; fi - if [ ! -e ${KERNEL_SRC}/drivers/md/dm-log.h ]; then ln -s dm-log.h-copy dm-log.h; fi ${MAKE} -C ${KERNEL_SRC} M=${PWD} modules USING_KBUILD=yes install: all diff --git a/cmirror-kernel/src/dm-clog.c b/cmirror-kernel/src/dm-clog.c index 62ad414..fe14894 100644 --- a/cmirror-kernel/src/dm-clog.c +++ b/cmirror-kernel/src/dm-clog.c @@ -4,8 +4,10 @@ * This file is released under the LGPL. */ +#include <linux/bio.h> +#include <linux/dm-dirty-log.h> + #include "dm.h" -#include "dm-log.h" #include "dm-clog-tfr.h" struct flush_entry { @@ -88,7 +90,7 @@ retry: return -ESRCH; } -static int cluster_ctr(struct dirty_log *log, struct dm_target *ti, +static int cluster_ctr(struct dm_dirty_log *log, struct dm_target *ti, unsigned int argc, char **argv, struct dm_dev *disk_log) { @@ -173,7 +175,7 @@ static int cluster_ctr(struct dirty_log *log, struct dm_target *ti, * * Returns: 0 on success, -XXX on failure */ -static int cluster_core_ctr(struct dirty_log *log, struct dm_target *ti, +static int cluster_core_ctr(struct dm_dirty_log *log, struct dm_target *ti, unsigned int argc, char **argv) { int i, r; @@ -204,7 +206,7 @@ static int cluster_core_ctr(struct dirty_log *log, struct dm_target *ti, * * Returns: 0 on success, -XXX on failure */ -static int cluster_disk_ctr(struct dirty_log *log, struct dm_target *ti, +static int cluster_disk_ctr(struct dm_dirty_log *log, struct dm_target *ti, unsigned int argc, char **argv) { int r, i; @@ -234,7 +236,7 @@ static int cluster_disk_ctr(struct dirty_log *log, struct dm_target *ti, * cluster_dtr * @log */ -static void cluster_dtr(struct dirty_log *log) +static void cluster_dtr(struct dm_dirty_log *log) { int r; struct log_c *lc = (struct log_c *)log->context; @@ -256,7 +258,7 @@ static void cluster_dtr(struct dirty_log *log) * cluster_presuspend * @log */ -static int cluster_presuspend(struct dirty_log *log) +static int cluster_presuspend(struct dm_dirty_log *log) { int r; struct log_c *lc = (struct log_c *)log->context; @@ -272,7 +274,7 @@ static int cluster_presuspend(struct dirty_log *log) * cluster_postsuspend * @log */ -static int cluster_postsuspend(struct dirty_log *log) +static int cluster_postsuspend(struct dm_dirty_log *log) { int r; struct log_c *lc = (struct log_c *)log->context; @@ -288,7 +290,7 @@ static int cluster_postsuspend(struct dirty_log *log) * cluster_resume * @log */ -static int cluster_resume(struct dirty_log *log) +static int cluster_resume(struct dm_dirty_log *log) { int r; struct log_c *lc = (struct log_c *)log->context; @@ -309,7 +311,7 @@ static int cluster_resume(struct dirty_log *log) * * Returns: region size (doesn't fail) */ -static uint32_t cluster_get_region_size(struct dirty_log *log) +static uint32_t cluster_get_region_size(struct dm_dirty_log *log) { struct log_c *lc = (struct log_c *)log->context; @@ -326,7 +328,7 @@ static uint32_t cluster_get_region_size(struct dirty_log *log) * * Returns: 1 if clean, 0 otherwise */ -static int cluster_is_clean(struct dirty_log *log, region_t region) +static int cluster_is_clean(struct dm_dirty_log *log, region_t region) { int r; int is_clean; @@ -353,7 +355,7 @@ static int cluster_is_clean(struct dirty_log *log, region_t region) * * Returns: 1 if in-sync, 0 if not-in-sync, -EWOULDBLOCK */ -static int cluster_in_sync(struct dirty_log *log, region_t region, int can_block) +static int cluster_in_sync(struct dm_dirty_log *log, region_t region, int can_block) { int r; int in_sync; @@ -401,7 +403,7 @@ static int cluster_in_sync(struct dirty_log *log, region_t region, int can_block * * Returns: 0 on success, < 0 on failure */ -static int cluster_flush(struct dirty_log *log) +static int cluster_flush(struct dm_dirty_log *log) { int r = 0; int flags; @@ -460,7 +462,7 @@ fail: * This function should avoid blocking unless absolutely required. * (Memory allocation is valid for blocking.) */ -static void cluster_mark_region(struct dirty_log *log, region_t region) +static void cluster_mark_region(struct dm_dirty_log *log, region_t region) { int flags; struct log_c *lc = (struct log_c *)log->context; @@ -491,7 +493,7 @@ static void cluster_mark_region(struct dirty_log *log, region_t region) * the region will be re-sync'ed on a reload of the mirror * even though it is in-sync. */ -static void cluster_clear_region(struct dirty_log *log, region_t region) +static void cluster_clear_region(struct dm_dirty_log *log, region_t region) { int flags; struct log_c *lc = (struct log_c *)log->context; @@ -528,7 +530,7 @@ static void cluster_clear_region(struct dirty_log *log, region_t region) * * Returns: 1 if region filled, 0 if no work, <0 on error */ -static int cluster_get_resync_work(struct dirty_log *log, region_t *region) +static int cluster_get_resync_work(struct dm_dirty_log *log, region_t *region) { int r; int rdata_size; @@ -556,7 +558,7 @@ static int cluster_get_resync_work(struct dirty_log *log, region_t *region) * Set the sync status of a given region. This function * must not fail. */ -static void cluster_set_region_sync(struct dirty_log *log, +static void cluster_set_region_sync(struct dm_dirty_log *log, region_t region, int in_sync) { int r; @@ -583,7 +585,7 @@ static void cluster_set_region_sync(struct dirty_log *log, * * Returns: sync count on success, 0 on failure */ -static region_t cluster_get_sync_count(struct dirty_log *log) +static region_t cluster_get_sync_count(struct dm_dirty_log *log) { int r; int rdata_size; @@ -619,7 +621,7 @@ static region_t cluster_get_sync_count(struct dirty_log *log) * * Returns: amount of space consumed */ -static int cluster_status(struct dirty_log *log, status_type_t status_type, +static int cluster_status(struct dm_dirty_log *log, status_type_t status_type, char *result, unsigned int maxlen) { int r = 0; @@ -645,13 +647,13 @@ static int cluster_status(struct dirty_log *log, status_type_t status_type, return (r) ? 0: sz; } -static int cluster_get_failure_response(struct dirty_log *log) +static int cluster_get_failure_response(struct dm_dirty_log *log) { /* This type of return is not an option */ return DMLOG_IOERR_BLOCK; } -static int cluster_is_remote_recovering(struct dirty_log *log, region_t region) +static int cluster_is_remote_recovering(struct dm_dirty_log *log, region_t region) { int r; struct log_c *lc = (struct log_c *)log->context; @@ -683,7 +685,7 @@ static int cluster_is_remote_recovering(struct dirty_log *log, region_t region) return pkg.is_recovering; } -static struct dirty_log_type _clustered_core_type = { +static struct dm_dirty_log_type _clustered_core_type = { .name = "clustered-core", .module = THIS_MODULE, .ctr = cluster_core_ctr, @@ -705,7 +707,7 @@ static struct dirty_log_type _clustered_core_type = { .is_remote_recovering = cluster_is_remote_recovering, }; -static struct dirty_log_type _clustered_disk_type = { +static struct dm_dirty_log_type _clustered_disk_type = { .name = "clustered-disk", .module = THIS_MODULE, .ctr = cluster_disk_ctr, @@ -746,7 +748,7 @@ static int __init cluster_dirty_log_init(void) return r; } - r = dm_register_dirty_log_type(&_clustered_core_type); + r = dm_dirty_log_type_register(&_clustered_core_type); if (r) { DMWARN("Couldn't register clustered-core dirty log type"); dm_clog_tfr_exit(); @@ -754,10 +756,10 @@ static int __init cluster_dirty_log_init(void) return r; } - r = dm_register_dirty_log_type(&_clustered_disk_type); + r = dm_dirty_log_type_register(&_clustered_disk_type); if (r) { DMWARN("Couldn't register clustered-disk dirty log type"); - dm_unregister_dirty_log_type(&_clustered_core_type); + dm_dirty_log_type_unregister(&_clustered_core_type); dm_clog_tfr_exit(); mempool_destroy(flush_entry_pool); return r; @@ -769,8 +771,8 @@ static int __init cluster_dirty_log_init(void) static void __exit cluster_dirty_log_exit(void) { - dm_unregister_dirty_log_type(&_clustered_disk_type); - dm_unregister_dirty_log_type(&_clustered_core_type); + dm_dirty_log_type_unregister(&_clustered_disk_type); + dm_dirty_log_type_unregister(&_clustered_core_type); dm_clog_tfr_exit(); mempool_destroy(flush_entry_pool); DMINFO("(built %s %s) removed", __DATE__, __TIME__); diff --git a/cmirror/src/cluster.c b/cmirror/src/cluster.c index be8a5b9..3ac4f87 100644 --- a/cmirror/src/cluster.c +++ b/cmirror/src/cluster.c @@ -139,7 +139,7 @@ int cluster_send(struct clog_tfr *tfr) r = cpg_mcast_joined(entry->handle, CPG_TYPE_AGREED, &iov, 1); if ((r != SA_AIS_ERR_TRY_AGAIN) || (count++ > 5)) break; - sleep(1); + usleep(1000); } while (1); if (r == CPG_OK) @@ -380,7 +380,7 @@ open_retry: rv = saCkptCheckpointOpen(ckpt_handle, &name, &attr, flags, 0, &h); if (rv == SA_AIS_ERR_TRY_AGAIN) { LOG_ERROR("export_checkpoint: ckpt open retry"); - sleep(1); + usleep(1000); goto open_retry; } @@ -409,7 +409,7 @@ sync_create_retry: cp->sync_bits, cp->bitmap_size); if (rv == SA_AIS_ERR_TRY_AGAIN) { LOG_ERROR("Sync checkpoint section create retry"); - sleep(1); + usleep(1000); goto sync_create_retry; } @@ -438,7 +438,7 @@ clean_create_retry: rv = saCkptSectionCreate(h, §ion_attr, cp->clean_bits, cp->bitmap_size); if (rv == SA_AIS_ERR_TRY_AGAIN) { LOG_ERROR("Clean checkpoint section create retry"); - sleep(1); + usleep(1000); goto clean_create_retry; } @@ -468,7 +468,7 @@ rr_create_retry: strlen(cp->recovering_region) + 1); if (rv == SA_AIS_ERR_TRY_AGAIN) { LOG_ERROR("RR checkpoint section create retry"); - sleep(1); + usleep(1000); goto rr_create_retry; } @@ -541,7 +541,7 @@ open_retry: SA_CKPT_CHECKPOINT_READ, 0, &h); if (rv == SA_AIS_ERR_TRY_AGAIN) { LOG_ERROR("import_checkpoint: ckpt open retry"); - sleep(1); + usleep(1000); goto open_retry; } @@ -555,7 +555,7 @@ unlink_retry: rv = saCkptCheckpointUnlink(ckpt_handle, &name); if (rv == SA_AIS_ERR_TRY_AGAIN) { LOG_ERROR("import_checkpoint: ckpt unlink retry"); - sleep(1); + usleep(1000); goto unlink_retry; } @@ -569,7 +569,7 @@ init_retry: SA_TIME_END, &itr); if (rv == SA_AIS_ERR_TRY_AGAIN) { LOG_ERROR("import_checkpoint: sync create retry"); - sleep(1); + usleep(1000); goto init_retry; } @@ -595,7 +595,7 @@ init_retry: if (len != 3) { LOG_ERROR("import_checkpoint: %d checkpoint sections found", len); - sleep(1); + usleep(1000); goto init_retry; } saCkptSectionIterationInitialize(h, SA_CKPT_SECTIONS_ANY, @@ -608,7 +608,7 @@ init_retry: if (rv == SA_AIS_ERR_TRY_AGAIN) { LOG_ERROR("import_checkpoint: ckpt iternext retry"); - sleep(1); + usleep(1000); continue; } @@ -634,7 +634,7 @@ init_retry: rv = saCkptCheckpointRead(h, &iov, 1, NULL); if (rv == SA_AIS_ERR_TRY_AGAIN) { LOG_ERROR("ckpt read retry"); - sleep(1); + usleep(1000); goto read_retry; }
reply other threads:[~2008-09-16 14:08 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20080916140713.82E481203F4@lists.fedorahosted.org \ --to=jbrassow@fedoraproject.org \ --cc=cluster-cvs-relay@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).