diff options
| -rw-r--r-- | xlators/features/locks/src/common.c | 18 | ||||
| -rw-r--r-- | xlators/features/locks/src/entrylk.c | 6 | ||||
| -rw-r--r-- | xlators/features/locks/src/inodelk.c | 31 | ||||
| -rw-r--r-- | xlators/features/locks/src/posix.c | 9 | 
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");  | 
