diff options
Diffstat (limited to 'xlators/features/upcall/src/upcall-internal.c')
| -rw-r--r-- | xlators/features/upcall/src/upcall-internal.c | 21 | 
1 files changed, 21 insertions, 0 deletions
diff --git a/xlators/features/upcall/src/upcall-internal.c b/xlators/features/upcall/src/upcall-internal.c index a7f0fd991cf..a2c33cb2ca7 100644 --- a/xlators/features/upcall/src/upcall-internal.c +++ b/xlators/features/upcall/src/upcall-internal.c @@ -327,6 +327,24 @@ out:          return ret;  } +void +upcall_cache_invalidate_dir (call_frame_t *frame, xlator_t *this, +                             client_t *client, inode_t *inode, uint32_t flags) +{ +        dentry_t        *dentry; +        dentry_t        *dentry_tmp; + +        if (!is_cache_invalidation_enabled(this)) +                return; + +        list_for_each_entry_safe (dentry, dentry_tmp, +                                  &inode->dentry_list, +                                  inode_list) { +                upcall_cache_invalidate (frame, this, client, +                                         dentry->inode, flags); +        } +} +  /*   * Given a gfid, client, first fetch upcall_entry_t based on gfid.   * Later traverse through the client list of that upcall entry. If this client @@ -347,6 +365,9 @@ upcall_cache_invalidate (call_frame_t *frame, xlator_t *this, client_t *client,          upcall_inode_ctx_t *up_inode_ctx = NULL;          gf_boolean_t     found           = _gf_false; +        if (!is_cache_invalidation_enabled(this)) +                return; +          up_inode_ctx = ((upcall_local_t *)frame->local)->upcall_inode_ctx;          if (!up_inode_ctx)  | 
