12 while [ $wait -lt $timeout ]; do
13 new_value
=`getfattr --only-value -n ceph.dir.$name .`
14 [ $new_value == $old_value ] ||
return 0
22 old_sec
=$
(echo $old_value | cut
-d.
-f1)
23 old_nsec
=$
(echo $old_value | cut
-d.
-f2)
24 new_sec
=$
(echo $new_value | cut
-d.
-f1)
25 new_nsec
=$
(echo $new_value | cut
-d.
-f2)
26 [ "$old_sec" -lt "$new_sec" ] && return 0
27 [ "$old_sec" -gt "$new_sec" ] && return 1
28 [ "$old_nsec" -lt "$new_nsec" ] && return 0
32 # sync(3) does not make ceph-fuse flush dirty caps, because fuse kernel module
33 # does not notify ceph-fuse about it. Use fsync(3) instead.
35 cmd
="import os; fd=os.open(\"$1\", os.O_RDONLY); os.fsync(fd); os.close(fd)"
41 mkdir
-p rstats_testdir
/d
1/d2
45 old_value
=`getfattr --only-value -n ceph.dir.rfiles .`
46 [ $old_value == 0 ] || false
48 wait_until_changed rfiles
49 [ $new_value == $
(($old_value + 1)) ] || false
52 old_value
=`getfattr --only-value -n ceph.dir.rsubdirs .`
53 [ $old_value == 3 ] || false
55 wait_until_changed rsubdirs
56 [ $new_value == $
(($old_value + 1)) ] || false
59 old_value
=`getfattr --only-value -n ceph.dir.rbytes .`
60 [ $old_value == 0 ] || false
63 wait_until_changed rbytes
64 [ $new_value == $
(($old_value + 6)) ] || false
67 old_value
=`getfattr --only-value -n ceph.dir.rctime .`
68 touch d
1/d
2/d3
# touch existing file
70 wait_until_changed rctime
73 old_value
=`getfattr --only-value -n ceph.dir.rctime .`
74 touch d
1/d
2/f3
# create new file
75 wait_until_changed rctime