* [PATCH]btrfs-progs: Post btrfs-convert verify permissions and acls
@ 2016-09-05 19:27 Lakshmipathi.G
2016-09-06 15:16 ` David Sterba
[not found] ` <fb74fa46-43b2-80e3-a6e5-0026d8831e19@cn.fujitsu.com>
0 siblings, 2 replies; 3+ messages in thread
From: Lakshmipathi.G @ 2016-09-05 19:27 UTC (permalink / raw)
To: linux-btrfs
Signed-off-by: Lakshmipathi.G <Lakshmipathi.G@giis.co.in>
---
tests/common.convert | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 94 insertions(+), 1 deletion(-)
diff --git a/tests/common.convert b/tests/common.convert
index 4e3d49c..67c99b1 100644
--- a/tests/common.convert
+++ b/tests/common.convert
@@ -123,6 +123,38 @@ convert_test_gen_checksums() {
count=1 >/dev/null 2>&1
run_check_stdout $SUDO_HELPER find $TEST_MNT -type f ! -name 'image' -exec md5sum {} \+ > "$CHECKSUMTMP"
}
+# list $TEST_MNT data set file permissions.
+# $1: path where the permissions will be stored
+convert_test_perm() {
+ local PERMTMP
+ PERMTMP="$1"
+ FILES_LIST=$(mktemp --tmpdir btrfs-progs-convert.fileslistXXXXXX)
+
+ run_check $SUDO_HELPER dd if=/dev/zero of=$TEST_MNT/test bs=$nodesize \
+ count=1 >/dev/null 2>&1
+ run_check_stdout $SUDO_HELPER find $TEST_MNT -type f ! -name 'image' -fprint $FILES_LIST
+ #Fix directory entries order.
+ sort $FILES_LIST -o $FILES_LIST
+ for file in `cat $FILES_LIST` ;do
+ run_check_stdout $SUDO_HELPER getfacl --absolute-names $file >> "$PERMTMP"
+ done
+ rm $FILES_LIST
+}
+# list acls of files on $TEST_MNT
+# $1: path where the acls will be stored
+convert_test_acl() {
+ local ACLSTMP
+ ACLTMP="$1"
+ FILES_LIST=$(mktemp --tmpdir btrfs-progs-convert.fileslistXXXXXX)
+
+ run_check_stdout $SUDO_HELPER find $TEST_MNT/acls -type f -fprint $FILES_LIST
+ #Fix directory entries order.
+ sort $FILES_LIST -o $FILES_LIST
+ for file in `cat $FILES_LIST`;do
+ run_check_stdout $SUDO_HELPER getfattr --absolute-names -d $file >> "$ACLTMP"
+ done
+ rm $FILES_LIST
+}
# do conversion with given features and nodesize, fsck afterwards
# $1: features, argument of -O, can be empty
@@ -133,15 +165,68 @@ convert_test_do_convert() {
run_check $TOP/btrfs-show-super -Ffa $TEST_DEV
}
+# post conversion check, verify file permissions.
+# $1: file with ext permissions.
+convert_test_post_check_permissions() {
+ local EXT_PERMTMP
+ local BTRFS_PERMTMP
+
+ EXT_PERMTMP="$1"
+ BTRFS_PERMTMP=$(mktemp --tmpdir btrfs-progs-convert.permXXXXXX)
+ convert_test_perm "$BTRFS_PERMTMP"
+
+ btrfs_perm=`md5sum $BTRFS_PERMTMP | cut -f1 -d' '`
+ ext_perm=`md5sum $EXT_PERMTMP | cut -f1 -d' '`
+
+ if [ "$btrfs_perm" != "$ext_perm" ];
+ then
+ btrfs_perm_file=`md5sum $BTRFS_PERMTMP | cut -f2 -d' '`
+ ext_perm_file=`md5sum $EXT_PERMTMP | cut -f2 -d' '`
+ _fail "file permission failed. Mismatched BTRFS:$btrfs_perm_file:$btrfs_perm EXT:$ext_perm_file:$ext_perm"
+ fi
+
+ rm $BTRFS_PERMTMP
+}
+# post conversion check, compare BTRFS file acls against EXT.
+# $1: file with ext acls.
+convert_test_post_check_acl() {
+ local EXT_ACLTMP
+ local BTRFS_ACLTMP
+
+ EXT_ACLTMP="$1"
+ BTRFS_ACLTMP=$(mktemp --tmpdir btrfs-progs-convert.aclsXXXXXXX)
+ convert_test_acl "$BTRFS_ACLTMP"
+
+ btrfs_acl=`md5sum $BTRFS_ACLTMP | cut -f1 -d' '`
+ ext_acl=`md5sum $EXT_ACLTMP | cut -f1 -d' '`
+
+ if [ "$btrfs_acl" != "$ext_acl" ]
+ then
+ btrfs_acl_file=`md5sum $BTRFS_ACLTMP | cut -f2 -d' '`
+ ext_acl_file=`md5sum $EXT_ACLTMP | cut -f2 -d' '`
+ _fail "file acl failed. Mismatched BTRFS:$btrfs_acl_file:$btrfs_acl EXT:$ext_acl_file:$ext_acl"
+ fi
+
+ rm $BTRFS_ACLTMP
+}
# post conversion checks, verify md5sums
# $1: file with checksums
+# $2: file with permissions.
+# $3: file with acl entries.
convert_test_post_check() {
local CHECKSUMTMP
+ local EXT_PERMTMP
+ local EXT_ACLTMP
+
CHECKSUMTMP="$1"
+ EXT_PERMTMP="$2"
+ EXT_ACLTMP="$3"
run_check_mount_test_dev
run_check_stdout $SUDO_HELPER md5sum -c "$CHECKSUMTMP" |
grep -q 'FAILED' && _fail "file validation failed"
+ convert_test_post_check_permissions "$EXT_PERMTMP"
+ convert_test_post_check_acl "$EXT_ACLTMP"
run_check_umount_test_dev
}
@@ -161,6 +246,8 @@ convert_test() {
local nodesize
local msg
local CHECKSUMTMP
+ local EXT_PERMTMP
+ local EXT_ACLTMP
features="$1"
msg="$2"
@@ -170,13 +257,19 @@ convert_test() {
convert_test_prep_fs "$@"
populate_fs
CHECKSUMTMP=$(mktemp --tmpdir btrfs-progs-convert.XXXXXXXXXX)
+ EXT_PERMTMP=$(mktemp --tmpdir btrfs-progs-convert.permXXXXXX)
+ EXT_ACLTMP=$(mktemp --tmpdir btrfs-progs-convert.aclsXXXXXXX)
convert_test_gen_checksums "$CHECKSUMTMP"
+ convert_test_perm "$EXT_PERMTMP"
+ convert_test_acl "$EXT_ACLTMP"
run_check_umount_test_dev
convert_test_do_convert "$features" "$nodesize"
- convert_test_post_check "$CHECKSUMTMP"
+ convert_test_post_check "$CHECKSUMTMP" "$EXT_PERMTMP" "$EXT_ACLTMP"
rm $CHECKSUMTMP
+ rm $EXT_PERMTMP
+ rm $EXT_ACLTMP
convert_test_post_rollback
}
--
1.9.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH]btrfs-progs: Post btrfs-convert verify permissions and acls
2016-09-05 19:27 [PATCH]btrfs-progs: Post btrfs-convert verify permissions and acls Lakshmipathi.G
@ 2016-09-06 15:16 ` David Sterba
[not found] ` <fb74fa46-43b2-80e3-a6e5-0026d8831e19@cn.fujitsu.com>
1 sibling, 0 replies; 3+ messages in thread
From: David Sterba @ 2016-09-06 15:16 UTC (permalink / raw)
To: Lakshmipathi.G; +Cc: linux-btrfs
On Mon, Sep 05, 2016 at 09:27:36PM +0200, Lakshmipathi.G wrote:
> Signed-off-by: Lakshmipathi.G <Lakshmipathi.G@giis.co.in>
Applied, thanks.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH]btrfs-progs: Post btrfs-convert verify permissions and acls
[not found] ` <fb74fa46-43b2-80e3-a6e5-0026d8831e19@cn.fujitsu.com>
@ 2016-09-20 16:28 ` lakshmipathi.g
0 siblings, 0 replies; 3+ messages in thread
From: lakshmipathi.g @ 2016-09-20 16:28 UTC (permalink / raw)
To: Qu Wenruo; +Cc: linux-btrfs
On 2016-09-19 20:17, Qu Wenruo wrote:
> Hi Laksmipathi,
>
> At 09/06/2016 03:27 AM, Lakshmipathi.G wrote:
>> Signed-off-by: Lakshmipathi.G <Lakshmipathi.G@giis.co.in>
>> ---
>> tests/common.convert | 95
>> +++++++++++++++++++++++++++++++++++++++++++++++++++-
>> 1 file changed, 94 insertions(+), 1 deletion(-)
>>
>> diff --git a/tests/common.convert b/tests/common.convert
>> index 4e3d49c..67c99b1 100644
>> --- a/tests/common.convert
>> +++ b/tests/common.convert
>> @@ -123,6 +123,38 @@ convert_test_gen_checksums() {
>> count=1 >/dev/null 2>&1
>> run_check_stdout $SUDO_HELPER find $TEST_MNT -type f ! -name 'image'
>> -exec md5sum {} \+ > "$CHECKSUMTMP"
>> }
>> +# list $TEST_MNT data set file permissions.
>> +# $1: path where the permissions will be stored
>> +convert_test_perm() {
>> + local PERMTMP
>> + PERMTMP="$1"
>> + FILES_LIST=$(mktemp --tmpdir btrfs-progs-convert.fileslistXXXXXX)
>> +
>> + run_check $SUDO_HELPER dd if=/dev/zero of=$TEST_MNT/test
>> bs=$nodesize \
>> + count=1 >/dev/null 2>&1
>> + run_check_stdout $SUDO_HELPER find $TEST_MNT -type f ! -name 'image'
>> -fprint $FILES_LIST
>> + #Fix directory entries order.
>> + sort $FILES_LIST -o $FILES_LIST
>> + for file in `cat $FILES_LIST` ;do
>> + run_check_stdout $SUDO_HELPER getfacl --absolute-names $file >>
>> "$PERMTMP"
>> + done
>> + rm $FILES_LIST
>> +}
>> +# list acls of files on $TEST_MNT
>> +# $1: path where the acls will be stored
>> +convert_test_acl() {
>> + local ACLSTMP
>> + ACLTMP="$1"
>> + FILES_LIST=$(mktemp --tmpdir btrfs-progs-convert.fileslistXXXXXX)
>> +
>> + run_check_stdout $SUDO_HELPER find $TEST_MNT/acls -type f -fprint
>> $FILES_LIST
>> + #Fix directory entries order.
>> + sort $FILES_LIST -o $FILES_LIST
>> + for file in `cat $FILES_LIST`;do
>> + run_check_stdout $SUDO_HELPER getfattr --absolute-names -d $file >>
>> "$ACLTMP"
>> + done
>> + rm $FILES_LIST
>> +}
>>
>> # do conversion with given features and nodesize, fsck afterwards
>> # $1: features, argument of -O, can be empty
>> @@ -133,15 +165,68 @@ convert_test_do_convert() {
>> run_check $TOP/btrfs-show-super -Ffa $TEST_DEV
>> }
>>
>> +# post conversion check, verify file permissions.
>> +# $1: file with ext permissions.
>> +convert_test_post_check_permissions() {
>> + local EXT_PERMTMP
>> + local BTRFS_PERMTMP
>> +
>> + EXT_PERMTMP="$1"
>> + BTRFS_PERMTMP=$(mktemp --tmpdir btrfs-progs-convert.permXXXXXX)
>> + convert_test_perm "$BTRFS_PERMTMP"
>> +
>> + btrfs_perm=`md5sum $BTRFS_PERMTMP | cut -f1 -d' '`
>> + ext_perm=`md5sum $EXT_PERMTMP | cut -f1 -d' '
>
> When running test case 005, the test script hangs here.
> And EXT_PERMTMP seems to be empty, so md5sum is waiting input from
> stdio, causing the hang.
>
> Any idea to fix it?
>
> Thanks,
> Qu
>
Hi Qu,
Can you confirm whether in-place 'sort' command used convert_test_perm()
is creating appropriate sorted file and doesn't create empty file?
$ sort --version
sort (GNU coreutils) 8.22
Cheers,
Lakshmipathi.G
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-09-20 16:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-05 19:27 [PATCH]btrfs-progs: Post btrfs-convert verify permissions and acls Lakshmipathi.G
2016-09-06 15:16 ` David Sterba
[not found] ` <fb74fa46-43b2-80e3-a6e5-0026d8831e19@cn.fujitsu.com>
2016-09-20 16:28 ` lakshmipathi.g
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.