File: [Development] / xfs-cmds / xfstests / 062.out (download)
Revision 1.1, Fri Oct 5 08:12:26 2001 UTC (16 years ago) by nathans
Branch: MAIN
tests out getfattr/setfattr with XFS - different namespaces, different
inode types, different directory descent options, backup/restore - the
works. fairly comprehensive - based on Andreas' tests for ext2, but
extended to do a few more things.
|
QA output created by 062
meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
data = bsize=XXX blocks=XXX, imaxpct=PCT
= sunit=XXX swidth=XXX, unwritten=X
naming =VERN bsize=XXX
log =LDEV bsize=XXX blocks=XXX
realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
*** create test bed
/mnt/scratch
/mnt/scratch/dev
/mnt/scratch/dev/b
/mnt/scratch/dev/c
/mnt/scratch/dev/p
/mnt/scratch/dir
/mnt/scratch/lnk
/mnt/scratch/reg
=== TYPE reg; NAMESPACE user
*** set/get one initially empty attribute
# file: /mnt/scratch/reg
# namespace: user
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/reg
# namespace: user
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/reg
# namespace: user
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/reg
# namespace: user
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/reg
# namespace: user
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/reg
# namespace: user
name2
*** overwrite empty value
# file: /mnt/scratch/reg
# namespace: user
name2=0xcafe
*** remove attribute
/mnt/scratch/reg: name2: No such attribute
*** final list (strings, type=reg, nsp=user)
# file: /mnt/scratch/reg
# namespace: user
name="\272\276"
name3="\336\372\316"
=== TYPE dir; NAMESPACE user
*** set/get one initially empty attribute
# file: /mnt/scratch/dir
# namespace: user
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/dir
# namespace: user
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/dir
# namespace: user
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/dir
# namespace: user
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/dir
# namespace: user
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/dir
# namespace: user
name2
*** overwrite empty value
# file: /mnt/scratch/dir
# namespace: user
name2=0xcafe
*** remove attribute
/mnt/scratch/dir: name2: No such attribute
*** final list (strings, type=dir, nsp=user)
# file: /mnt/scratch/dir
# namespace: user
name="\272\276"
name3="\336\372\316"
=== TYPE lnk; NAMESPACE user
*** set/get one initially empty attribute
# file: /mnt/scratch/lnk
# namespace: user
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/lnk
# namespace: user
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/lnk
# namespace: user
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/lnk
# namespace: user
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/lnk
# namespace: user
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/lnk
# namespace: user
name2
*** overwrite empty value
# file: /mnt/scratch/lnk
# namespace: user
name2=0xcafe
*** remove attribute
/mnt/scratch/lnk: name2: No such attribute
*** final list (strings, type=lnk, nsp=user)
# file: /mnt/scratch/lnk
# namespace: user
name="\272\276"
name3="\336\372\316"
=== TYPE dev/b; NAMESPACE user
*** set/get one initially empty attribute
# file: /mnt/scratch/dev/b
# namespace: user
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/dev/b
# namespace: user
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/dev/b
# namespace: user
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/dev/b
# namespace: user
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/dev/b
# namespace: user
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/dev/b
# namespace: user
name2
*** overwrite empty value
# file: /mnt/scratch/dev/b
# namespace: user
name2=0xcafe
*** remove attribute
/mnt/scratch/dev/b: name2: No such attribute
*** final list (strings, type=dev/b, nsp=user)
# file: /mnt/scratch/dev/b
# namespace: user
name="\272\276"
name3="\336\372\316"
=== TYPE dev/c; NAMESPACE user
*** set/get one initially empty attribute
# file: /mnt/scratch/dev/c
# namespace: user
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/dev/c
# namespace: user
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/dev/c
# namespace: user
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/dev/c
# namespace: user
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/dev/c
# namespace: user
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/dev/c
# namespace: user
name2
*** overwrite empty value
# file: /mnt/scratch/dev/c
# namespace: user
name2=0xcafe
*** remove attribute
/mnt/scratch/dev/c: name2: No such attribute
*** final list (strings, type=dev/c, nsp=user)
# file: /mnt/scratch/dev/c
# namespace: user
name="\272\276"
name3="\336\372\316"
=== TYPE dev/p; NAMESPACE user
*** set/get one initially empty attribute
# file: /mnt/scratch/dev/p
# namespace: user
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/dev/p
# namespace: user
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/dev/p
# namespace: user
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/dev/p
# namespace: user
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/dev/p
# namespace: user
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/dev/p
# namespace: user
name2
*** overwrite empty value
# file: /mnt/scratch/dev/p
# namespace: user
name2=0xcafe
*** remove attribute
/mnt/scratch/dev/p: name2: No such attribute
*** final list (strings, type=dev/p, nsp=user)
# file: /mnt/scratch/dev/p
# namespace: user
name="\272\276"
name3="\336\372\316"
=== TYPE reg; NAMESPACE root
*** set/get one initially empty attribute
# file: /mnt/scratch/reg
# namespace: root
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/reg
# namespace: root
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/reg
# namespace: root
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/reg
# namespace: root
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/reg
# namespace: root
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/reg
# namespace: root
name2
*** overwrite empty value
# file: /mnt/scratch/reg
# namespace: root
name2=0xcafe
*** remove attribute
/mnt/scratch/reg: name2: No such attribute
*** final list (strings, type=reg, nsp=root)
# file: /mnt/scratch/reg
# namespace: user
name="\272\276"
name3="\336\372\316"
# file: /mnt/scratch/reg
# namespace: root
name="\272\276"
name3="\336\372\316"
=== TYPE dir; NAMESPACE root
*** set/get one initially empty attribute
# file: /mnt/scratch/dir
# namespace: root
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/dir
# namespace: root
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/dir
# namespace: root
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/dir
# namespace: root
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/dir
# namespace: root
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/dir
# namespace: root
name2
*** overwrite empty value
# file: /mnt/scratch/dir
# namespace: root
name2=0xcafe
*** remove attribute
/mnt/scratch/dir: name2: No such attribute
*** final list (strings, type=dir, nsp=root)
# file: /mnt/scratch/dir
# namespace: user
name="\272\276"
name3="\336\372\316"
# file: /mnt/scratch/dir
# namespace: root
name="\272\276"
name3="\336\372\316"
=== TYPE lnk; NAMESPACE root
*** set/get one initially empty attribute
# file: /mnt/scratch/lnk
# namespace: root
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/lnk
# namespace: root
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/lnk
# namespace: root
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/lnk
# namespace: root
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/lnk
# namespace: root
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/lnk
# namespace: root
name2
*** overwrite empty value
# file: /mnt/scratch/lnk
# namespace: root
name2=0xcafe
*** remove attribute
/mnt/scratch/lnk: name2: No such attribute
*** final list (strings, type=lnk, nsp=root)
# file: /mnt/scratch/lnk
# namespace: user
name="\272\276"
name3="\336\372\316"
# file: /mnt/scratch/lnk
# namespace: root
name="\272\276"
name3="\336\372\316"
=== TYPE dev/b; NAMESPACE root
*** set/get one initially empty attribute
# file: /mnt/scratch/dev/b
# namespace: root
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/dev/b
# namespace: root
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/dev/b
# namespace: root
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/dev/b
# namespace: root
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/dev/b
# namespace: root
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/dev/b
# namespace: root
name2
*** overwrite empty value
# file: /mnt/scratch/dev/b
# namespace: root
name2=0xcafe
*** remove attribute
/mnt/scratch/dev/b: name2: No such attribute
*** final list (strings, type=dev/b, nsp=root)
# file: /mnt/scratch/dev/b
# namespace: user
name="\272\276"
name3="\336\372\316"
# file: /mnt/scratch/dev/b
# namespace: root
name="\272\276"
name3="\336\372\316"
=== TYPE dev/c; NAMESPACE root
*** set/get one initially empty attribute
# file: /mnt/scratch/dev/c
# namespace: root
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/dev/c
# namespace: root
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/dev/c
# namespace: root
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/dev/c
# namespace: root
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/dev/c
# namespace: root
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/dev/c
# namespace: root
name2
*** overwrite empty value
# file: /mnt/scratch/dev/c
# namespace: root
name2=0xcafe
*** remove attribute
/mnt/scratch/dev/c: name2: No such attribute
*** final list (strings, type=dev/c, nsp=root)
# file: /mnt/scratch/dev/c
# namespace: user
name="\272\276"
name3="\336\372\316"
# file: /mnt/scratch/dev/c
# namespace: root
name="\272\276"
name3="\336\372\316"
=== TYPE dev/p; NAMESPACE root
*** set/get one initially empty attribute
# file: /mnt/scratch/dev/p
# namespace: root
name
*** overwrite empty, set several new attributes
*** fetch several attribute names and values (hex)
# file: /mnt/scratch/dev/p
# namespace: root
name=0xbabe
name2=0xdeadbeef
name3=0xdeface
*** fetch several attribute names and values (base64)
# file: /mnt/scratch/dev/p
# namespace: root
name=0sur4=
name2=0s3q2+7w==
name3=0s3vrO
*** shrink value of an existing attribute
# file: /mnt/scratch/dev/p
# namespace: root
name=0xbabe
name2=0xdeaf
name3=0xdeface
*** grow value of existing attribute
# file: /mnt/scratch/dev/p
# namespace: root
name=0xbabe
name2=0xdecade
name3=0xdeface
*** set an empty value for second attribute
# file: /mnt/scratch/dev/p
# namespace: root
name2
*** overwrite empty value
# file: /mnt/scratch/dev/p
# namespace: root
name2=0xcafe
*** remove attribute
/mnt/scratch/dev/p: name2: No such attribute
*** final list (strings, type=dev/p, nsp=root)
# file: /mnt/scratch/dev/p
# namespace: user
name="\272\276"
name3="\336\372\316"
# file: /mnt/scratch/dev/p
# namespace: root
name="\272\276"
name3="\336\372\316"
*** extend test bed
/mnt/scratch
/mnt/scratch/descend
/mnt/scratch/descend/and
/mnt/scratch/descend/down
/mnt/scratch/descend/down/here
/mnt/scratch/dev
/mnt/scratch/dev/b
/mnt/scratch/dev/c
/mnt/scratch/dev/p
/mnt/scratch/dir
/mnt/scratch/here
/mnt/scratch/here/up
/mnt/scratch/here/up/ascend
/mnt/scratch/lnk
/mnt/scratch/reg
*** forward directory descent with us following symlinks
# file: /mnt/scratch/reg
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/reg
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dir
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dir
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/lnk
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/lnk
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/b
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/b
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/c
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/c
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/p
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/p
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/here
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/here/up
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/here/up/ascend
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/descend
# namespace: user
1=0x3233
x=0x797a
# file: /mnt/scratch/descend/down
# namespace: user
1=0x3233
x=0x797a
# file: /mnt/scratch/descend/down/here
# namespace: user
1=0x3233
x=0x797a
# file: /mnt/scratch/descend/and/ascend
# namespace: root
9=0x3837
a=0x6263
*** reverse directory descent with us following symlinks
# file: /mnt/scratch/reg
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/reg
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dir
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dir
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/lnk
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/lnk
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/b
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/b
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/c
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/c
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/p
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/p
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/here/up/ascend
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/here/up
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/here
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/descend/down/here
# namespace: user
1=0x3233
x=0x797a
# file: /mnt/scratch/descend/down
# namespace: user
1=0x3233
x=0x797a
# file: /mnt/scratch/descend/and/ascend
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/descend
# namespace: user
1=0x3233
x=0x797a
*** forward directory descent without following symlinks
# file: /mnt/scratch/reg
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/reg
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dir
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dir
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/b
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/b
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/c
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/c
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/p
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/p
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/here
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/here/up
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/here/up/ascend
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/descend
# namespace: user
1=0x3233
x=0x797a
# file: /mnt/scratch/descend/down
# namespace: user
1=0x3233
x=0x797a
# file: /mnt/scratch/descend/down/here
# namespace: user
1=0x3233
x=0x797a
*** reverse directory descent without following symlinks
# file: /mnt/scratch/reg
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/reg
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dir
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dir
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/b
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/b
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/c
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/c
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/p
# namespace: user
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/dev/p
# namespace: root
name=0xbabe
name3=0xdeface
# file: /mnt/scratch/here/up/ascend
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/here/up
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/here
# namespace: root
9=0x3837
a=0x6263
# file: /mnt/scratch/descend/down/here
# namespace: user
1=0x3233
x=0x797a
# file: /mnt/scratch/descend/down
# namespace: user
1=0x3233
x=0x797a
# file: /mnt/scratch/descend
# namespace: user
1=0x3233
x=0x797a
*** backup everything
*** clear out the scratch device
*** reset test bed with no extended attributes
*** create test bed
/mnt/scratch
/mnt/scratch/dev
/mnt/scratch/dev/b
/mnt/scratch/dev/c
/mnt/scratch/dev/p
/mnt/scratch/dir
/mnt/scratch/lnk
/mnt/scratch/reg
*** extend test bed
/mnt/scratch
/mnt/scratch/descend
/mnt/scratch/descend/and
/mnt/scratch/descend/down
/mnt/scratch/descend/down/here
/mnt/scratch/dev
/mnt/scratch/dev/b
/mnt/scratch/dev/c
/mnt/scratch/dev/p
/mnt/scratch/dir
/mnt/scratch/here
/mnt/scratch/here/up
/mnt/scratch/here/up/ascend
/mnt/scratch/lnk
/mnt/scratch/reg
*** restore everything
*** compare before and after backups
*** unmount