Hi, Instead of all the kernel locks during block allocations, can't we simply delay the inode truncate operation until the file is closed? All we need is further inode field i_realsize, that is compared at close time with i_size. It's also useful for other fs that don't support holes and we get rid of the last argument to cont_prepare_write (so it has the same prototype as block_prepare_write). My only problem is if it should be done for 2.4, as it may have side effects. An related question: writes are protected by the inode semaphore, so only a single process can (or should) ever be in *_get_block. Do we then still need the check after the new block is allocated and before the block entry is updated? bye, Roman