El Fri, 10 Oct 2008 13:25:15 +1100, Nick Piggin <nickpiggin@xxxxxxxxxxxx> escribió: > Note that I don't think we'd want to explicitly guarantee that it is atomic > on 64-bit machines either. It does happen to be, but I don't think we want > anybody to rely on that... Easily fixable. Performance testing of this new version didn't find regressions. Document that it is not safe to play with file->f_pos from multiple processes if they aren't synchronizing themselves. Signed-off-by: Diego Calleja <diegocg@xxxxxxxxx> Index: 2.6/include/linux/fs.h =================================================================== --- 2.6.orig/include/linux/fs.h 2008-10-10 21:07:29.000000000 +0200 +++ 2.6/include/linux/fs.h 2008-10-10 21:08:25.000000000 +0200 @@ -821,6 +821,17 @@ atomic_long_t f_count; unsigned int f_flags; mode_t f_mode; + /* + * Linux does NOT guarantee atomic reading/writing to file->f_pos in + * multithreaded apps. There're several reasons for this behaviour: + * - Specifications don't say it must be implemented that way. + * - This behaviour is part of the Linux semantics. + * - Any application that does multithreaded access to file->f_pos + * should be doing its own locking: the processes should synchronize + * themselves when accessing a file descriptor. If an application + * doesn't do that, its file descriptor handling is buggy anyway and + * must be fixed to do its accesses to file->f_pos properly. + */ loff_t f_pos; struct fown_struct f_owner; unsigned int f_uid, f_gid; -- 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