diff options
| author | Amar Tumballi <amar@gluster.com> | 2012-01-18 18:06:44 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@gluster.com> | 2012-01-25 02:03:44 -0800 | 
| commit | cf8486cbef329ef66868f658fa35f470f97db462 (patch) | |
| tree | 18cf37bd7cf65ac820d435fb1ee43dc205a2917b /xlators/performance/io-cache | |
| parent | b02afc6d008f9959db28244eb2b9dd3b9ef92393 (diff) | |
core: get xattrs also as part of readdirp
readdirp_req() call sends a dict_t * as an argument, which
contains all the xattr keys for which the entries got in
readdirp_rsp() are having xattr value filled dictionary.
Change-Id: I8b7e1290740ea3e884e67d19156ce849227167c0
Signed-off-by: Amar Tumballi <amar@gluster.com>
BUG: 765785
Reviewed-on: http://review.gluster.com/771
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@gluster.com>
Diffstat (limited to 'xlators/performance/io-cache')
| -rw-r--r-- | xlators/performance/io-cache/src/io-cache.c | 33 | 
1 files changed, 32 insertions, 1 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,  };  | 
