Description of problem:
Performed remove brick on a volume, with rename of files and remove of files running in parallel as IO, there are remove-brick failures due to ENOENTs.
Also, the linkto-file of some files go missing from the backend bricks and so those files become inaccessible from the client node.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create a 5X3 volume.
2. The volume is mounted at :
mnt1 --> RHEL 7.7 mahcine, FUSE mount
mnt2 --> RHEL 8.1 machine, GNFS mount
3. On the client node, created 5 dirs:
dir1 : contains 500 block files
dir2 : contains 500 device file
dir3 : contained an untar of linux kernel, started removing all the files and directories under dir3 using rm-rf
dir4 - contains 500 pipe files
dir5 - created 100 files, started renaming 100 files such that each file will be renamed 2000 times.
4. While the rename of files and rm -rf was still in progress, started remove-brick operation on the volume to convert it into 4X3.
5. Once the remove-brick migration was completed, committed the remove-brick process.
* Remove-brick migration had failures due to ENOENTs.
* The number of block, device and pipe files was same, before and after remove-brick.
* No issues w.r.t. rm -rf of files under dir3.
* All files under dir5 were renamed, but some files became inaccessible. For these files, the linkto-file was missing from the hash subvol.
* All files should be accessible from the client node.
sos-reports will be shared.