diff options
| author | Pranith Kumar K <pkarampu@redhat.com> | 2016-05-04 19:05:28 +0530 | 
|---|---|---|
| committer | Niels de Vos <ndevos@redhat.com> | 2016-05-14 07:14:37 -0700 | 
| commit | c2fce3fb987d5b795ed829c15e28d4b41177076e (patch) | |
| tree | 7d12d2065b8f1361f3318a2ef84a6741e73fcef6 /libglusterfs | |
| parent | 91dcbfb58ac06b84940d3de9049514465a3acd6b (diff) | |
cluster/afr: Do heals with shd pid
Multi-threaded healing doesn't create synctask with shd pid, this
leads to healing problems when quota exceeds.
 >BUG: 1332994
 >Change-Id: I80f57c1923756f3298730b8820498127024e1209
 >Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
 >Reviewed-on: http://review.gluster.org/14211
 >Smoke: Gluster Build System <jenkins@build.gluster.com>
 >NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
 >CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
 >Reviewed-by: Ravishankar N <ravishankar@redhat.com>
BUG: 1335283
Change-Id: If59d8f88d8f4a3ca6a3b6e1c9dfd594dd93f542b
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/14298
Smoke: Gluster Build System <jenkins@build.gluster.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Ravishankar N <ravishankar@redhat.com>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Diffstat (limited to 'libglusterfs')
| -rw-r--r-- | libglusterfs/src/syncop-utils.c | 19 | ||||
| -rw-r--r-- | libglusterfs/src/syncop-utils.h | 6 | 
2 files changed, 13 insertions, 12 deletions
diff --git a/libglusterfs/src/syncop-utils.c b/libglusterfs/src/syncop-utils.c index 7421f81f46c..8f25db237f5 100644 --- a/libglusterfs/src/syncop-utils.c +++ b/libglusterfs/src/syncop-utils.c @@ -284,10 +284,11 @@ _dir_scan_job_fn (void *data)  }  static int -_run_dir_scan_task (xlator_t *subvol, loc_t *parent, gf_dirent_t *q, -                    gf_dirent_t *entry, int *retval, pthread_mutex_t *mut, -                    pthread_cond_t *cond, uint32_t *jobs_running, -                    uint32_t *qlen, syncop_dir_scan_fn_t fn, void *data) +_run_dir_scan_task (call_frame_t *frame, xlator_t *subvol, loc_t *parent, +                    gf_dirent_t *q, gf_dirent_t *entry, int *retval, +                    pthread_mutex_t *mut, pthread_cond_t *cond, +                    uint32_t *jobs_running, uint32_t *qlen, +                    syncop_dir_scan_fn_t fn, void *data)  {          int     ret = 0;          struct syncop_dir_scan_data *scan_data = NULL; @@ -313,7 +314,7 @@ _run_dir_scan_task (xlator_t *subvol, loc_t *parent, gf_dirent_t *q,          scan_data->retval       = retval;          ret = synctask_new (subvol->ctx->env, _dir_scan_job_fn, -                            _dir_scan_job_fn_cbk, NULL, scan_data); +                            _dir_scan_job_fn_cbk, frame, scan_data);  out:          if (ret < 0) {                  gf_dirent_entry_free (entry); @@ -329,9 +330,9 @@ out:  }  int -syncop_mt_dir_scan (xlator_t *subvol, loc_t *loc, int pid, void *data, -                    syncop_dir_scan_fn_t fn, dict_t *xdata, uint32_t max_jobs, -                    uint32_t max_qlen) +syncop_mt_dir_scan (call_frame_t *frame, xlator_t *subvol, loc_t *loc, int pid, +                    void *data, syncop_dir_scan_fn_t fn, dict_t *xdata, +                    uint32_t max_jobs, uint32_t max_qlen)  {          fd_t        *fd    = NULL;          uint64_t    offset = 0; @@ -428,7 +429,7 @@ syncop_mt_dir_scan (xlator_t *subvol, loc_t *loc, int pid, void *data,                          if (!entry)                                  continue; -                        ret = _run_dir_scan_task (subvol, loc, &q, entry, +                        ret = _run_dir_scan_task (frame, subvol, loc, &q, entry,                                                    &retval, &mut, &cond,                                                  &jobs_running, &qlen, fn, data);                          if (ret) diff --git a/libglusterfs/src/syncop-utils.h b/libglusterfs/src/syncop-utils.h index 52bcfd99429..3968d758c6e 100644 --- a/libglusterfs/src/syncop-utils.h +++ b/libglusterfs/src/syncop-utils.h @@ -19,9 +19,9 @@ syncop_ftw (xlator_t *subvol, loc_t *loc, int pid, void *data,                         void *data));  int -syncop_mt_dir_scan (xlator_t *subvol, loc_t *loc, int pid, void *data, -                    syncop_dir_scan_fn_t fn, dict_t *xdata, uint32_t max_jobs, -                    uint32_t max_qlen); +syncop_mt_dir_scan (call_frame_t *frame, xlator_t *subvol, loc_t *loc, int pid, +                    void *data, syncop_dir_scan_fn_t fn, dict_t *xdata, +                    uint32_t max_jobs, uint32_t max_qlen);  int  syncop_dir_scan (xlator_t *subvol, loc_t *loc, int pid, void *data,  | 
