blob: faaf261d88b698fdaa626e7d40608aa0cdbd44ec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#!/bin/bash
. $(dirname $0)/../../include.rc
. $(dirname $0)/../../volume.rc
# This script checks if use-readdirp option works as accepted in mount options
# Note on re-reading $M0/new after enabling root-squash:
# Since we have readen it once, the file is present in various caches.
# In order to actually fail on second attempt we must:
# 1) drop kernel cache, by ( cd $M0 ; umount $M0 )
# 2) make sure FUSE does not cache the entry. This is also
# in the kernel, but not flushed by a failed umount.
# Using $GFS enforces this because it sets --entry-timeout=0
# 3) make sure reading new permissins does not produce stale
# information from glusterfs metadata cache. Setting volume
# option performance.stat-prefetch off enforces that.
TEST glusterd
TEST pidof glusterd
TEST $CLI volume create $V0 $H0:$B0/${V0}
TEST $CLI volume start $V0
TEST $GFS --volfile-id=/$V0 --volfile-server=$H0 $M0
TEST mkdir $M0/dir
TEST mkdir $M0/nobody
TEST chown nfsnobody:nfsnobody $M0/nobody
TEST `echo "file" >> $M0/file`
TEST cp $M0/file $M0/new
TEST chmod 700 $M0/new
TEST cat $M0/new
TEST $CLI volume set $V0 performance.stat-prefetch off
TEST $CLI volume set $V0 server.root-squash enable
( cd $M0 ; umount $M0 ) # fails but drops kernel cache
TEST ! mkdir $M0/other
TEST mkdir $M0/nobody/other
TEST cat $M0/file
TEST ! cat $M0/new
TEST `echo "nobody" >> $M0/nobody/file`
#mount the client without root-squashing
TEST $GFS --volfile-id=/$V0 --volfile-server=$H0 --no-root-squash=yes $M1
TEST mkdir $M1/m1_dir
TEST `echo "file" >> $M1/m1_file`
TEST cp $M0/file $M1/new
TEST chmod 700 $M1/new
TEST cat $M1/new
TEST $CLI volume set $V0 server.root-squash disable
TEST mkdir $M0/other
TEST cat $M0/new
cleanup
|