5 LUSTRE=${LUSTRE:-`dirname $0`/..}
6 . $LUSTRE/tests/test-framework.sh
10 . ${CONFIG:=$LUSTRE/tests/cfg/local.sh}
12 . $LUSTRE/tests/test-framework.sh
17 # Allow us to override the setup if we already have a mounted system by
18 # setting SETUP=" " and CLEANUP=" "
19 SETUP=${SETUP:-"setup"}
20 CLEANUP=${CLEANUP:-"cleanup"}
25 add_mds mds --dev $MDSDEV --size $MDSSIZE
26 add_lov lov1 mds --stripe_sz $STRIPE_BYTES\
27 --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
28 add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE
29 add_ost ost2 --lov lov1 --dev ${OSTDEV}-2 --size $OSTSIZE
30 add_client client mds --lov lov1 --path $MOUNT
35 start ost --reformat $OSTLCONFARGS
36 start ost2 --reformat $OSTLCONFARGS
37 [ "$DAEMONFILE" ] && $LCTL debug_daemon start $DAEMONFILE $DAEMONSIZE
38 start mds $MDSLCONFARGS --reformat
44 stop mds ${FORCE} $MDSLCONFARGS
45 stop ost2 ${FORCE} --dump cleanup.log
46 stop ost ${FORCE} --dump cleanup.log
51 do_mds 'echo -e "device \$mds1\\nprobe\\nnotransno\\nreadonly" | lctl'
56 do_client "df -h $MOUNT" # trigger failover, if we haven't already
59 if [ ! -z "$EVAL" ]; then
64 REFORMAT=--reformat $SETUP
68 drop_request "mcreate $MOUNT/1" || return 1
69 drop_reply "mcreate $MOUNT/2" || return 2
71 run_test 1 "mcreate: drop req, drop rep"
74 drop_request "tchmod 111 $MOUNT/2" || return 1
75 drop_reply "tchmod 666 $MOUNT/2" || return 2
77 run_test 2 "chmod: drop req, drop rep"
80 drop_request "statone $MOUNT/2" || return 1
81 drop_reply "statone $MOUNT/2" || return 2
83 run_test 3 "stat: drop req, drop rep"
86 do_facet client "cp /etc/resolv.conf $MOUNT/resolv.conf" || return 1
87 drop_request "cat $MOUNT/resolv.conf > /dev/null" || return 2
88 drop_reply "cat $MOUNT/resolv.conf > /dev/null" || return 3
90 run_test 4 "open: drop req, drop rep"
93 drop_request "mv $MOUNT/resolv.conf $MOUNT/renamed" || return 1
94 drop_reply "mv $MOUNT/renamed $MOUNT/renamed-again" || return 2
96 run_test 5 "rename: drop req, drop rep"
99 drop_request "mlink $MOUNT/renamed-again $MOUNT/link1" || return 1
100 drop_reply "mlink $MOUNT/renamed-again $MOUNT/link2" || return 2
102 run_test 6 "link: drop req, drop rep"
105 drop_request "munlink $MOUNT/link1" || return 1
106 drop_reply "munlink $MOUNT/link2" || return 2
108 run_test 7 "unlink: drop req, drop rep"
113 drop_reply "touch $MOUNT/renamed" || return 1
115 run_test 8 "touch: drop rep (bug 1423)"
120 pause_bulk "cp /etc/profile $MOUNT" || return 1
121 do_facet client "cp /etc/termcap $MOUNT" || return 2
122 do_facet client "sync"
123 do_facet client "rm $MOUNT/termcap $MOUNT/profile" || return 3
125 run_test 9 "pause bulk on OST (bug 1420)"
129 do_facet client mcreate $MOUNT/f10 || return 1
130 drop_bl_callback "chmod 0777 $MOUNT/f10" || return 2
131 # wait for the mds to evict the client
132 #echo "sleep $(($TIMEOUT*2))"
133 #sleep $(($TIMEOUT*2))
134 do_facet client touch $MOUNT/f10 || echo "touch failed, evicted"
135 do_facet client checkstat -v -p 0777 $MOUNT/f10 || return 3
136 do_facet client "munlink $MOUNT/f10"
138 run_test 10 "finish request after client eviction (bug 1521)"