Nothing a user-mode process can do can cause a data block to be shared between two inodes. (Except that a privileged process can write on the raw disk and mess the filesystem structure up!) This has to be a kernel or hardware problem.