Inconsistent memory usage display

When i was trying to store a file of size 743 MB into a directory i got a msg. that the disk is full. But when i used the df -k . command on that directory it showed only 40% in usage and the disk had more than enough memory for the file. When i checked the syslog i found that at that instant of time when the file was trying to be created inside the directory the corresponding volume was full. That is why it showed the error. But then how the command showed 40% free. Any explanations?

Sometimes it may happen that one user was using one of the file which is very big, say he was grepping on of the big file. After he stopped his job, the file may be left open somehow. Try serching for any such opened processes, which is still holding the inode number of that file and kill that process.

maybe your filesystem is badly fragmented.

Use this command to check the number of avail inodes
df -o i