mount -t xfs $SCRATCH_DEV $SCRATCH_MNT || _fail "mount failed"
_create_test_bed
-for nsp in user root; do
+for nsp in user xfsroot; do
for inode in reg dir lnk dev/b dev/c dev/p; do
echo; echo "=== TYPE $inode; NAMESPACE $nsp"; echo
echo "*** set/get one initially empty attribute"
- setfattr -l -N $nsp -n name $SCRATCH_MNT/$inode
- getfattr -al -N $nsp -d $SCRATCH_MNT/$inode
+ setfattr -l -n $nsp.name $SCRATCH_MNT/$inode
+ getfattr -al -d $SCRATCH_MNT/$inode
echo "*** overwrite empty, set several new attributes"
- setfattr -l -N $nsp -n name -v 0xbabe $SCRATCH_MNT/$inode
- setfattr -l -N $nsp -n name2 -v 0xdeadbeef $SCRATCH_MNT/$inode
- setfattr -l -N $nsp -n name3 -v 0xdeface $SCRATCH_MNT/$inode
+ setfattr -l -n $nsp.name -v 0xbabe $SCRATCH_MNT/$inode
+ setfattr -l -n $nsp.name2 -v 0xdeadbeef $SCRATCH_MNT/$inode
+ setfattr -l -n $nsp.name3 -v 0xdeface $SCRATCH_MNT/$inode
echo "*** fetch several attribute names and values (hex)"
- getfattr -al -N $nsp -d -e hex $SCRATCH_MNT/$inode
+ getfattr -al -d -e hex $SCRATCH_MNT/$inode
echo "*** fetch several attribute names and values (base64)"
- getfattr -al -N $nsp -d -e base64 $SCRATCH_MNT/$inode
+ getfattr -al -d -e base64 $SCRATCH_MNT/$inode
echo "*** shrink value of an existing attribute"
- setfattr -l -N $nsp -n name2 -v 0xdeaf $SCRATCH_MNT/$inode
- getfattr -al -N $nsp -d -e hex $SCRATCH_MNT/$inode
+ setfattr -l -n $nsp.name2 -v 0xdeaf $SCRATCH_MNT/$inode
+ getfattr -al -d -e hex $SCRATCH_MNT/$inode
echo "*** grow value of existing attribute"
- setfattr -l -N $nsp -n name2 -v 0xdecade $SCRATCH_MNT/$inode
- getfattr -al -N $nsp -d -e hex $SCRATCH_MNT/$inode
+ setfattr -l -n $nsp.name2 -v 0xdecade $SCRATCH_MNT/$inode
+ getfattr -al -d -e hex $SCRATCH_MNT/$inode
echo "*** set an empty value for second attribute"
- setfattr -l -N $nsp -n name2 $SCRATCH_MNT/$inode
- getfattr -al -N $nsp -d -n name2 $SCRATCH_MNT/$inode
+ setfattr -l -n $nsp.name2 $SCRATCH_MNT/$inode
+ getfattr -al -d -n $nsp.name2 $SCRATCH_MNT/$inode
echo "*** overwrite empty value"
- setfattr -l -N $nsp -n name2 -v 0xcafe $SCRATCH_MNT/$inode
- getfattr -al -N $nsp -d -e hex -n name2 $SCRATCH_MNT/$inode
+ setfattr -l -n $nsp.name2 -v 0xcafe $SCRATCH_MNT/$inode
+ getfattr -al -d -e hex -n $nsp.name2 $SCRATCH_MNT/$inode
echo "*** remove attribute"
- setfattr -l -N $nsp -x name2 $SCRATCH_MNT/$inode
- getfattr -al -N $nsp -d -n name2 $SCRATCH_MNT/$inode
+ setfattr -l -x $nsp.name2 $SCRATCH_MNT/$inode
+ getfattr -al -d -n $nsp.name2 $SCRATCH_MNT/$inode
echo "*** final list (strings, type=$inode, nsp=$nsp)"
getfattr -als -d $SCRATCH_MNT/$inode
# must set some descents' attributes to be useful
mkdir -p $SCRATCH_MNT/here/up/ascend
mkdir -p $SCRATCH_MNT/descend/down/here
- find $SCRATCH_MNT/descend | xargs setfattr -N user -n x -v yz
- find $SCRATCH_MNT/descend | xargs setfattr -N user -n 1 -v 23
- find $SCRATCH_MNT/here | xargs setfattr -N root -n a -v bc
- find $SCRATCH_MNT/here | xargs setfattr -N root -n 9 -v 87
+ find $SCRATCH_MNT/descend | xargs setfattr -n user.x -v yz
+ find $SCRATCH_MNT/descend | xargs setfattr -n user.1 -v 23
+ find $SCRATCH_MNT/here | xargs setfattr -n root.a -v bc
+ find $SCRATCH_MNT/here | xargs setfattr -n root.9 -v 87
# whack a symlink in the middle, just to be difficult
ln -s $SCRATCH_MNT/here/up $SCRATCH_MNT/descend/and
# dump out our new starting point
*** set/get one initially empty attribute
# file: SCRATCH_MNT/reg
-# namespace: user
-name
+user.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/reg
-# namespace: user
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeadbeef
+user.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/reg
-# namespace: user
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+user.name=0sur4=
+user.name2=0s3q2+7w==
+user.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/reg
-# namespace: user
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeaf
+user.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/reg
-# namespace: user
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdecade
+user.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/reg
-# namespace: user
-name2
+user.name2
*** overwrite empty value
# file: SCRATCH_MNT/reg
-# namespace: user
-name2=0xcafe
+user.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/reg: name2: No such attribute
+SCRATCH_MNT/reg: user.name2: No such attribute
*** final list (strings, type=reg, nsp=user)
# file: SCRATCH_MNT/reg
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
=== TYPE dir; NAMESPACE user
*** set/get one initially empty attribute
# file: SCRATCH_MNT/dir
-# namespace: user
-name
+user.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dir
-# namespace: user
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeadbeef
+user.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dir
-# namespace: user
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+user.name=0sur4=
+user.name2=0s3q2+7w==
+user.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/dir
-# namespace: user
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeaf
+user.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/dir
-# namespace: user
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdecade
+user.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/dir
-# namespace: user
-name2
+user.name2
*** overwrite empty value
# file: SCRATCH_MNT/dir
-# namespace: user
-name2=0xcafe
+user.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dir: name2: No such attribute
+SCRATCH_MNT/dir: user.name2: No such attribute
*** final list (strings, type=dir, nsp=user)
# file: SCRATCH_MNT/dir
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
=== TYPE lnk; NAMESPACE user
*** set/get one initially empty attribute
# file: SCRATCH_MNT/lnk
-# namespace: user
-name
+user.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/lnk
-# namespace: user
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeadbeef
+user.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/lnk
-# namespace: user
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+user.name=0sur4=
+user.name2=0s3q2+7w==
+user.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/lnk
-# namespace: user
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeaf
+user.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/lnk
-# namespace: user
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdecade
+user.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/lnk
-# namespace: user
-name2
+user.name2
*** overwrite empty value
# file: SCRATCH_MNT/lnk
-# namespace: user
-name2=0xcafe
+user.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/lnk: name2: No such attribute
+SCRATCH_MNT/lnk: user.name2: No such attribute
*** final list (strings, type=lnk, nsp=user)
# file: SCRATCH_MNT/lnk
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
=== TYPE dev/b; NAMESPACE user
*** set/get one initially empty attribute
# file: SCRATCH_MNT/dev/b
-# namespace: user
-name
+user.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dev/b
-# namespace: user
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeadbeef
+user.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dev/b
-# namespace: user
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+user.name=0sur4=
+user.name2=0s3q2+7w==
+user.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/dev/b
-# namespace: user
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeaf
+user.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/dev/b
-# namespace: user
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdecade
+user.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/dev/b
-# namespace: user
-name2
+user.name2
*** overwrite empty value
# file: SCRATCH_MNT/dev/b
-# namespace: user
-name2=0xcafe
+user.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dev/b: name2: No such attribute
+SCRATCH_MNT/dev/b: user.name2: No such attribute
*** final list (strings, type=dev/b, nsp=user)
# file: SCRATCH_MNT/dev/b
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
=== TYPE dev/c; NAMESPACE user
*** set/get one initially empty attribute
# file: SCRATCH_MNT/dev/c
-# namespace: user
-name
+user.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dev/c
-# namespace: user
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeadbeef
+user.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dev/c
-# namespace: user
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+user.name=0sur4=
+user.name2=0s3q2+7w==
+user.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/dev/c
-# namespace: user
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeaf
+user.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/dev/c
-# namespace: user
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdecade
+user.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/dev/c
-# namespace: user
-name2
+user.name2
*** overwrite empty value
# file: SCRATCH_MNT/dev/c
-# namespace: user
-name2=0xcafe
+user.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dev/c: name2: No such attribute
+SCRATCH_MNT/dev/c: user.name2: No such attribute
*** final list (strings, type=dev/c, nsp=user)
# file: SCRATCH_MNT/dev/c
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
=== TYPE dev/p; NAMESPACE user
*** set/get one initially empty attribute
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name
+user.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeadbeef
+user.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+user.name=0sur4=
+user.name2=0s3q2+7w==
+user.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdeaf
+user.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+user.name=0xbabe
+user.name2=0xdecade
+user.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name2
+user.name2
*** overwrite empty value
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name2=0xcafe
+user.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dev/p: name2: No such attribute
+SCRATCH_MNT/dev/p: user.name2: No such attribute
*** final list (strings, type=dev/p, nsp=user)
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
-=== TYPE reg; NAMESPACE root
+=== TYPE reg; NAMESPACE xfsroot
*** set/get one initially empty attribute
# file: SCRATCH_MNT/reg
-# namespace: root
-name
+xfsroot.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/reg
-# namespace: root
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeadbeef
+xfsroot.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/reg
-# namespace: root
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+xfsroot.name=0sur4=
+xfsroot.name2=0s3q2+7w==
+xfsroot.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/reg
-# namespace: root
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeaf
+xfsroot.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/reg
-# namespace: root
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdecade
+xfsroot.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/reg
-# namespace: root
-name2
+xfsroot.name2
*** overwrite empty value
# file: SCRATCH_MNT/reg
-# namespace: root
-name2=0xcafe
+xfsroot.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/reg: name2: No such attribute
-*** final list (strings, type=reg, nsp=root)
+SCRATCH_MNT/reg: xfsroot.name2: No such attribute
+*** final list (strings, type=reg, nsp=xfsroot)
# file: SCRATCH_MNT/reg
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
+xfsroot.name="\272\276"
+xfsroot.name3="\336\372\316"
-# file: SCRATCH_MNT/reg
-# namespace: root
-name="\272\276"
-name3="\336\372\316"
-
-=== TYPE dir; NAMESPACE root
+=== TYPE dir; NAMESPACE xfsroot
*** set/get one initially empty attribute
# file: SCRATCH_MNT/dir
-# namespace: root
-name
+xfsroot.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dir
-# namespace: root
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeadbeef
+xfsroot.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dir
-# namespace: root
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+xfsroot.name=0sur4=
+xfsroot.name2=0s3q2+7w==
+xfsroot.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/dir
-# namespace: root
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeaf
+xfsroot.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/dir
-# namespace: root
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdecade
+xfsroot.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/dir
-# namespace: root
-name2
+xfsroot.name2
*** overwrite empty value
# file: SCRATCH_MNT/dir
-# namespace: root
-name2=0xcafe
+xfsroot.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dir: name2: No such attribute
-*** final list (strings, type=dir, nsp=root)
+SCRATCH_MNT/dir: xfsroot.name2: No such attribute
+*** final list (strings, type=dir, nsp=xfsroot)
# file: SCRATCH_MNT/dir
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
-
-# file: SCRATCH_MNT/dir
-# namespace: root
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
+xfsroot.name="\272\276"
+xfsroot.name3="\336\372\316"
-=== TYPE lnk; NAMESPACE root
+=== TYPE lnk; NAMESPACE xfsroot
*** set/get one initially empty attribute
# file: SCRATCH_MNT/lnk
-# namespace: root
-name
+xfsroot.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/lnk
-# namespace: root
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeadbeef
+xfsroot.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/lnk
-# namespace: root
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+xfsroot.name=0sur4=
+xfsroot.name2=0s3q2+7w==
+xfsroot.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/lnk
-# namespace: root
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeaf
+xfsroot.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/lnk
-# namespace: root
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdecade
+xfsroot.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/lnk
-# namespace: root
-name2
+xfsroot.name2
*** overwrite empty value
# file: SCRATCH_MNT/lnk
-# namespace: root
-name2=0xcafe
+xfsroot.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/lnk: name2: No such attribute
-*** final list (strings, type=lnk, nsp=root)
-# file: SCRATCH_MNT/lnk
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
-
+SCRATCH_MNT/lnk: xfsroot.name2: No such attribute
+*** final list (strings, type=lnk, nsp=xfsroot)
# file: SCRATCH_MNT/lnk
-# namespace: root
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
+xfsroot.name="\272\276"
+xfsroot.name3="\336\372\316"
-=== TYPE dev/b; NAMESPACE root
+=== TYPE dev/b; NAMESPACE xfsroot
*** set/get one initially empty attribute
# file: SCRATCH_MNT/dev/b
-# namespace: root
-name
+xfsroot.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dev/b
-# namespace: root
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeadbeef
+xfsroot.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dev/b
-# namespace: root
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+xfsroot.name=0sur4=
+xfsroot.name2=0s3q2+7w==
+xfsroot.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/dev/b
-# namespace: root
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeaf
+xfsroot.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/dev/b
-# namespace: root
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdecade
+xfsroot.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/dev/b
-# namespace: root
-name2
+xfsroot.name2
*** overwrite empty value
# file: SCRATCH_MNT/dev/b
-# namespace: root
-name2=0xcafe
+xfsroot.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dev/b: name2: No such attribute
-*** final list (strings, type=dev/b, nsp=root)
+SCRATCH_MNT/dev/b: xfsroot.name2: No such attribute
+*** final list (strings, type=dev/b, nsp=xfsroot)
# file: SCRATCH_MNT/dev/b
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
+xfsroot.name="\272\276"
+xfsroot.name3="\336\372\316"
-# file: SCRATCH_MNT/dev/b
-# namespace: root
-name="\272\276"
-name3="\336\372\316"
-
-=== TYPE dev/c; NAMESPACE root
+=== TYPE dev/c; NAMESPACE xfsroot
*** set/get one initially empty attribute
# file: SCRATCH_MNT/dev/c
-# namespace: root
-name
+xfsroot.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dev/c
-# namespace: root
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeadbeef
+xfsroot.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dev/c
# namespace: root
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+xfsroot.name=0sur4=
+xfsroot.name2=0s3q2+7w==
+xfsroot.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/dev/c
# namespace: root
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeaf
+xfsroot.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/dev/c
# namespace: root
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdecade
+xfsroot.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/dev/c
-# namespace: root
-name2
+xfsroot.name2
*** overwrite empty value
# file: SCRATCH_MNT/dev/c
-# namespace: root
-name2=0xcafe
+xfsroot.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dev/c: name2: No such attribute
-*** final list (strings, type=dev/c, nsp=root)
-# file: SCRATCH_MNT/dev/c
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
-
+SCRATCH_MNT/dev/c: xfsroot.name2: No such attribute
+*** final list (strings, type=dev/c, nsp=xfsroot)
# file: SCRATCH_MNT/dev/c
-# namespace: root
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
+xfsroot.name="\272\276"
+xfsroot.name3="\336\372\316"
-=== TYPE dev/p; NAMESPACE root
+=== TYPE dev/p; NAMESPACE xfsroot
*** set/get one initially empty attribute
# file: SCRATCH_MNT/dev/p
-# namespace: root
-name
+xfsroot.name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: SCRATCH_MNT/dev/p
-# namespace: root
-name=0xbabe
-name2=0xdeadbeef
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeadbeef
+xfsroot.name3=0xdeface
*** fetch several attribute names and values (base64)
# file: SCRATCH_MNT/dev/p
-# namespace: root
-name=0sur4=
-name2=0s3q2+7w==
-name3=0s3vrO
+xfsroot.name=0sur4=
+xfsroot.name2=0s3q2+7w==
+xfsroot.name3=0s3vrO
*** shrink value of an existing attribute
# file: SCRATCH_MNT/dev/p
-# namespace: root
-name=0xbabe
-name2=0xdeaf
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdeaf
+xfsroot.name3=0xdeface
*** grow value of existing attribute
# file: SCRATCH_MNT/dev/p
-# namespace: root
-name=0xbabe
-name2=0xdecade
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name2=0xdecade
+xfsroot.name3=0xdeface
*** set an empty value for second attribute
# file: SCRATCH_MNT/dev/p
-# namespace: root
-name2
+xfsroot.name2
*** overwrite empty value
# file: SCRATCH_MNT/dev/p
-# namespace: root
-name2=0xcafe
+xfsroot.name2=0xcafe
*** remove attribute
-SCRATCH_MNT/dev/p: name2: No such attribute
-*** final list (strings, type=dev/p, nsp=root)
+SCRATCH_MNT/dev/p: xfsroot.name2: No such attribute
+*** final list (strings, type=dev/p, nsp=xfsroot)
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name="\272\276"
-name3="\336\372\316"
+user.name="\272\276"
+user.name3="\336\372\316"
# file: SCRATCH_MNT/dev/p
-# namespace: root
-name="\272\276"
-name3="\336\372\316"
+xfsroot.name="\272\276"
+xfsroot.name3="\336\372\316"
*** forward directory descent with us following symlinks
# file: SCRATCH_MNT/reg
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/reg
-# namespace: root
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dir
-# namespace: user
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dir
-# namespace: root
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/lnk
-# namespace: user
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/lnk
-# namespace: root
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dev/b
-# namespace: user
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/b
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/c
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dev/c
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dev/p
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/here
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/here/up
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/here/up/ascend
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/descend
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a
# file: SCRATCH_MNT/descend/down
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a
# file: SCRATCH_MNT/descend/down/here
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a
# file: SCRATCH_MNT/descend/and/ascend
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
*** reverse directory descent with us following symlinks
# file: SCRATCH_MNT/reg
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/reg
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dir
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dir
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/lnk
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/lnk
-# namespace: root
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dev/b
-# namespace: user
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/b
-# namespace: root
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dev/c
-# namespace: user
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/c
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dev/p
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/here/up/ascend
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/here/up
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/here
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/descend/down/here
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a
# file: SCRATCH_MNT/descend/down
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a
# file: SCRATCH_MNT/descend/and/ascend
-# namespace: root
-9=0x3837
-a=0x6263
+root.9=0x3837
+root.a=0x6263
# file: SCRATCH_MNT/descend
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a
*** forward directory descent without following symlinks
# file: SCRATCH_MNT/reg
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/reg
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dir
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dir
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/b
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dev/b
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/c
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dev/c
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/p
-# namespace: user
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
# file: SCRATCH_MNT/dev/p
-# namespace: root
-name=0xbabe
-name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/here
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/here/up
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/here/up/ascend
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/descend
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a
# file: SCRATCH_MNT/descend/down
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a
# file: SCRATCH_MNT/descend/down/here
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a
*** reverse directory descent without following symlinks
# file: SCRATCH_MNT/reg
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/reg
-# namespace: root
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dir
-# namespace: user
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dir
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/b
-# namespace: user
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dev/b
-# namespace: root
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dev/c
-# namespace: user
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/c
-# namespace: root
-name=0xbabe
-name3=0xdeface
-
-# file: SCRATCH_MNT/dev/p
-# namespace: user
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/dev/p
-# namespace: root
-name=0xbabe
-name3=0xdeface
+user.name=0xbabe
+user.name3=0xdeface
+xfsroot.name=0xbabe
+xfsroot.name3=0xdeface
# file: SCRATCH_MNT/here/up/ascend
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/here/up
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/here
-# namespace: root
-9=0x3837
-a=0x6263
+xfsroot.9=0x3837
+xfsroot.a=0x6263
# file: SCRATCH_MNT/descend/down/here
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a
# file: SCRATCH_MNT/descend/down
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a
# file: SCRATCH_MNT/descend
-# namespace: user
-1=0x3233
-x=0x797a
+user.1=0x3233
+user.x=0x797a