error "No generic nobody group"
fi
+if [[ -r /etc/redhat-release ]]; then
+ rhel_version=$(sed -e 's/[^0-9.]*//g' /etc/redhat-release)
+ if (( $(version_code $rhel_version) >= $(version_code 9.3.0) )); then
+ always_except EX-8739 6 7a 7b 23 # PCC-RW
+ always_except LU-17289 102 # fio io_uring
+ fi
+fi
+
build_test_filter
# if there is no CLIENT1 defined, some tests can be ran on localhost
[ -z "$param" ] && param="projid={100}\ rwid=$HSM_ARCHIVE_NUMBER"
stack_trap "cleanup_pcc_mapping $facet" EXIT
- do_facet $facet $LCTL pcc add $MOUNT $hsm_root -p $param
+ do_facet $facet $LCTL pcc add $MOUNT $hsm_root -p $param ||
+ error "Setup PCC backend $hsm_root on $MOUNT failed"
}
umount_loopdev() {
is_project_quota_supported || project=false
do_facet $SINGLEAGT $LFS mkdir -i0 -c1 $DIR/$tdir
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
$project && lfs project -sp $project_id $DIR2/$tdir
do_facet $SINGLEAGT "echo -n attach_origin > $file"
if ! $project; then
check_lpcc_state $file "none"
- do_facet $SINGLEAGT $LFS pcc attach -i \
- $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w \
+ -i $HSM_ARCHIVE_NUMBER $file ||
error "pcc attach $file failed"
fi
do_facet $SINGLEAGT "echo -n new_data2 > $file"
if ! $project; then
check_lpcc_state $file "none"
- do_facet $SINGLEAGT $LFS pcc attach -i \
- $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w \
+ -i $HSM_ARCHIVE_NUMBER $file ||
error "PCC attach $file failed"
fi
check_lpcc_state $file "readwrite"
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccrw=1"
$LCTL pcc list $MOUNT
mkdir_on_mdt0 $DIR/$tdir || error "mkdir $DIR/$tdir failed"
chmod 777 $DIR/$tdir || error "chmod 777 $DIR/$tdir failed"
do_facet $SINGLEAGT $RUNAS dd if=/dev/zero of=$file bs=1024 count=1 ||
error "failed to dd write to $file"
- do_facet $SINGLEAGT $RUNAS $LFS pcc attach -i $HSM_ARCHIVE_NUMBER \
+ do_facet $SINGLEAGT $RUNAS $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER \
$file || error "failed to attach file $file"
check_lpcc_state $file "readwrite"
do_facet $SINGLEAGT $RUNAS dd if=$file of=/dev/null bs=1024 count=1 ||
[[ $perm == "0" ]] || error "PCC file permission ($perm) is not zero"
- do_facet $SINGLEAGT $RUNAS $LFS pcc attach -i $HSM_ARCHIVE_NUMBER \
+ do_facet $SINGLEAGT $RUNAS $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER \
$file || error "failed to attach file $file"
check_lpcc_state $file "readwrite"
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ open_attach=0\ stat_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ open_attach=0\ stat_attach=0\ pccrw=1"
do_facet $SINGLEAGT $LFS mkdir -i0 -c1 $DIR/$tdir
chmod 777 $DIR/$tdir || error "chmod 0777 $DIR/$tdir failed"
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
dd if=/dev/zero of=$file bs=1024 count=1 ||
error "failed to dd write to $file"
error "non-root user can dd write $file"
do_facet $SINGLEAGT $RUNAS dd if=$file of=/dev/null bs=1024 count=1 &&
error "non-root user can dd read $file"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite"
do_facet $SINGLEAGT $RUNAS dd if=/dev/zero of=$file bs=1024 count=1 &&
enable_project_quota
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
file=$DIR/$tdir/multiop
$LFS mkdir -i -1 -c $MDSCOUNT $DIR/$tdir
rm -f $file
enable_project_quota
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
file=$DIR/$tdir/multiop
mkdir -p $DIR/$tdir
rm -f $file
do_facet $SINGLEAGT "echo -n file_data > $file"
- do_facet $SINGLEAGT lfs pcc attach -i $HSM_ARCHIVE_NUMBER \
+ do_facet $SINGLEAGT lfs pcc attach -w -i $HSM_ARCHIVE_NUMBER \
$file || error "PCC attach $file failed"
check_lpcc_state $file "readwrite"
enable_project_quota
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
mkdir -p $DIR/$tdir
rm -f $file
do_facet $SINGLEAGT "echo -n file_data > $file"
- do_facet $SINGLEAGT lfs pcc attach -i $HSM_ARCHIVE_NUMBER \
+ do_facet $SINGLEAGT lfs pcc attach -w -i $HSM_ARCHIVE_NUMBER \
$file || error "PCC attach $file failed"
check_lpcc_state $file "readwrite"
local file=$DIR/$tdir/$tfile
local file2=$DIR2/$tdir/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccrw=1\ pccro=1"
mkdir -p $DIR/$tdir || error "mkdir $DIR/$tdir failed"
dd if=/dev/zero of=$file2 bs=1024 count=1 ||
error "failed to dd write to $file"
echo "Start to RW-PCC attach/detach the file: $file"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite"
do_facet $SINGLEAGT $LFS pcc detach -k $file ||
check_lpcc_state $file "none"
echo "Repeat to RW-PCC attach/detach the same file: $file"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite"
do_facet $SINGLEAGT $LFS pcc detach -k $file ||
check_lpcc_state $file "none"
rm -f $file || error "failed to remove $file"
- echo "ropcc_data" > $file
+ echo "pccro_data" > $file
echo "Start to RO-PCC attach/detach the file: $file"
do_facet $SINGLEAGT $LFS pcc attach -r -i $HSM_ARCHIVE_NUMBER $file ||
# Start all of the copytools and setup PCC
for n in $(seq $AGTCOUNT); do
copytool setup -f agt$n -a $n -m $MOUNT -h $(hsm_root agt$n)
- setup_pcc_mapping agt$n "projid={100}\ rwid=$n\ auto_attach=0"
+ setup_pcc_mapping agt$n "projid={100}\ rwid=$n\ auto_attach=0\ pccrw=1\ pccro=1"
done
mkdir -p $DIR/$tdir || error "mkdir $DIR/$tdir failed"
error "failed to dd write to $file"
echo "Start to RW-PCC attach/detach $file on $agt1_HOST"
- do_facet agt1 $LFS pcc attach -i 1 $file ||
+ do_facet agt1 $LFS pcc attach -w -i 1 $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite" agt1
do_facet agt1 $LFS pcc detach -k $file ||
check_lpcc_state $file "none" agt1
echo "Repeat to RW-PCC attach/detach $file on $agt2_HOST"
- do_facet agt2 $LFS pcc attach -i 2 $file ||
+ do_facet agt2 $LFS pcc attach -w -i 2 $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite" agt2
do_facet agt2 $LFS pcc detach -k $file ||
check_lpcc_state $file "none" agt2
echo "Try RW-PCC attach on two agents"
- do_facet agt1 $LFS pcc attach -i 1 $file ||
+ do_facet agt1 $LFS pcc attach -w -i 1 $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite" agt1
- do_facet agt2 $LFS pcc attach -i 2 $file ||
+ do_facet agt2 $LFS pcc attach -w -i 2 $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite" agt2
# The later attach PCC agent should succeed,
enable_project_quota
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
mkdir -p $DIR/$tdir || error "mkdir $DIR/$tdir failed"
lfs project -sp $project_id $DIR/$tdir ||
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
do_facet $SINGLEAGT "echo -n attach_mmap_data > $file" ||
error "echo $file failed"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite"
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
echo -n mmap_write_data > $file || error "echo write $file failed"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite"
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
echo "QQQQQ" > $file
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite"
check_file_data $SINGLEAGT $file "QQQQQ"
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccrw=1"
echo "QQQQQ" > $file
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite"
check_file_data $SINGLEAGT $file "QQQQQ"
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
echo "QQQQQ" > $file
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to attach file $file"
check_lpcc_state $file "readwrite"
check_file_data $SINGLEAGT $file "QQQQQ"
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMVER" -h "$hsm_root"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
do_facet $SINGLEAGT $LCTL pcc list $MOUNT
touch $file || error "touch $file failed"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "fail to attach $file"
check_lpcc_state $file "readwrite"
# write 60M data, it is larger than the capacity of PCC backend
local loopfile="$TMP/$tfile"
local mntpt="/mnt/pcc.$tdir"
local hsm_root="$mntpt/$tdir"
- local state="readwrite"
+ local state="readonly"
+ local mode="pccro"
local ug=$1
- local ro=$2
+ local rw=$2
local id=$RUNAS_ID
[[ $ug == "g" ]] && id=$RUNAS_GID
- [[ -z $ro ]] || state="readonly"
+ [[ -z $rw ]] || {
+ state="readwrite"
+ mode="pccrw"
+ }
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
do_facet $SINGLEAGT quotacheck -c$ug $mntpt ||
error "quotacheck -c$ug $mntpt failed"
do_facet $SINGLEAGT repquota -${ug}vs $mntpt
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMVER" -h "$hsm_root"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ $mode=1"
do_facet $SINGLEAGT $LCTL pcc list $MOUNT
mkdir $DIR/$tdir || error "mkdir $DIR/$tdir failed"
error "chown $RUNAS_ID:$RUNAS_GID $file1 failed"
chown $RUNAS_ID:$RUNAS_GID $file2 ||
error "chown $RUNAS_ID:$RUNAS_GID $file2 failed"
- do_facet $SINGLEAGT $RUNAS $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $ro \
+ do_facet $SINGLEAGT $RUNAS $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $rw \
$file1 || error "attach $file1 failed"
- do_facet $SINGLEAGT $RUNAS $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $ro \
+ do_facet $SINGLEAGT $RUNAS $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $rw \
$file2 && error "attach $file2 should fail due to quota limit"
check_lpcc_state $file1 $state
check_lpcc_state $file2 "none"
- if [[ -n $ro ]]; then
+ if [[ -z $rw ]]; then
do_facet $SINGLEAGT $LFS pcc detach $file1 ||
error "detach $file1 failed"
return 0
}
test_10a() {
- test_usrgrp_quota "u"
+ test_usrgrp_quota "u" "-w"
}
run_test 10a "Test RW-PCC with user quota on loop PCC device"
test_10b() {
- test_usrgrp_quota "g"
+ test_usrgrp_quota "g" "-w"
}
run_test 10b "Test RW-PCC with group quota on loop PCC device"
test_10c() {
- test_usrgrp_quota "u" "-r"
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
+ test_usrgrp_quota "u"
}
run_test 10c "Test RO-PCC with user quota on loop PCC device"
test_10d() {
- test_usrgrp_quota "g" "-r"
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
+ test_usrgrp_quota "g"
}
run_test 10d "Test RO-PCC with group quota on loop PCC device"
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
do_facet $SINGLEAGT "echo -n QQQQQ > $file"
lpcc_path=$(lpcc_fid2path $hsm_root $file)
echo "Lustre file: $file LPCC dir: $lpcc_dir"
do_facet $SINGLEAGT mkdir -p $lpcc_dir ||
error "mkdir -p $lpcc_dir failed"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to attach $file"
check_lpcc_state $file "readwrite"
check_file_data $SINGLEAGT $file "QQQQQ"
error "mkdir -p $lpcc_dir failed"
do_facet $SINGLEAGT chattr +i $lpcc_dir ||
error "chattr +i $lpcc_dir failed"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file &&
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file &&
error "attach $file with immutable directory should be failed"
do_facet $SINGLEAGT chattr -i $lpcc_dir ||
error "chattr -i $lpcc_dir failed"
lpcc_path=$(lpcc_fid2path $hsm_root $file)
do_facet $SINGLEAGT mkdir -p $lpcc_path ||
error "mkdir -p $lpcc_path failed"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file &&
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file &&
error "attach $file should fail as PCC path is a directory"
rm $file || error "rm $file failed"
}
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccrw=1"
echo -n race_rw_attach_hsmremove > $file
lpcc_path=$(lpcc_fid2path $hsm_root $file)
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "attach $file failed"
do_facet $SINGLEAGT $LFS pcc detach -k $file ||
error "detach $file failed"
check_hsm_flags $file "0x0000000d"
# define OBD_FAIL_LLITE_PCC_ATTACH_PAUSE 0x1414
do_facet $SINGLEAGT $LCTL set_param fail_loc=0x1414 fail_val=20
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file &
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file &
pid=$!
$LFS hsm_state $file
sleep 3
local file=$DIR/$tdir/$tfile
setup_pcc_mapping $SINGLEAGT \
- "$rule\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "$rule\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccrw=1"
$LCTL pcc list $MOUNT
do_facet $SINGLEAGT $LFS mkdir -i 0 $DIR/$tdir
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "fname={*.h5\ suffix.*\ Mid*dle}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "fname={*.h5\ suffix.*\ Mid*dle}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccrw=1"
$LCTL pcc list $MOUNT
do_facet $SINGLEAGT mkdir -p $DIR/$tdir
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100\ 200}\&fname={*.h5},uid={$RUNAS_ID}\&gid={$RUNAS_GID}\ rwid=$HSM_ARCHIVE_NUMBER"
+ "projid={100\ 200}\&fname={*.h5},uid={$RUNAS_ID}\&gid={$RUNAS_GID}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
$LCTL pcc list $MOUNT
do_facet $SINGLEAGT mkdir -p $DIR/$tdir
chmod 777 $DIR/$tdir || error "chmod 0777 $DIR/$tdir failed"
test_14() {
local file=$DIR/$tdir/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccrw=1\ pccro=1"
mkdir -p $DIR/$tdir || error "mkdir -p $DIR/$tdir failed"
do_facet $SINGLEAGT "echo -n autodetach_data > $file"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER \
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER \
$file || error "PCC attach $file failed"
check_lpcc_state $file "readwrite"
local hsm_root="$mntpt/$tdir"
local file=$DIR/$tdir/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1\ pccro=1"
mkdir_on_mdt0 $DIR/$tdir || error "mkdir $DIR/$tdir failed"
chmod 777 $DIR/$tdir || error "chmod 777 $DIR/$tdir failed"
echo "Verify open attach for non-root user"
do_facet $SINGLEAGT $RUNAS dd if=/dev/zero of=$file bs=1024 count=1 ||
error "failed to dd write to $file"
- do_facet $SINGLEAGT $RUNAS $LFS pcc attach -i $HSM_ARCHIVE_NUMBER \
+ do_facet $SINGLEAGT $RUNAS $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER \
$file || error "failed to attach file $file"
do_facet $SINGLEAGT $RUNAS $LFS pcc state $file
check_lpcc_state $file "readwrite" $SINGLEAGT "$RUNAS"
echo "Verify auto attach at open for RW-PCC"
do_facet $SINGLEAGT "echo -n autoattach_data > $file"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER \
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER \
$file || error "RW-PCC attach $file failed"
check_lpcc_state $file "readwrite"
local file=$DIR/$tfile
local -a lpcc_path
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1\ pccro=1"
echo "Test detach for RW-PCC"
do_facet $SINGLEAGT "echo -n detach_data > $file"
lpcc_path=$(lpcc_fid2path $hsm_root $file)
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER \
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER \
$file || error "RW-PCC attach $file failed"
check_lpcc_state $file "readwrite"
# HSM released exists archived status
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ open_attach=0\ stat_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ open_attach=0\ stat_attach=0\ pccrw=1"
do_facet $SINGLEAGT $LCTL pcc list $MOUNT
do_facet $SINGLEAGT "echo -n layout_refresh_data > $file"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "PCC attach $file failed"
check_lpcc_state $file "readwrite"
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
do_facet $SINGLEAGT $LCTL pcc list $MOUNT
do_facet $SINGLEAGT dd if=/dev/urandom of=$file bs=1M count=4 ||
error "failed to write $file"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to attach $file"
do_facet $SINGLEAGT $LFS pcc state $file
check_lpcc_state $file "readwrite"
do_facet $SINGLEAGT $LFS pcc state $file
check_file_size $SINGLEAGT $lpcc_path 4194304
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to attach $file"
check_lpcc_sizes $SINGLEAGT $lpcc_path $file 1049600
newmd5=$(do_facet $SINGLEAGT md5sum $file | awk '{print $1}')
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccrw=1"
do_facet $SINGLEAGT "echo -n QQQQQ > $file" || error "echo $file failed"
lpcc_path=$(lpcc_fid2path $hsm_root $file)
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "Failed to attach $file"
check_lpcc_state $file "readwrite"
check_lpcc_sizes $SINGLEAGT $file $lpcc_path 5
do_facet $SINGLEAGT $LFS pcc detach --keep $file ||
error "Failed to detach $file"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "Failed to attach $file"
check_lpcc_sizes $SINGLEAGT $file $lpcc_path 5
do_facet $SINGLEAGT $LFS pcc detach --keep $file ||
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
do_facet $SINGLEAGT "echo -n QQQQQ > $file" ||
error "echo $file failed"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "Failed to attach $file"
do_facet $SINGLEAGT "echo 3 > /proc/sys/vm/drop_caches"
check_lpcc_state $file "readwrite"
local hsm_root="$mntpt/$tdir"
local file=$DIR/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
local hsm_root="$mntpt/$tdir"
local file=$DIR/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
- copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
+ do_facet $SINGLEAGT mkdir -p $hsm_root ||
+ error "failed to mkdir $hsm_root"
setup_pcc_mapping $SINGLEAGT \
"projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
local file2=$DIR2/$tfile
local fid
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
local hsm_root="$mntpt/$tdir"
local file=$DIR/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping
local hsm_root="$mntpt/$tdir"
local file=$DIR/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping
local hsm_root="$mntpt/$tdir"
local file=$DIR/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping
local hsm_root="$mntpt/$tdir"
local file=$DIR/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
local hsm_root="$mntpt/$tdir"
local file=$DIR/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
local file2=$DIR2/$tfile
local fid
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccro=1\ pccrw=1"
do_facet $SINGLEAGT "echo -n hsm_release_pcc_file > $file"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "RW-PCC attach $file failed"
check_lpcc_state $file "readwrite"
# HSM released exists archived status
local file2=$DIR2/$tfile
local fid
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccrw=1\ pccro=1"
do_facet $SINGLEAGT "echo -n roattach_data > $file"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "RW-PCC attach $file failed"
check_lpcc_state $file "readwrite"
# HSM released exists archived status
local file=$DIR/$tfile
local -a lpcc_path
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping
- echo "ropcc_data" > $file
+ echo "pccro_data" > $file
lpcc_path=$(lpcc_fid2path $hsm_root $file)
do_facet $SINGLEAGT $LFS pcc attach -r -i $HSM_ARCHIVE_NUMBER $file ||
error "failed to RO-PCC attach file $file"
check_lpcc_state $file "readonly"
- check_lpcc_data $SINGLEAGT $lpcc_path $file "ropcc_data"
+ check_lpcc_data $SINGLEAGT $lpcc_path $file "pccro_data"
local content=$(do_facet $SINGLEAGT $MMAP_CAT $file)
- [[ $content == "ropcc_data" ]] ||
+ [[ $content == "pccro_data" ]] ||
error "mmap_cat data mismatch: $content"
check_lpcc_state $file "readonly"
local file=$DIR/$tdir/$tfile
local -a lpcc_path
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping $SINGLEAGT \
local hsm_root="$mntpt/$tdir"
local file=$DIR/$tdir/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping
local file=$DIR/$tdir/$tfile
local content
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
setup_pcc_mapping
local hsm_root="$mntpt/$tdir"
local file=$DIR/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER" -h "$hsm_root"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccrw=1\ pccro=1"
echo -n attach_keep_open > $file
do_facet $SINGLEAGT $LFS pcc attach -r -i $HSM_ARCHIVE_NUMBER $file ||
do_facet $SINGLEAGT $LFS pcc detach $file ||
error "detach $file failed"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "attach $file failed"
check_lpcc_state $file "readwrite"
rmultiop_start $agt_host $file O_c || error "multiop $file failed"
rm $file || error "rm $file failed"
echo -n attach_keep_open > $file
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "attach $file failed"
check_lpcc_state $file "readwrite"
rmultiop_start $agt_host $file O_c || error "multiop $file failed"
local hsm_root="$mntpt/$tdir"
local file=$DIR/$tfile
+ $LCTL get_param -n mdc.*.connect_flags | grep -q pcc_ro ||
+ skip "Server does not support PCC-RO"
+
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER" -h "$hsm_root"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ open_attach=1"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ open_attach=1\ pccrw=1\ pccro=1"
echo -n auto_attach_multi_open > $file
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "attach $file failed"
check_lpcc_state $file "readwrite"
rmultiop_start $agt_host $file O_c || error "multiop $file failed"
rm $file || error "rm $file failed"
echo -n auto_attach_multi_open > $file
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "attach $file failed"
check_lpcc_state $file "readwrite"
rmultiop_start $agt_host $file O_c || error "multiop $file failed"
setup_loopdev $SINGLEAGT $loopfile $mntpt 50
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER" -h "$hsm_root"
setup_pcc_mapping $SINGLEAGT \
- "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0"
+ "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ auto_attach=0\ pccrw=1"
echo -n rw_attach_hasopen_fail > $file
rmultiop_start $agt_host $file O_c || error "multiop $file failed"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file &&
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file &&
error "attach $file should fail"
rmultiop_stop $agt_host || error "multiop $file close failed"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
error "attach $file should fail"
check_lpcc_state $file "readwrite"
do_facet $SINGLEAGT $LFS pcc detach -k $file ||
multiop_bg_pause $file2 O_c || error "multiop $file2 failed"
multipid=$!
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file &&
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file &&
error "attach $file should fail"
kill -USR1 $multipid
wait $multipid || error "multiop $file2 close failed"
- do_facet $SINGLEAGT $LFS pcc attach -i $HSM_ARCHIVE_NUMBER $file ||
- error "attach $file should fail"
+ do_facet $SINGLEAGT $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER $file ||
+ error "failed to attach $file"
check_lpcc_state $file "readwrite"
do_facet $SINGLEAGT $LFS pcc detach -k $file ||
error "detach $file failed"
# Finish PCC setup
copytool setup -m "$MOUNT" -a "$HSM_ARCHIVE_NUMBER"
- setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER"
+ setup_pcc_mapping $SINGLEAGT "projid={100}\ rwid=$HSM_ARCHIVE_NUMBER\ pccrw=1"
mkdir_on_mdt0 $DIR/$tdir || error "mkdir $DIR/$tdir failed"
chmod 777 $DIR/$tdir || error "chmod 777 $DIR/$tdir failed"
echo "Verify open attach from inside mount namespace"
do_facet $SINGLEAGT nsenter -t $PID -U -m dd if=/dev/zero of=$file bs=1024 count=1 ||
error "failed to dd write to $file"
- do_facet $SINGLEAGT nsenter -t $PID -U -m $LFS pcc attach \
+ do_facet $SINGLEAGT nsenter -t $PID -U -m $LFS pcc attach -w \
-i $HSM_ARCHIVE_NUMBER $file || error "cannot attach $file"
do_facet $SINGLEAGT nsenter -t $PID -U -m $LFS pcc state $file
chmod a+rw $DIR/$tdir/$tfile.shell
stack_trap 'rm -f $DIR/$tdir/$tfile.shell' EXIT
do_facet $SINGLEAGT nsenter -t $PID -U -m "bash $DIR/$tdir/$tfile.shell"
- do_facet $SINGLEAGT nsenter -t $PID -U -m $LFS pcc attach -i $HSM_ARCHIVE_NUMBER \
+ do_facet $SINGLEAGT nsenter -t $PID -U -m $LFS pcc attach -w -i $HSM_ARCHIVE_NUMBER \
$file || error "RW-PCC attach $file failed"
check_lpcc_state $file "readwrite"