[SCM] CTDB repository - branch 2.5 updated - ctdb-2.5.3-120-gf41a937
Amitay Isaacs
amitay at samba.org
Wed Aug 6 20:28:37 MDT 2014
The branch, 2.5 has been updated
via f41a9374ef984a5a7f2e1b29577237de3b319a9e (commit)
via ba303ceaa95104e86a89e4d600d28daf539440cd (commit)
from 645930530be50e180b757576ac1aeefdd80ea563 (commit)
http://gitweb.samba.org/?p=ctdb.git;a=shortlog;h=2.5
- Log -----------------------------------------------------------------
commit f41a9374ef984a5a7f2e1b29577237de3b319a9e
Author: Volker Lendecke <vl at samba.org>
Date: Mon Aug 4 13:57:12 2014 +0000
locking: Simplify ctdb_find_lock_context()
I like early returns that avoid else branches :-)
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Amitay Isaacs <amitay at gmail.com>
Autobuild-User(master): Amitay Isaacs <amitay at samba.org>
Autobuild-Date(master): Wed Aug 6 14:44:31 CEST 2014 on sn-devel-104
(Imported from commit e185ff22caf430f680f8bad1edf14bc98dd7c64e)
commit ba303ceaa95104e86a89e4d600d28daf539440cd
Author: Volker Lendecke <vl at samba.org>
Date: Mon Aug 4 12:41:06 2014 +0000
locking: TALLOC_FREE copes with NULL
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Amitay Isaacs <amitay at gmail.com>
(Imported from commit 9f596c17c7d255213df6201d4d489df1580faef4)
-----------------------------------------------------------------------
Summary of changes:
server/ctdb_lock.c | 71 +++++++++++++++++++++++++---------------------------
1 files changed, 34 insertions(+), 37 deletions(-)
Changeset truncated at 500 lines:
diff --git a/server/ctdb_lock.c b/server/ctdb_lock.c
index 7d0be86..23c607b 100644
--- a/server/ctdb_lock.c
+++ b/server/ctdb_lock.c
@@ -432,9 +432,7 @@ static void ctdb_lock_handler(struct tevent_context *ev,
lock_ctx = talloc_get_type_abort(private_data, struct lock_context);
/* cancel the timeout event */
- if (lock_ctx->ttimer) {
- TALLOC_FREE(lock_ctx->ttimer);
- }
+ TALLOC_FREE(lock_ctx->ttimer);
t = timeval_elapsed(&lock_ctx->start_time);
id = lock_bucket_id(t);
@@ -666,51 +664,50 @@ struct lock_context *ctdb_find_lock_context(struct ctdb_context *ctdb)
struct ctdb_db_context *ctdb_db;
/* First check if there are database lock requests */
- lock_ctx = ctdb->lock_pending;
- while (lock_ctx != NULL) {
- next_ctx = lock_ctx->next;
- if (! lock_ctx->request) {
- DEBUG(DEBUG_INFO, ("Removing lock context without lock request\n"));
- DLIST_REMOVE(ctdb->lock_pending, lock_ctx);
- CTDB_DECREMENT_STAT(ctdb, locks.num_pending);
- if (lock_ctx->ctdb_db) {
- CTDB_DECREMENT_DB_STAT(lock_ctx->ctdb_db, locks.num_pending);
- }
- talloc_free(lock_ctx);
- } else {
- /* Found a lock context with lock requests */
- break;
+
+ for (lock_ctx = ctdb->lock_pending; lock_ctx != NULL;
+ lock_ctx = next_ctx) {
+
+ if (lock_ctx->request != NULL) {
+ /* Found a lock context with a request */
+ return lock_ctx;
}
- lock_ctx = next_ctx;
- }
- if (lock_ctx) {
- return lock_ctx;
+ next_ctx = lock_ctx->next;
+
+ DEBUG(DEBUG_INFO, ("Removing lock context without lock "
+ "request\n"));
+ DLIST_REMOVE(ctdb->lock_pending, lock_ctx);
+ CTDB_DECREMENT_STAT(ctdb, locks.num_pending);
+ if (lock_ctx->ctdb_db) {
+ CTDB_DECREMENT_DB_STAT(lock_ctx->ctdb_db,
+ locks.num_pending);
+ }
+ talloc_free(lock_ctx);
}
/* Next check database queues */
for (ctdb_db = ctdb->db_list; ctdb_db; ctdb_db = ctdb_db->next) {
- if (ctdb_db->lock_num_current == ctdb->tunable.lock_processes_per_db) {
+ if (ctdb_db->lock_num_current ==
+ ctdb->tunable.lock_processes_per_db) {
continue;
}
- lock_ctx = ctdb_db->lock_pending;
- while (lock_ctx != NULL) {
+
+ for (lock_ctx = ctdb_db->lock_pending; lock_ctx != NULL;
+ lock_ctx = next_ctx) {
+
next_ctx = lock_ctx->next;
- if (! lock_ctx->request) {
- DEBUG(DEBUG_INFO, ("Removing lock context without lock request\n"));
- DLIST_REMOVE(ctdb_db->lock_pending, lock_ctx);
- CTDB_DECREMENT_STAT(ctdb, locks.num_pending);
- CTDB_DECREMENT_DB_STAT(ctdb_db, locks.num_pending);
- talloc_free(lock_ctx);
- } else {
- break;
- }
- lock_ctx = next_ctx;
- }
+ if (lock_ctx->request != NULL) {
+ return lock_ctx;
+ }
- if (lock_ctx) {
- return lock_ctx;
+ DEBUG(DEBUG_INFO, ("Removing lock context without "
+ "lock request\n"));
+ DLIST_REMOVE(ctdb_db->lock_pending, lock_ctx);
+ CTDB_DECREMENT_STAT(ctdb, locks.num_pending);
+ CTDB_DECREMENT_DB_STAT(ctdb_db, locks.num_pending);
+ talloc_free(lock_ctx);
}
}
--
CTDB repository
More information about the samba-cvs
mailing list