diff options
author | Ravishankar N <ravishankar@redhat.com> | 2018-06-14 12:59:06 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2018-06-19 06:05:20 +0000 |
commit | eb472d82a083883335bc494b87ea175ac43471ff (patch) | |
tree | d115e0bd34d0f2ef4a1bca67ccc9046523156d88 /xlators/cluster/afr/src/afr-self-heal.h | |
parent | 0f13eed0c1fa74cefed486538b02e0c8a8708456 (diff) |
afr: heal gfids when file is not present on all bricks
commit 20fa80057eb430fd72b4fa31b9b65598b8ec1265 introduced a regression
wherein if a file is present in only 1 brick of replica *and* doesn't
have a gfid associated with it, it doesn't get healed upon the next
lookup from the client. Fix it.
Change-Id: I7d1111dcb45b1b8b8340a7d02558f05df70aa599
fixes: bz#1591193
Signed-off-by: Ravishankar N <ravishankar@redhat.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr-self-heal.h')
-rw-r--r-- | xlators/cluster/afr/src/afr-self-heal.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/xlators/cluster/afr/src/afr-self-heal.h b/xlators/cluster/afr/src/afr-self-heal.h index cd67d2a3192..9836e2fbc03 100644 --- a/xlators/cluster/afr/src/afr-self-heal.h +++ b/xlators/cluster/afr/src/afr-self-heal.h @@ -113,7 +113,7 @@ afr_selfheal_entry (call_frame_t *frame, xlator_t *this, inode_t *inode); int afr_lookup_and_heal_gfid (xlator_t *this, inode_t *parent, const char *name, inode_t *inode, struct afr_reply *replies, int source, - void *gfid); + unsigned char *sources, void *gfid); int afr_selfheal_inodelk (call_frame_t *frame, xlator_t *this, inode_t *inode, @@ -353,4 +353,8 @@ afr_mark_source_sinks_if_file_empty (xlator_t *this, unsigned char *sources, struct afr_reply *replies, afr_transaction_type type); +gf_boolean_t +afr_is_file_empty_on_all_children (afr_private_t *priv, + struct afr_reply *replies); + #endif /* !_AFR_SELFHEAL_H */ |