diff options
Diffstat (limited to 'xlators/performance')
| -rw-r--r-- | xlators/performance/io-cache/src/io-cache.c | 33 | ||||
| -rw-r--r-- | xlators/performance/io-threads/src/io-threads.c | 8 | ||||
| -rw-r--r-- | xlators/performance/stat-prefetch/src/stat-prefetch.c | 14 | 
3 files changed, 46 insertions, 9 deletions
diff --git a/xlators/performance/io-cache/src/io-cache.c b/xlators/performance/io-cache/src/io-cache.c index 009e7cf28e1..65df006cfe4 100644 --- a/xlators/performance/io-cache/src/io-cache.c +++ b/xlators/performance/io-cache/src/io-cache.c @@ -1409,6 +1409,35 @@ ioc_lk (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd,          return 0;  } +int +ioc_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                  int op_ret, int op_errno, gf_dirent_t *entries) +{ +        gf_dirent_t *entry = NULL; + +        if (op_ret <= 0) +                goto unwind; + +        list_for_each_entry (entry, &entries->list, list) { +                /* TODO: fill things */ +        } + +unwind: +        STACK_UNWIND_STRICT (readdirp, frame, op_ret, op_errno, entries); + +        return 0; +} +int +ioc_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, +              off_t offset, dict_t *dict) +{ +        STACK_WIND (frame, ioc_readdirp_cbk, +                    FIRST_CHILD(this), FIRST_CHILD(this)->fops->readdirp, +                    fd, size, offset, dict); + +        return 0; +} +  int32_t  ioc_get_priority_list (const char *opt_str, struct list_head *first)  { @@ -1924,7 +1953,9 @@ struct xlator_fops fops = {          .lookup      = ioc_lookup,          .lk          = ioc_lk,          .setattr     = ioc_setattr, -        .mknod       = ioc_mknod +        .mknod       = ioc_mknod, + +        .readdirp    = ioc_readdirp,  }; diff --git a/xlators/performance/io-threads/src/io-threads.c b/xlators/performance/io-threads/src/io-threads.c index d6d0ada23e4..e4077478182 100644 --- a/xlators/performance/io-threads/src/io-threads.c +++ b/xlators/performance/io-threads/src/io-threads.c @@ -1840,23 +1840,23 @@ iot_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  iot_readdirp_wrapper (call_frame_t *frame, xlator_t *this, fd_t *fd, -                      size_t size, off_t offset) +                      size_t size, off_t offset, dict_t *dict)  {          STACK_WIND (frame, iot_readdirp_cbk, FIRST_CHILD (this), -                    FIRST_CHILD (this)->fops->readdirp, fd, size, offset); +                    FIRST_CHILD (this)->fops->readdirp, fd, size, offset, dict);          return 0;  }  int  iot_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, -              off_t offset) +              off_t offset, dict_t *dict)  {          call_stub_t     *stub = NULL;          int             ret = -1;          stub = fop_readdirp_stub (frame, iot_readdirp_wrapper, fd, size, -                                  offset); +                                  offset, dict);          if (!stub) {                  gf_log (this->private, GF_LOG_ERROR,"cannot get readdir stub"                          "(out of memory)"); diff --git a/xlators/performance/stat-prefetch/src/stat-prefetch.c b/xlators/performance/stat-prefetch/src/stat-prefetch.c index 73cc3a955d8..827a9f99d28 100644 --- a/xlators/performance/stat-prefetch/src/stat-prefetch.c +++ b/xlators/performance/stat-prefetch/src/stat-prefetch.c @@ -1351,8 +1351,8 @@ out:  int32_t -sp_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, -            off_t off) +sp_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, +             off_t off, dict_t *dict)  {          sp_cache_t *cache    = NULL;          sp_local_t *local    = NULL; @@ -1401,7 +1401,7 @@ sp_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,          }          STACK_WIND (frame, sp_readdir_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->readdirp, fd, size, off); +                    FIRST_CHILD(this)->fops->readdirp, fd, size, off, dict);          return 0; @@ -1414,6 +1414,12 @@ unwind:          return 0;  } +int32_t +sp_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, +            off_t off) +{ +        return sp_readdirp (frame, this, fd, size, off, NULL); +}  int32_t  sp_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this, @@ -4215,7 +4221,7 @@ out:  struct xlator_fops fops = {          .lookup      = sp_lookup,          .readdir     = sp_readdir, -        .readdirp    = sp_readdir, +        .readdirp    = sp_readdirp,          .open        = sp_open,          .create      = sp_create,          .opendir     = sp_opendir,  | 
