#define imp_connect_replay_create(exp) true
#endif
+static inline bool exp_connect_unaligned_dio(struct obd_export *exp)
+{
+ return (exp_connect_flags2(exp) & OBD_CONNECT2_UNALIGNED_DIO);
+}
+
enum {
/* archive_ids in array format */
KKUC_CT_DATA_ARRAY_MAGIC = 0x092013cea,
#define OBD_CONNECT2_REPLAY_CREATE 0x80000000ULL /* replay OST_CREATE */
#define OBD_CONNECT2_LARGE_NID 0x100000000ULL /* understands large/IPv6 NIDs */
#define OBD_CONNECT2_COMPRESS 0x200000000ULL /* compressed file */
+/* only ZFS servers require a change to support unaligned DIO, so this flag is
+ * ignored for ldiskfs servers */
+#define OBD_CONNECT2_UNALIGNED_DIO 0x400000000ULL /* unaligned DIO */
/* XXX README XXX README XXX README XXX README XXX README XXX README XXX
* Please DO NOT add OBD_CONNECT flags before first ensuring that this value
* is not in use by some other branch/patch. Email adilger@whamcloud.com
"replay_create", /* 0x80000000 */
"large_nid", /* 0x100000000 */
"compressed_file", /* 0x200000000 */
+ "unaligned_dio", /* 0x400000000 */
NULL
};
OBD_CONNECT2_LARGE_NID);
LASSERTF(OBD_CONNECT2_COMPRESS == 0x200000000ULL, "found 0x%.16llxULL\n",
OBD_CONNECT2_COMPRESS);
+ LASSERTF(OBD_CONNECT2_UNALIGNED_DIO == 0x400000000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_UNALIGNED_DIO);
LASSERTF(OBD_CKSUM_CRC32 == 0x00000001UL, "found 0x%.8xUL\n",
(unsigned)OBD_CKSUM_CRC32);
CHECK_DEFINE_64X(OBD_CONNECT2_REPLAY_CREATE);
CHECK_DEFINE_64X(OBD_CONNECT2_LARGE_NID);
CHECK_DEFINE_64X(OBD_CONNECT2_COMPRESS);
+ CHECK_DEFINE_64X(OBD_CONNECT2_UNALIGNED_DIO);
BLANK_LINE();
CHECK_VALUE_X(OBD_CKSUM_CRC32);
OBD_CONNECT2_LARGE_NID);
LASSERTF(OBD_CONNECT2_COMPRESS == 0x200000000ULL, "found 0x%.16llxULL\n",
OBD_CONNECT2_COMPRESS);
+ LASSERTF(OBD_CONNECT2_UNALIGNED_DIO == 0x400000000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_UNALIGNED_DIO);
LASSERTF(OBD_CKSUM_CRC32 == 0x00000001UL, "found 0x%.8xUL\n",
(unsigned)OBD_CKSUM_CRC32);