From 457e591235d6d87600bb5000696f4b8683079dcd Mon Sep 17 00:00:00 2001 From: Tim Shimmin Date: Thu, 18 Apr 2002 02:45:46 +0000 Subject: [PATCH] Update for root EA names. --- 063.out | 18 +++++++++++------- common.dump | 31 +++++++++++++++++++++++-------- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/063.out b/063.out index eed2257b..0964745b 100644 --- a/063.out +++ b/063.out @@ -50,25 +50,29 @@ xfsrestore: Restore Status: SUCCESS Comparing dump directory with restore directory Looking at the extended attributes (EAs) EAs on dump -Attribute "attr2" had a 10 byte value for DUMP_DIR/biggg: -some_text2 +User names Attribute "attr5" had a 8 byte value for DUMP_DIR/dir: dir_text Attribute "attr1" had a 9 byte value for DUMP_DIR/smalll: some_text -Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg: -some_text4 Attribute "attr3" had a 10 byte value for DUMP_DIR/sub/smalll: some_text3 -EAs on restore +Root names Attribute "attr2" had a 10 byte value for DUMP_DIR/biggg: some_text2 +Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg: +some_text4 +EAs on restore +User names Attribute "attr5" had a 8 byte value for DUMP_DIR/dir: dir_text Attribute "attr1" had a 9 byte value for DUMP_DIR/smalll: some_text -Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg: -some_text4 Attribute "attr3" had a 10 byte value for DUMP_DIR/sub/smalll: some_text3 +Root names +Attribute "attr2" had a 10 byte value for DUMP_DIR/biggg: +some_text2 +Attribute "attr4" had a 10 byte value for DUMP_DIR/sub/biggg: +some_text4 Files 063.ea1 and 063.ea2 are identical diff --git a/common.dump b/common.dump index afc05078..1eadfa88 100644 --- a/common.dump +++ b/common.dump @@ -424,13 +424,13 @@ End-of-File _mk_fillconfig_ea() { cat <$tmp.config -# pathname size user group perm name value +# pathname size user group perm name value namespace # -smalll 10 $nobody $nobody 777 attr1 some_text -biggg 102400 $nobody $nobody 777 attr2 some_text2 -sub/smalll 10 $nobody $nobody 777 attr3 some_text3 -sub/biggg 102400 $nobody $nobody 777 attr4 some_text4 -dir d $nobody $nobody 777 attr5 dir_text +smalll 10 $nobody $nobody 777 attr1 some_text user +biggg 102400 $nobody $nobody 777 attr2 some_text2 root +sub/smalll 10 $nobody $nobody 777 attr3 some_text3 user +sub/biggg 102400 $nobody $nobody 777 attr4 some_text4 root +dir d $nobody $nobody 777 attr5 dir_text user # # Add more files so that there are more than the number # of streams. @@ -471,7 +471,7 @@ _do_create_dumpdir_fill() $verbose && echo -n "Setup " sed -e '/^#/d' $tmp.config \ - | while read file nbytes owner group perms ea_name ea_value + | while read file nbytes owner group perms ea_name ea_value namespace do if [ $nbytes = "d" ]; then # create a directory @@ -521,7 +521,11 @@ _do_create_dumpdir_fill() chmod $perms $file fi if [ -n "$ea_name" -a -n "$ea_value" ]; then - attr -s $ea_name -V $ea_value $file + if [ "X$namespace" = "Xroot" ]; then + attr -R -s $ea_name -V $ea_value $file + else + attr -s $ea_name -V $ea_value $file + fi fi $verbose && echo -n "." done @@ -1163,6 +1167,7 @@ _get_eas_on_path() # sed 's/["]//g' |\ # sort |\ # and this is now the Linux way... + echo "User names" getfattr --absolute-names -Rh $_path |\ perl -wn -e ' if (m/^# file: (\S+)/) { $file = $1 } @@ -1171,6 +1176,16 @@ _get_eas_on_path() while read file ea_name; do attr -g $ea_name $file done + + echo "Root names" + getfattr --absolute-names -Rh -m xfsroot $_path |\ + perl -wn -e ' + if (m/^# file: (\S+)/) { $file = $1 } + elsif (m/^xfsroot\.(\w+)/) { print $file, " ",$1,"\n" }' |\ + sort |\ + while read file ea_name; do + attr -R -g $ea_name $file + done } # -- 2.30.2