Add OBD_CONNECT2_GETATTR_PFID connect flag to pack parent FID in
getattr request, which will be used to check whether target is
remote object, if so, don't take LOOKUP lock, otherwise client
may see stale directory entries.
Lustre-change: https://review.whamcloud.com/39289
Lustre-commit:
f384a8733c41e43ebc2db3c542287a700ace8cbb
Test-parameters: trivial
Signed-off-by: Lai Siyao <lai.siyao@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Neil Brown <neilb@suse.de>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Change-Id: Ibdf880934456f255f83cd4bac9d61ab5e1ed7330
Reviewed-on: https://review.whamcloud.com/39770
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
#define OBD_CONNECT2_SELINUX_POLICY 0x400ULL /* has client SELinux policy */
#define OBD_CONNECT2_LSOM 0x800ULL /* LSOM support */
#define OBD_CONNECT2_ASYNC_DISCARD 0x4000ULL /* support async DoM data discard */
-
+#define OBD_CONNECT2_ENCRYPT 0x8000ULL /* client-to-disk encrypt */
+#define OBD_CONNECT2_FIDMAP 0x10000ULL /* FID map */
+#define OBD_CONNECT2_GETATTR_PFID 0x20000ULL /* pack parent FID in getattr */
/* XXX README XXX:
* Please DO NOT add flag values here before first ensuring that this same
* flag value is not in use on some other branch. Please clear any such
"pcc", /* 0x1000 */
"unknown", /* 0x2000 */
"async_discard", /* 0x4000 */
+ "client_encryption", /* 0x8000 */
+ "fidmap", /* 0x10000 */
+ "getattr_pfid", /* 0x20000 */
NULL
};
OBD_CONNECT2_LSOM);
LASSERTF(OBD_CONNECT2_ASYNC_DISCARD == 0x4000ULL, "found 0x%.16llxULL\n",
OBD_CONNECT2_ASYNC_DISCARD);
+ LASSERTF(OBD_CONNECT2_ENCRYPT == 0x8000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_ENCRYPT);
+ LASSERTF(OBD_CONNECT2_FIDMAP== 0x10000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_FIDMAP);
+ LASSERTF(OBD_CONNECT2_GETATTR_PFID== 0x20000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_GETATTR_PFID);
LASSERTF(OBD_CKSUM_CRC32 == 0x00000001UL, "found 0x%.8xUL\n",
(unsigned)OBD_CKSUM_CRC32);
LASSERTF(OBD_CKSUM_ADLER == 0x00000002UL, "found 0x%.8xUL\n",
CHECK_DEFINE_64X(OBD_CONNECT2_SELINUX_POLICY);
CHECK_DEFINE_64X(OBD_CONNECT2_LSOM);
CHECK_DEFINE_64X(OBD_CONNECT2_ASYNC_DISCARD);
+ CHECK_DEFINE_64X(OBD_CONNECT2_ENCRYPT);
+ CHECK_DEFINE_64X(OBD_CONNECT2_FIDMAP);
+ CHECK_DEFINE_64X(OBD_CONNECT2_GETATTR_PFID);
CHECK_VALUE_X(OBD_CKSUM_CRC32);
CHECK_VALUE_X(OBD_CKSUM_ADLER);
OBD_CONNECT2_LSOM);
LASSERTF(OBD_CONNECT2_ASYNC_DISCARD == 0x4000ULL, "found 0x%.16llxULL\n",
OBD_CONNECT2_ASYNC_DISCARD);
+ LASSERTF(OBD_CONNECT2_ENCRYPT == 0x8000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_ENCRYPT);
+ LASSERTF(OBD_CONNECT2_FIDMAP== 0x10000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_FIDMAP);
+ LASSERTF(OBD_CONNECT2_GETATTR_PFID== 0x20000ULL, "found 0x%.16llxULL\n",
+ OBD_CONNECT2_GETATTR_PFID);
LASSERTF(OBD_CKSUM_CRC32 == 0x00000001UL, "found 0x%.8xUL\n",
(unsigned)OBD_CKSUM_CRC32);
LASSERTF(OBD_CKSUM_ADLER == 0x00000002UL, "found 0x%.8xUL\n",