diff options
Diffstat (limited to 'extras/clear_xattrs.sh')
| -rwxr-xr-x | extras/clear_xattrs.sh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/extras/clear_xattrs.sh b/extras/clear_xattrs.sh new file mode 100755 index 00000000000..dd04731e8bd --- /dev/null +++ b/extras/clear_xattrs.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# Clear the trusted.gfid xattr in the brick tree + +# This script must be run only on a stopped brick/volume +# Stop the volume to make sure no rebalance/replace-brick +# operations are on-going + +# Not much error checking +remove_xattrs () +{ + find "$1" -exec setfattr -h -x "trusted.gfid" '{}' \; > /dev/null 2>&1; + find "$1" -exec setfattr -h -x "trusted.glusterfs.volume-id" '{}' \; > /dev/null 2>&1; +} + +main () +{ + if [ -z "$1" ]; then + echo "Usage: $0 <brick_path(s)>"; + exit 1; + fi + + export PATH; + which getfattr > /dev/null 2>&1; + if [ $? -ne 0 ]; then + echo "attr package missing"; + exit 2; + fi + + which setfattr > /dev/null 2>&1; + if [ $? -ne 0 ]; then + echo "attr package missing"; + exit 2; + fi + + for brick in "$@"; + do + stat "$brick" > /dev/null 2>&1; + if [ $? -ne 0 ]; then + echo "brick: $brick does not exist"; + exit 3; + fi + if [ ! -d "$brick" ]; then + echo "$brick: not a directory"; + exit 4; + fi + echo "xattr clean-up in progress: $brick"; + remove_xattrs "$brick"; + echo "$brick ready to be used as a glusterfs brick"; + done; +} + +main "$@";
\ No newline at end of file |
