Merge branch 'fix/hda' into for-linus
[pandora-kernel.git] / arch / mips / include / asm / fcntl.h
index 2a52333..e482fe9 100644 (file)
@@ -10,7 +10,7 @@
 
 
 #define O_APPEND       0x0008
-#define O_SYNC         0x0010
+#define O_DSYNC                0x0010  /* used to be O_SYNC, see below */
 #define O_NONBLOCK     0x0080
 #define O_CREAT         0x0100 /* not fcntl */
 #define O_TRUNC                0x0200  /* not fcntl */
 #define O_NOCTTY       0x0800  /* not fcntl */
 #define FASYNC         0x1000  /* fcntl, for BSD compatibility */
 #define O_LARGEFILE    0x2000  /* allow large file opens */
+/*
+ * Before Linux 2.6.33 only O_DSYNC semantics were implemented, but using
+ * the O_SYNC flag.  We continue to use the existing numerical value
+ * for O_DSYNC semantics now, but using the correct symbolic name for it.
+ * This new value is used to request true Posix O_SYNC semantics.  It is
+ * defined in this strange way to make sure applications compiled against
+ * new headers get at least O_DSYNC semantics on older kernels.
+ *
+ * This has the nice side-effect that we can simply test for O_DSYNC
+ * wherever we do not care if O_DSYNC or O_SYNC is used.
+ *
+ * Note: __O_SYNC must never be used directly.
+ */
+#define __O_SYNC       0x4000
+#define O_SYNC         (__O_SYNC|O_DSYNC)
 #define O_DIRECT       0x8000  /* direct disk access hint */
 
 #define F_GETLK                14