まず、ファイルは、windowsの共有フォルダの中にあるファイルです。
このファイルにアクセスするのは、ubuntuのphpで書かれたスクリプトです。
phpで、rename関数を使って、ファイル名を変更しようとしてもできません。
代わりに、passthru関数を使い、mvコマンドを使って、ファイル名を変更しました。
1回目は問題なくできました。
しかし、windowsの方で、ファイル名を元の戻し、再び、実行すると、エラーが発生します。
エラーの内容は、
mv 元のファイル名 are 新しいファイル名 the same file
/etc/fstabに、cache=none を追記して、マウントしても、変わりません。
ファイル名の変更が、1回目はできるのに、元に戻して、2回目は失敗することに、悩んでいます。
Windows内で、別のファイルを作成し、それを、rename前のファイル名に変更するなら、問題は起きません。
単に、ファイル名を元に戻したり、あるいは、元に戻した後、ファイルの内容を編集すると、2回目のファイル名の変更に失敗します。
<追記>
結局、このようにしました。
@unlink($fileFullName2);
rename($fileFullName, $fileFullName2);
unlinkでは、リネーム後のファイルがないため、エラーが発生します。
本来なら、不要な処理です。
しかし、これを行うことで、renameが期待通りに動きました。
renameだけでも、1回目は成功しますから、見つけにくい不具合でした。
PHPでは、1回目にリネームしたファイルがあると認識されるような挙動です。