common: open files in ro mode for extent and hole count helpers
authorFilipe Manana <fdmanana@suse.com>
Tue, 5 Nov 2019 14:56:22 +0000 (14:56 +0000)
committerEryu Guan <guaneryu@gmail.com>
Sun, 10 Nov 2019 13:09:13 +0000 (21:09 +0800)
The helper functions _count_extents() and _count_holes() open their
input file in RW mode to call fiemap, however opening it in RO mode
is enough.  By opening them in RW mode it also makes it not possible
to use them against files residing in btrfs readonly snapshots for
example.

So just open the files in RO mode in these functions.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/rc

index ef0c250923e4c38752eddcd679c66f3f8406ded2..238ffef9d959e5309abcb73724c687e62d7877b5 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -3199,12 +3199,12 @@ _require_metadata_journaling()
 
 _count_extents()
 {
-       $XFS_IO_PROG -c "fiemap" $1 | tail -n +2 | grep -v hole | wc -l
+       $XFS_IO_PROG -r -c "fiemap" $1 | tail -n +2 | grep -v hole | wc -l
 }
 
 _count_holes()
 {
-       $XFS_IO_PROG -c "fiemap" $1 | tail -n +2 | grep hole | wc -l
+       $XFS_IO_PROG -r -c "fiemap" $1 | tail -n +2 | grep hole | wc -l
 }
 
 _count_attr_extents()