cluster/afr: disable client side self-healing in opendir()

The purpose of opendir() self-healing was to recreate files
which go missing after a crash/reboot (because the file was
created just before the crash).

This refactor addresses crash related healing problems in
the self-heal daemon and therefore eliminates the need for
opendir() self-healing in the client side.

Change-Id: I880e2896429b3ebf3669956040c3c14860494152
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: remove remaining traces of readdir-failover

The feature was removed long ago, but there are still traces left.
Remove all traces.

Change-Id: Icbee156b9db2111b7e6c37ab3e9a0a62e1721272
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: disable open fd self-healing on client side

Change-Id: I9cbef8005e7627f9f34d770b50932a0c32f43fab
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: remove self-healing from lookup()

In AFR lookup() we will only find out which of the copies is good
for reading and save that in the inode ctx.

Change-Id: I33bef58362fb1f0163b7202cf4ad52dc928c3f54
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: move self-heal specific functions to afr-self-heal-common.c

No code change, just re-organize.

Change-Id: Ieddda28c8919a8aac5f5ebfd5d5f6448deea92f6
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: revert (temporarily) fsync based durability fixes

Change-Id: Ifb09d6e69150d335b1c314217738b34d533aaa43
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: remove unused lock recovery code

Lock recovery now happens at protocol/client level. Remove all unused
recovery code in AFR.

Change-Id: Ic1ce01ee17dd1a094b8ca70d5d15319aa1c654f1
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: consistently use xdata sent from up in all transaction fops

This xdata will be loaded with dirty marker and post-op in future patches

Change-Id: Ie21c1b38b20eb0b663d60658c2d24e78d17d90eb
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: keep count of possible consistency changing events

Later, use this to recalculate freshness/staleness per inode.

Change-Id: If2fd882fdd14fcdbec4ee767840264478b67d4ad
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: Implement dirty flag support (in place of pending counts)

Change-Id: I6ccf71a507ad4eece839c80f711096224f0128d2
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: temporarily disable self-heal build

Change-Id: I0cc3e694fb4c711c7e09def24e2f4d5d2b03a5ad
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: eliminate inode ctx

and use read_child + event_generation combination as a long integer.

Also (re)implement all read fops as a transaction to recalculate
read child on every generation bump.

Change-Id: I12490114ba7f2b95c82be576486fcffc266329b5
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: implement inode ctx refreshing based on event generation

Change-Id: I5c1cea1fc8fc98a04a18d401c0d9ac15d4424e43
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: provide backward compatibility in write path

Change-Id: I6d1075fc7746e0fd15e98d92e734a709865c3590
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: remove pump related code

Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: general cleanup

- remove unused variables and functions
- make code more consistent in style and pattern

Change-Id: I8f1551f386dc0a680cc463b6d42d5741f52e81f2
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: clean up inode-write transactions

regularize and cleanup inode-write FOPs

Change-Id: I2c7224142b3492058aaa73dab6ea69eb6da55443
Signed-off-by: Anand Avati <avati@redhat.com>
cluster/afr: clean up dir-write transactions

regularize and cleanup dir-write FOPs

Change-Id: Icdcb8f6029d234d718d8afd2fb8e8ae01a94047d
Signed-off-by: Anand Avati <avati@redhat.com>