[Ocfs2-test-devel] [PATCH 37/59] reflink-test: fix mutiple reflink test race

Junxiao Bi junxiao.bi at oracle.com
Sun Sep 13 19:44:23 PDT 2015


Rank 2 and Rank 3 pick a random length of value to update xattr, Rank3 will
read the xattr and do validation after update, if Rank 2 picks a xattr length
larger than Rank 3's and update the xattr after Rank 3's update but before the
validation, fgetxattr in Rank 3 will return ERANGE error. Set "xattr_value_sz"
to the max value to fix it.

Signed-off-by: Junxiao Bi <junxiao.bi at oracle.com>
---
 programs/reflink_tests/multi_reflink_test.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/programs/reflink_tests/multi_reflink_test.c b/programs/reflink_tests/multi_reflink_test.c
index 45c96fe..bd980c6 100755
--- a/programs/reflink_tests/multi_reflink_test.c
+++ b/programs/reflink_tests/multi_reflink_test.c
@@ -1116,6 +1116,7 @@ static int do_xattr_data_cows(char *ref_pfx, unsigned long iter, int ea_nums)
 
 			if (xattr_value_sz > xattr_name_sz + 50) {
 
+				xattr_value_sz = XATTR_VALUE_MAX_SZ;
 				ret = read_ea(NORMAL, fd);
 				if (ret < 0)
 					goto bail;
-- 
1.7.9.5




More information about the Ocfs2-test-devel mailing list