UBIFS question, atomic file create/rename semantics
Jon Povey
Jon.Povey at racelogic.co.uk
Mon Apr 4 04:54:43 EDT 2011
I have a file I want to create on first-time boot on my system,
on UBIFS. It's done in a shell script, and the logic is something like
if [ ! -e $FILE ]
then
# create the file
fi
Once or twice this file has turned out to be zero length (or possibly
contain nulls, I am working on slightly vauge reports).
Looking into the issues of sync and semantics, I think this is related
to not doing sync and rename.
The script was pretty much just saying "prog > $FILE" and no sync.
I came up with the following and would appreciate any comments about
how reliable this should be:
if [ ! -e $FILE ]
then
prog > $FILE.tmp
sync
mv $FILE.tmp $FILE
sync
fi
My understanding is that as the .tmp file is on the same filesystem
and I ran sync, the mv means the final file atomically either exists
with full correct contents, or will not exist at all (after surprise
power cycle during the process).
A quick "yes, fine" or "won't work" would be appreciated.
Thanks,
--
Jon Povey
jon.povey at racelogic.co.uk
Racelogic is a limited company registered in England. Registered number 2743719 .
Registered Office Unit 10, Swan Business Centre, Osier Way, Buckingham, Bucks, MK18 1TB .
The information contained in this electronic mail transmission is intended by Racelogic Ltd for the use of the named individual or entity to which it is directed and may contain information that is confidential or privileged. If you have received this electronic mail transmission in error, please delete it from your system without copying or forwarding it, and notify the sender of the error by reply email so that the sender's address records can be corrected. The views expressed by the sender of this communication do not necessarily represent those of Racelogic Ltd. Please note that Racelogic reserves the right to monitor e-mail communications passing through its network
More information about the linux-mtd
mailing list