Description of problem: Before migration of file we do fallocate on the source subvol. With that we do not need to add file size to the source disk size(avail), to decide whether the file needs to be migrated for a rebalance(not remove-brick) case. This needs to be fixed in __dht_check_free_space.
Followed the same steps as in the Comment 8, rebalance skipped the file for migration. Also, took Susant help and confirmed that this issue is fixed through gdb. Hence, moving this BZ to Verified.
Verified on glusterfs version: 3.8.4-36.el7rhgs.x86_64
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2017:2774