diff options
| author | Pavan Sondur <pavan@gluster.com> | 2010-08-25 06:07:14 +0000 | 
|---|---|---|
| committer | Anand V. Avati <avati@dev.gluster.com> | 2010-08-26 00:09:11 -0700 | 
| commit | 194ec62165c89a84ad7d36013dd77e981a374c93 (patch) | |
| tree | dd865acdfe3f19bf98e2dc883beff3fa4255d1a6 | |
| parent | c83b6f73f08eb81788dd1fe35c461b19dc9405df (diff) | |
cluster/afr: Do not issue blocking locks in self-heal.
Signed-off-by: Pavan Vilas Sondur <pavan@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 960 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=960
| -rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-common.c | 29 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-data.c | 31 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-entry.c | 31 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-metadata.c | 32 | 
4 files changed, 11 insertions, 112 deletions
diff --git a/xlators/cluster/afr/src/afr-self-heal-common.c b/xlators/cluster/afr/src/afr-self-heal-common.c index aad259b84c4..6cf8d52e730 100644 --- a/xlators/cluster/afr/src/afr-self-heal-common.c +++ b/xlators/cluster/afr/src/afr-self-heal-common.c @@ -1360,29 +1360,6 @@ sh_missing_entries_lookup (call_frame_t *frame, xlator_t *this)  int -afr_sh_post_blocking_entrylk_cbk (call_frame_t *frame, xlator_t *this) -{ -        afr_internal_lock_t *int_lock = NULL; -        afr_local_t         *local    = NULL; - -        local    = frame->local; -        int_lock = &local->internal_lock; - -        if (int_lock->lock_op_ret < 0) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "Blocking entrylks failed."); -                afr_sh_missing_entries_done (frame, this); -        } else { - -                gf_log (this->name, GF_LOG_DEBUG, -                        "Blocking entrylks done. Proceeding to FOP"); -                sh_missing_entries_lookup (frame, this); -        } - -        return 0; -} - -int  afr_sh_post_nonblocking_entrylk_cbk (call_frame_t *frame, xlator_t *this)  {          afr_internal_lock_t *int_lock = NULL; @@ -1391,12 +1368,10 @@ afr_sh_post_nonblocking_entrylk_cbk (call_frame_t *frame, xlator_t *this)          local    = frame->local;          int_lock = &local->internal_lock; -        /* Initiate blocking locks if non-blocking has failed */          if (int_lock->lock_op_ret < 0) {                  gf_log (this->name, GF_LOG_DEBUG, -                        "Non blocking entrylks failed. Proceeding to blocking"); -                int_lock->lock_cbk = afr_sh_post_blocking_entrylk_cbk; -                afr_blocking_lock (frame, this); +                        "Non blocking entrylks failed."); +                afr_sh_missing_entries_done (frame, this);          } else {                  gf_log (this->name, GF_LOG_DEBUG, diff --git a/xlators/cluster/afr/src/afr-self-heal-data.c b/xlators/cluster/afr/src/afr-self-heal-data.c index 8e87bc55545..8e2cb94ad7a 100644 --- a/xlators/cluster/afr/src/afr-self-heal-data.c +++ b/xlators/cluster/afr/src/afr-self-heal-data.c @@ -925,29 +925,6 @@ int  afr_sh_data_lock_rec (call_frame_t *frame, xlator_t *this);  int -afr_sh_data_post_blocking_inodelk_cbk (call_frame_t *frame, xlator_t *this) -{ -        afr_internal_lock_t *int_lock = NULL; -        afr_local_t         *local    = NULL; - -        local    = frame->local; -        int_lock = &local->internal_lock; - -        if (int_lock->lock_op_ret < 0) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "Blocking inodelks failed."); -                afr_sh_data_done (frame, this); -        } else { - -                gf_log (this->name, GF_LOG_DEBUG, -                        "Blocking inodelks done. Proceeding to FOP"); -                afr_sh_data_fxattrop (frame, this); -        } - -        return 0; -} - -int  afr_sh_data_post_nonblocking_inodelk_cbk (call_frame_t *frame, xlator_t *this)  {          afr_internal_lock_t *int_lock = NULL; @@ -956,16 +933,14 @@ afr_sh_data_post_nonblocking_inodelk_cbk (call_frame_t *frame, xlator_t *this)          local    = frame->local;          int_lock = &local->internal_lock; -        /* Initiate blocking locks if non-blocking has failed */          if (int_lock->lock_op_ret < 0) {                  gf_log (this->name, GF_LOG_DEBUG, -                        "Non blocking inodelks failed. Proceeding to blocking"); -                int_lock->lock_cbk = afr_sh_data_post_blocking_inodelk_cbk; -                afr_blocking_lock (frame, this); +                        "Non Blocking inodelks failed."); +                afr_sh_data_done (frame, this);          } else {                  gf_log (this->name, GF_LOG_DEBUG, -                        "Non blocking inodelks done. Proceeding to FOP"); +                        "Non Blocking inodelks done. Proceeding to FOP");                  afr_sh_data_fxattrop (frame, this);          } diff --git a/xlators/cluster/afr/src/afr-self-heal-entry.c b/xlators/cluster/afr/src/afr-self-heal-entry.c index bf53fdb6767..7aec50aadd0 100644 --- a/xlators/cluster/afr/src/afr-self-heal-entry.c +++ b/xlators/cluster/afr/src/afr-self-heal-entry.c @@ -2367,29 +2367,6 @@ afr_sh_entry_lookup (call_frame_t *frame, xlator_t *this)  }  int -afr_sh_post_blocking_entry_cbk (call_frame_t *frame, xlator_t *this) -{ -        afr_internal_lock_t *int_lock = NULL; -        afr_local_t         *local    = NULL; - -        local    = frame->local; -        int_lock = &local->internal_lock; - -        if (int_lock->lock_op_ret < 0) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "Blocking entrylks failed."); -                afr_sh_entry_done (frame, this); -        } else { - -                gf_log (this->name, GF_LOG_DEBUG, -                        "Blocking entrylks done. Proceeding to FOP"); -                afr_sh_entry_lookup(frame, this); -        } - -        return 0; -} - -int  afr_sh_post_nonblocking_entry_cbk (call_frame_t *frame, xlator_t *this)  {          afr_internal_lock_t *int_lock = NULL; @@ -2398,16 +2375,14 @@ afr_sh_post_nonblocking_entry_cbk (call_frame_t *frame, xlator_t *this)          local    = frame->local;          int_lock = &local->internal_lock; -        /* Initiate blocking locks if non-blocking has failed */          if (int_lock->lock_op_ret < 0) {                  gf_log (this->name, GF_LOG_DEBUG, -                        "Non blocking entrylks failed. Proceeding to blocking"); -                int_lock->lock_cbk = afr_sh_post_blocking_entry_cbk; -                afr_blocking_lock (frame, this); +                        "Non Blocking entrylks failed."); +                afr_sh_entry_done (frame, this);          } else {                  gf_log (this->name, GF_LOG_DEBUG, -                        "Non blocking entrylks done. Proceeding to FOP"); +                        "Non Blocking entrylks done. Proceeding to FOP");                  afr_sh_entry_lookup(frame, this);          } diff --git a/xlators/cluster/afr/src/afr-self-heal-metadata.c b/xlators/cluster/afr/src/afr-self-heal-metadata.c index 54972c52be0..30820878bfa 100644 --- a/xlators/cluster/afr/src/afr-self-heal-metadata.c +++ b/xlators/cluster/afr/src/afr-self-heal-metadata.c @@ -671,29 +671,6 @@ afr_sh_metadata_lookup (call_frame_t *frame, xlator_t *this)  }  int -afr_sh_post_blocking_inodelk_cbk (call_frame_t *frame, xlator_t *this) -{ -        afr_internal_lock_t *int_lock = NULL; -        afr_local_t         *local    = NULL; - -        local    = frame->local; -        int_lock = &local->internal_lock; - -        if (int_lock->lock_op_ret < 0) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "Blocking inodelks failed."); -                afr_sh_metadata_done (frame, this); -        } else { - -                gf_log (this->name, GF_LOG_DEBUG, -                        "Blocking inodelks done. Proceeding to FOP"); -                afr_sh_metadata_lookup (frame, this); -        } - -        return 0; -} - -int  afr_sh_post_nonblocking_inodelk_cbk (call_frame_t *frame, xlator_t *this)  {          afr_internal_lock_t *int_lock = NULL; @@ -702,23 +679,20 @@ afr_sh_post_nonblocking_inodelk_cbk (call_frame_t *frame, xlator_t *this)          local    = frame->local;          int_lock = &local->internal_lock; -        /* Initiate blocking locks if non-blocking has failed */          if (int_lock->lock_op_ret < 0) {                  gf_log (this->name, GF_LOG_DEBUG, -                        "Non blocking inodelks failed. Proceeding to blocking"); -                int_lock->lock_cbk = afr_sh_post_blocking_inodelk_cbk; -                afr_blocking_lock (frame, this); +                        "Non Blocking inodelks failed."); +                afr_sh_metadata_done (frame, this);          } else {                  gf_log (this->name, GF_LOG_DEBUG, -                        "Non blocking inodelks done. Proceeding to FOP"); +                        "Non Blocking inodelks done. Proceeding to FOP");                  afr_sh_metadata_lookup (frame, this);          }          return 0;  } -  int  afr_sh_metadata_lock (call_frame_t *frame, xlator_t *this)  {  | 
