race condition on looking up inodes

warren (warren@infortrend.com.tw)
Mon, 9 Apr 2001 11:26:51 +0800


Hi,
I had post a simillar message before.
Thanks for the replay from Albert D. Cahalan. But i found some results
confusing me.
For example, process 1 and process 2 run concurrently and execute the
following system calls.

rename("/usr/hybrid/cfg/data","/usr/mytemp/data1"); /*for process 1*/

----------------------------------------------------------------

rename("/usr/mytemp/data1","/usr/test");/* for process 2*/

----------------------------------------------------------------
It is possible that context switch happens when process 1 is look ing up
the inode for "/usr/mytemp/data1" or the inode for "/usr/hybrid/cfg/data".

It will result in diffrent behaviour for process 2 and confuses the
application.
If so,how does Linux solve?

Thanks.

Warren

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/