I spent several days trying to solve this, so I'm going to post both the question and answer for the next person.
In CentOS 7, mounting a folder shared by Windows 7 with the following command:
mount -t cifs //MyWindowsPC/SharedFolder $MOUNTPOINT -o user=$USER,uid=$USER,gid="`id -g "$USER"`",cache=none
resulted in Input/Output errors using parallel make (make -j), but not with sequential make. The files that gcc/g++ were unable to read changed with each attempt and occasionally gcc/g++ would note that the error was not reproducible. This led me on quite a wild goose chase as system logs showed very generic CIFS/VFS errors.
There is an issue on the Windows side of things. I tried a combination of suggestions from various websites. I haven't spent time to understand the solution, but I narrowed it down to just two Windows registry changes. I have tested that this fixes the problem on 5+ different Windows 7 machines sharing with several different CentOS 7 and CentOS 6.2 machines. Input/output errors disappear and accessing the share is fast. Here is the solution:
Go to Start and search for “regedit”. Open that and navigate to HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/LanmanServer/Parameters/. In that folder, change the “Size” parameter from 1 to 3 by right clicking it and selecting “modify”.
In the same folder, right click and select “new->DWORD (32 bit)”. Name it “SMB2” and ensure that it is set to zero (should be default).
Restart your windows machine and that should resolve issues compiling in the windows share.
I'm not sure that both changes are necessary, but I am sure that together they fix the problem.