Another problem with this is when the application is already running. You can't just overwrite it's file. What is possible is to upload it under another name and then rename it over the original, this unlinks the original file. However, when remounting the drive as readonly, the unlink cannot be 'finalized'. I'm not entirely sure how the filesystem recovers from this, perhaps the removed copies are only really removed during the next fsck.
As gpsapp conflicts with both serial console and the player when we're on AC, I'm considering simply not starting it when we're not in the car, which ofcourse makes life a bit simpler for upgrading, but it doesn't help other applications.
One thing that applications could do is check whether the inode number of the executable has changed, and re-exec themselves. They might be able to do this before the filesystems are readonly again so the old blocks are nicely released, but we're likely stuck in the hijack ioctl around that time...
_________________________
40GB - serial #40104051 gpsapp