Hi All,
Few enhancements/fixes for dht's directory self-heal and fix-layout.
Problem:
1.When a dht's subvolume is down, with self-heal/fix-layout directories might
get new layouts.
Since the subvolume is down, a create will succeed on the newer hashed
subvol.
If a file already exists in the downed subvol, then we end up with duplicate
entries.
2. When a subvolume run's out of space, dht_layout_anomalies currently treats
it as downed brick.
Proposed solution:
1. Make sure dht_layout_anomalies handles both ENOTCONN and ENOSPC separately.
2. In self-heal/fix-layout treat ENOTCONN as fatal error, and fail the new
layout ops.
3. In case of ENOSPC error
a. If fix-layout: fix the layout
b. If self-heal of dir: Create dir if required (and ignore failures if
any), and write the layout.
The tracking bug for this fix is: 860663
Comments welcome.