diff options
author | Raghavendra G <rgowdapp@redhat.com> | 2018-07-10 08:34:48 +0530 |
---|---|---|
committer | Raghavendra G <rgowdapp@redhat.com> | 2018-08-04 21:01:17 +0530 |
commit | b982e09f01cf6423e8f5ae9601047fff13bb4f94 (patch) | |
tree | 607b5c4854552ab370f2babb69c963cc0fad95b4 /xlators/performance/quick-read/src/quick-read.h | |
parent | 871ea43ef0d5e1c76903cdda63ccf2a8764a9615 (diff) |
performance/quick-read: don't update with stale data after invalidation
Once invalidated, make sure that only ops incident after invalidation
update the cache. This makes sure that ops before invalidation don't
repopulate cache with stale data. This patch also uses an internal
counter instead of frame->root->unique for keeping track of
generations.
Change-Id: I6b38b141985283bd54b287775f3ec67b88bf6cb8
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Updates: bz#1512691
Diffstat (limited to 'xlators/performance/quick-read/src/quick-read.h')
-rw-r--r-- | xlators/performance/quick-read/src/quick-read.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/xlators/performance/quick-read/src/quick-read.h b/xlators/performance/quick-read/src/quick-read.h index 8ef0f9802b8..20f7307a9a7 100644 --- a/xlators/performance/quick-read/src/quick-read.h +++ b/xlators/performance/quick-read/src/quick-read.h @@ -42,6 +42,7 @@ struct qr_inode { struct timeval last_refresh; struct list_head lru; uint64_t gen; + uint64_t invalidation_time; }; typedef struct qr_inode qr_inode_t; @@ -84,6 +85,7 @@ struct qr_private { time_t last_child_down; gf_lock_t lock; struct qr_statistics qr_counter; + gf_atomic_t generation; }; typedef struct qr_private qr_private_t; |