Messages in this thread | | | Date | Wed, 2 May 2001 16:31:01 +0200 | From | Andi Kleen <> | Subject | Re: 2.4 and 2GB swap partition limit |
| |
On Mon, Apr 30, 2001 at 12:07:44PM -0700, David S. Miller wrote: > Even more effective is: > > mv /wherever/exeimage /usr/bin/exeimage > > The kernel keeps around the contents of the old file while > the executing process still runs. > > This is also basically how things like libc get installed. > A single mv is not only preserves currently referenced contents, > it is atomic.
But something must have been not working with it for mmaps/shlibs (not executables); at least historically. At least I remember that all hell broke lose when you tried to update libc by cp'ing a new one to /lib/libc.so in the 1.2 days. cp should create a new inode (it uses O_CREAT) so in theory it should be coherent by the inode reference; but somehow it didn't use to work and random already running programs started to segfault. This was long ago. I wonder if old GNU cp used O_TRUNC instead of O_CREAT, or was there some other kernel bug with mappings (hopefully long since fixed). Anybody remembers?
-Andi - 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/
| |