summaryrefslogtreecommitdiffstats
path: root/xlators/features/locks
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/features/locks')
-rw-r--r--xlators/features/locks/src/common.c18
-rw-r--r--xlators/features/locks/src/entrylk.c6
-rw-r--r--xlators/features/locks/src/inodelk.c31
-rw-r--r--xlators/features/locks/src/posix.c9
4 files changed, 38 insertions, 26 deletions
diff --git a/xlators/features/locks/src/common.c b/xlators/features/locks/src/common.c
index f535845929a..58b95d20781 100644
--- a/xlators/features/locks/src/common.c
+++ b/xlators/features/locks/src/common.c
@@ -120,8 +120,9 @@ __pl_inode_is_empty (pl_inode_t *pl_inode)
void
pl_print_locker (char *str, int size, xlator_t *this, call_frame_t *frame)
{
- snprintf (str, size, "Pid=%llu, Transport=%p, Frame=%llu",
+ snprintf (str, size, "Pid=%llu, lk-owner=%llu, Transport=%p, Frame=%llu",
(unsigned long long) frame->root->pid,
+ (unsigned long long) frame->root->lk_owner,
(void *)frame->root->trans,
(unsigned long long) frame->root->unique);
}
@@ -162,7 +163,8 @@ pl_print_lockee (char *str, int size, fd_t *fd, loc_t *loc)
void
-pl_print_lock (char *str, int size, int cmd, struct flock *flock)
+pl_print_lock (char *str, int size, int cmd,
+ struct flock *flock, uint64_t owner)
{
char *cmd_str = NULL;
char *type_str = NULL;
@@ -209,10 +211,12 @@ pl_print_lock (char *str, int size, int cmd, struct flock *flock)
break;
}
- snprintf (str, size, "cmd=%s, type=%s, start=%llu, len=%llu, pid=%llu",
+ snprintf (str, size, "lock=FCNTL, cmd=%s, type=%s, "
+ "start=%llu, len=%llu, pid=%llu, lk-owner=%llu",
cmd_str, type_str, (unsigned long long) flock->l_start,
(unsigned long long) flock->l_len,
- (unsigned long long) flock->l_pid);
+ (unsigned long long) flock->l_pid,
+ (unsigned long long) owner);
}
@@ -235,7 +239,7 @@ pl_trace_in (xlator_t *this, call_frame_t *frame, fd_t *fd, loc_t *loc,
if (domain)
pl_print_inodelk (pl_lock, 256, cmd, flock, domain);
else
- pl_print_lock (pl_lock, 256, cmd, flock);
+ pl_print_lock (pl_lock, 256, cmd, flock, frame->root->lk_owner);
gf_log (this->name, GF_LOG_NORMAL,
"[REQUEST] Locker = {%s} Lockee = {%s} Lock = {%s}",
@@ -285,7 +289,7 @@ pl_trace_out (xlator_t *this, call_frame_t *frame, fd_t *fd, loc_t *loc,
if (domain)
pl_print_inodelk (pl_lock, 256, cmd, flock, domain);
else
- pl_print_lock (pl_lock, 256, cmd, flock);
+ pl_print_lock (pl_lock, 256, cmd, flock, frame->root->lk_owner);
pl_print_verdict (verdict, 32, op_ret, op_errno);
@@ -315,7 +319,7 @@ pl_trace_block (xlator_t *this, call_frame_t *frame, fd_t *fd, loc_t *loc,
if (domain)
pl_print_inodelk (pl_lock, 256, cmd, flock, domain);
else
- pl_print_lock (pl_lock, 256, cmd, flock);
+ pl_print_lock (pl_lock, 256, cmd, flock, frame->root->lk_owner);
gf_log (this->name, GF_LOG_NORMAL,
"[BLOCKED] Locker = {%s} Lockee = {%s} Lock = {%s}",
diff --git a/xlators/features/locks/src/entrylk.c b/xlators/features/locks/src/entrylk.c
index 6fc45bccede..b83044b7f28 100644
--- a/xlators/features/locks/src/entrylk.c
+++ b/xlators/features/locks/src/entrylk.c
@@ -188,7 +188,7 @@ pl_print_entrylk (char *str, int size, entrylk_cmd cmd, entrylk_type type,
break;
}
- snprintf (str, size, "cmd=%s, type=%s, basename=%s, domain: %s",
+ snprintf (str, size, "lock=ENTRYLK, cmd=%s, type=%s, basename=%s, domain: %s",
cmd_str, type_str, basename, domain);
}
@@ -325,7 +325,7 @@ __lock_name (pl_inode_t *pinode, const char *basename, entrylk_type type,
trans = frame->root->trans;
client_pid = frame->root->pid;
- owner = (uint64_t)frame->root;
+ owner = (uint64_t)(long)frame->root;
lock = new_entrylk_lock (pinode, basename, type, trans, client_pid, owner, dom->domain);
if (!lock) {
@@ -618,7 +618,7 @@ pl_common_entrylk (call_frame_t *frame, xlator_t *this,
entrylk_trace_in (this, frame, volume, fd, loc, basename, cmd, type);
pid = frame->root->pid;
- owner = (uint64_t) frame->root;
+ owner = (uint64_t)(long) frame->root;
transport = frame->root->trans;
if (pid == 0) {
diff --git a/xlators/features/locks/src/inodelk.c b/xlators/features/locks/src/inodelk.c
index 860f038bac2..019604484d5 100644
--- a/xlators/features/locks/src/inodelk.c
+++ b/xlators/features/locks/src/inodelk.c
@@ -103,7 +103,8 @@ pl_print_inodelk (char *str, int size, int cmd, struct flock *flock, const char
break;
}
- snprintf (str, size, "cmd=%s, type=%s, domain: %s, start=%llu, len=%llu, pid=%llu",
+ snprintf (str, size, "lock=INODELK, cmd=%s, type=%s, "
+ "domain: %s, start=%llu, len=%llu, pid=%llu",
cmd_str, type_str, domain,
(unsigned long long) flock->l_start,
(unsigned long long) flock->l_len,
@@ -235,7 +236,7 @@ __lock_inodelk (xlator_t *this, pl_inode_t *pl_inode, pl_inode_lock_t *lock,
gf_log (this->name, GF_LOG_TRACE,
"Lock is grantable, but blocking to prevent starvation");
gf_log (this->name, GF_LOG_TRACE,
- "%s (pid=%d) lk-owner:%"PRIu64" %"PRId64" - %"PRId64" => Blocked",
+ "%s (pid=%d) (lk-owner=%"PRIu64") %"PRId64" - %"PRId64" => Blocked",
lock->fl_type == F_UNLCK ? "Unlock" : "Lock",
lock->client_pid,
lock->owner,
@@ -322,7 +323,7 @@ __grant_blocked_inode_locks (xlator_t *this, pl_inode_t *pl_inode, pl_dom_list_t
if (bl_ret == 0) {
gf_log (this->name, GF_LOG_TRACE,
- "%s (pid=%d) lk-owner:%"PRIu64" %"PRId64" - %"PRId64" => Granted",
+ "%s (pid=%d) (lk-owner=%"PRIu64") %"PRId64" - %"PRId64" => Granted",
bl->fl_type == F_UNLCK ? "Unlock" : "Lock",
bl->client_pid,
bl->owner,
@@ -390,9 +391,10 @@ release_inode_locks_of_transport (xlator_t *this, pl_dom_list_t *dom,
gf_log (this->name, GF_LOG_TRACE,
"releasing lock on %s held by "
- "{transport=%p, pid=%"PRId64"}",
+ "{transport=%p, pid=%"PRId64" lk-owner=%"PRIu64"}",
path, trans,
- (uint64_t) l->client_pid);
+ (uint64_t) l->client_pid,
+ l->owner);
list_add (&l->blocked_locks, &released);
@@ -414,9 +416,10 @@ release_inode_locks_of_transport (xlator_t *this, pl_dom_list_t *dom,
gf_log (this->name, GF_LOG_TRACE,
"releasing lock on %s held by "
- "{transport=%p, pid=%"PRId64"}",
+ "{transport=%p, pid=%"PRId64" lk-owner=%"PRIu64"}",
path, trans,
- (uint64_t) l->client_pid);
+ (uint64_t) l->client_pid,
+ l->owner);
__destroy_inode_lock (l);
@@ -454,7 +457,7 @@ pl_inode_setlk (xlator_t *this, pl_inode_t *pl_inode, pl_inode_lock_t *lock,
ret = __lock_inodelk (this, pl_inode, lock, can_block, dom);
if (ret == 0)
gf_log (this->name, GF_LOG_TRACE,
- "%s (pid=%d) lk-owner:%"PRIu64" %"PRId64" - %"PRId64" => OK",
+ "%s (pid=%d) (lk-owner=%"PRIu64") %"PRId64" - %"PRId64" => OK",
lock->fl_type == F_UNLCK ? "Unlock" : "Lock",
lock->client_pid,
lock->owner,
@@ -463,7 +466,7 @@ pl_inode_setlk (xlator_t *this, pl_inode_t *pl_inode, pl_inode_lock_t *lock,
if (ret == -EAGAIN)
gf_log (this->name, GF_LOG_TRACE,
- "%s (pid=%d) lk-owner:%"PRIu64" %"PRId64" - %"PRId64" => NOK",
+ "%s (pid=%d) (lk-owner=%"PRIu64") %"PRId64" - %"PRId64" => NOK",
lock->fl_type == F_UNLCK ? "Unlock" : "Lock",
lock->client_pid,
lock->owner,
@@ -553,7 +556,7 @@ pl_common_inodelk (call_frame_t *frame, xlator_t *this,
transport = frame->root->trans;
client_pid = frame->root->pid;
- owner = (uint64_t) frame->root;
+ owner = (uint64_t) (long)frame->root;
pinode = pl_inode_get (this, inode);
if (!pinode) {
@@ -666,10 +669,12 @@ __get_inodelk_count (xlator_t *this, pl_inode_t *pl_inode)
gf_log (this->name, GF_LOG_DEBUG,
" XATTR DEBUG"
- " domain: %s %s (pid=%d) %"PRId64" - %"PRId64" state = Active",
+ " domain: %s %s (pid=%d) (lk-owner=%"PRIu64") %"PRId64" - %"PRId64" "
+ "state = Active",
dom->domain,
lock->fl_type == F_UNLCK ? "Unlock" : "Lock",
lock->client_pid,
+ lock->owner,
lock->user_flock.l_start,
lock->user_flock.l_len);
@@ -680,10 +685,12 @@ __get_inodelk_count (xlator_t *this, pl_inode_t *pl_inode)
gf_log (this->name, GF_LOG_DEBUG,
" XATTR DEBUG"
- " domain: %s %s (pid=%d) %"PRId64" - %"PRId64" state = Blocked",
+ " domain: %s %s (pid=%d) (lk-owner=%"PRIu64") %"PRId64" - %"PRId64" "
+ "state = Blocked",
dom->domain,
lock->fl_type == F_UNLCK ? "Unlock" : "Lock",
lock->client_pid,
+ lock->owner,
lock->user_flock.l_start,
lock->user_flock.l_len);
diff --git a/xlators/features/locks/src/posix.c b/xlators/features/locks/src/posix.c
index 674485576fd..f3b95e059d8 100644
--- a/xlators/features/locks/src/posix.c
+++ b/xlators/features/locks/src/posix.c
@@ -237,7 +237,7 @@ unwind:
static void
__delete_locks_of_owner (pl_inode_t *pl_inode,
- transport_t *transport, pid_t pid)
+ transport_t *transport, uint64_t owner)
{
posix_lock_t *tmp = NULL;
posix_lock_t *l = NULL;
@@ -246,7 +246,7 @@ __delete_locks_of_owner (pl_inode_t *pl_inode,
list_for_each_entry_safe (l, tmp, &pl_inode->ext_list, list) {
if ((l->transport == transport)
- && (l->client_pid == pid)) {
+ && (l->owner == owner)) {
__delete_lock (pl_inode, l);
__destroy_lock (l);
}
@@ -288,7 +288,7 @@ pl_flush (call_frame_t *frame, xlator_t *this,
pthread_mutex_lock (&pl_inode->mutex);
{
__delete_locks_of_owner (pl_inode, frame->root->trans,
- frame->root->pid);
+ frame->root->lk_owner);
}
pthread_mutex_unlock (&pl_inode->mutex);
@@ -804,9 +804,10 @@ __get_posixlk_count (xlator_t *this, pl_inode_t *pl_inode)
gf_log (this->name, GF_LOG_DEBUG,
" XATTR DEBUG"
- "%s (pid=%d) %"PRId64" - %"PRId64" state: %s",
+ "%s (pid=%d) (lk-owner=%"PRIu64") %"PRId64" - %"PRId64" state: %s",
lock->fl_type == F_UNLCK ? "Unlock" : "Lock",
lock->client_pid,
+ lock->owner,
lock->user_flock.l_start,
lock->user_flock.l_len,
lock->blocked == 1 ? "Blocked" : "Active");