Hello! On Apr 6, 2015, at 12:02 PM, Al Viro wrote: > 2) should we ever update the current position when write() returns 0? > IOW, what effect should zero-length write() on O_APPEND file have upon its > current position? POSIX seems to imply that it should do nothing, and > generally that's what happens, but e.g. ext4 *does* update position to > the EOF, whether we will write anything or not. So does FUSE when server > requests to bypass the page cache. AFAICS, lustre is the same way, > but I might be missing something; everything else definitely does not Lustre is not the same way. drivers/staging/lustre/lustre/llite/file.c::ll_file_io_generic() has this if (io-> ci_nob > 0) { result = io->ci_nob; *ppos = io->u.ci_wr.wr.crw_pos; } and ppos is passed in as &iocb->ki_pos. ci_nob is number of bytes that we managed to read/write, and if it was 0 (either due to 0 bytes io request or due to error from the get go) we won't update it. Bye, Oleg -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html