--On 3 January 2008 16:00:22 +0530 Fasihullah Askiri <fasihullah.askiri@xxxxxxxxx> wrote:
I have a doubt regarding the behaviour of read() on an ext3 filesystem. To elucidate my doubts, I wrote a small program opens a file and reads one byte at a time and sleeps for a while. I deleted the file while the read was still in progress and I noticed that the read still succeeds. How does this work? Does the kernel not free the inode when the file is deleted but there is a pending read? To check this, instead of deleting, I tried shred-ding the file, the read still gets the correct data.
That's standard UNIX behaviour. The file exists on disk until all references to it have disappeared (references including the open file handle). All you do by typing "rm" is delete a reference/link to it from a particular directory, not (necessarily) delete the file. That's why the system call is called "unlink". Alex _______________________________________________ Ext3-users mailing list Ext3-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/ext3-users