From a42490385d91831e83941d6999dd297d89e02027 Mon Sep 17 00:00:00 2001 From: shishir gowda Date: Mon, 11 Feb 2013 22:27:29 +0530 Subject: cluster/dht: Create linkfile with file uid/gid Currently, linkfile creation happens as root. use uid/gid returned from _cbk (link/rename) to set the correct ownership of the link files. Also added test/dht.rc to implement common dht functions Change-Id: Iecdcf52d89fed8286670ce430b9d19deebd27b8c BUG: 884597 Signed-off-by: shishir gowda Reviewed-on: http://review.gluster.org/4304 Tested-by: Gluster Build System Reviewed-by: Anand Avati --- tests/dht.rc | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 tests/dht.rc (limited to 'tests/dht.rc') diff --git a/tests/dht.rc b/tests/dht.rc new file mode 100644 index 00000000..1c811a63 --- /dev/null +++ b/tests/dht.rc @@ -0,0 +1,72 @@ +#!/bin/bash + +function get_layout() +{ + layout=`getfattr -n trusted.glusterfs.dht -e hex $1 2>&1|grep dht |cut -d = -f2` + if [ $? -eq 1] + then + return -1 + else + return $layout + fi + +} + +## populates $BRICK1 and $BRICK2 with hashed/cached subvolume. These will be +## used by get_cached_brick and get_hashed_brick + +function file_has_linkfile() +{ + k=0 + l=0 + while [ $k -lt $BRICK_COUNT ] + do + stat=`stat $B0/${V0}$k/$1 2>/dev/null` + if [ $? -eq 0 ] + then + let l++ + let "BRICK${l}=$k" + + fi + let k++ + done + return $l +} + +function get_cached_brick() +{ + i=1 + brick=$BRICK1 + while [ $i -lt 3 ] + do + test=`getfattr -n trusted.glusterfs.dht.linkto -e text $B0/${V0}$brick/$1 2>&1` + if [ $? -eq 1 ] + then + cached=$brick + i=$(( $i+3 )) + fi + brick=$BRICK1 + let i++ + done + + return $cached +} + +function get_hashed_brick() +{ + j=1 + brick=$BRICK1 + while [ $j -lt 3 ] + do + test=`getfattr -n trusted.glusterfs.dht.linkto -e text $B0/${V0}$brick/$1 2>&1` + if [ $? -eq 0 ] + then + hashed=$brick + j=$(( $j+3 )) + fi + brick=$BRICK2 + let j++ + done + + return $hashed +} -- cgit