summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src
diff options
context:
space:
mode:
authorAnand Avati <avati@redhat.com>2013-01-30 15:46:49 -0800
committerAnand Avati <avati@redhat.com>2013-01-30 23:41:16 -0800
commit12689595abd50d13711f855dddfb5cfe51f40455 (patch)
tree6ea2dd303cbdf022f23223b03753533eb9244e06 /libglusterfs/src
parente979c0de9dde14fe18d0ad7298c6da9cc878bbab (diff)
fd-lk: implement new method to check for empty fd_lk_ctx_t
to use this in fuse-bridge, to conditionally attempt lock migration to new graph. Change-Id: I9b10d5839c4ac6051c75e4c020371391cd886ac8 BUG: 808400 Signed-off-by: Anand Avati <avati@redhat.com> Reviewed-on: http://review.gluster.org/4455 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com>
Diffstat (limited to 'libglusterfs/src')
-rw-r--r--libglusterfs/src/fd-lk.c18
-rw-r--r--libglusterfs/src/fd-lk.h4
2 files changed, 22 insertions, 0 deletions
diff --git a/libglusterfs/src/fd-lk.c b/libglusterfs/src/fd-lk.c
index 0c439fe6..fff4aa99 100644
--- a/libglusterfs/src/fd-lk.c
+++ b/libglusterfs/src/fd-lk.c
@@ -468,3 +468,21 @@ fd_lk_insert_and_merge (fd_t *fd, int32_t cmd,
out:
return ret;
}
+
+
+gf_boolean_t
+fd_lk_ctx_empty (fd_lk_ctx_t *lk_ctx)
+{
+ gf_boolean_t verdict = _gf_true;
+
+ if (!lk_ctx)
+ return _gf_true;
+
+ LOCK (&lk_ctx->lock);
+ {
+ verdict = list_empty (&lk_ctx->lk_list);
+ }
+ UNLOCK (&lk_ctx->lock);
+
+ return verdict;
+}
diff --git a/libglusterfs/src/fd-lk.h b/libglusterfs/src/fd-lk.h
index bdea8c2a..1d2ff794 100644
--- a/libglusterfs/src/fd-lk.h
+++ b/libglusterfs/src/fd-lk.h
@@ -18,6 +18,7 @@
#include "mem-pool.h"
#include "mem-types.h"
#include "glusterfs.h"
+#include "common-utils.h"
#define get_lk_type(type) \
type == F_UNLCK ? "F_UNLCK" : (type == F_RDLCK ? "F_RDLCK" : "F_WRLCK")
@@ -63,4 +64,7 @@ fd_lk_insert_and_merge (struct _fd *lk_ctx, int32_t cmd,
int
fd_lk_ctx_unref (fd_lk_ctx_t *lk_ctx);
+gf_boolean_t
+fd_lk_ctx_empty (fd_lk_ctx_t *lk_ctx);
+
#endif /* _FD_LK_H */