diff mbox series

[01/11] common/xfs: Add a helper to get an inode fork's extent count

Message ID 20201113112704.28798-2-chandanrlinux@gmail.com (mailing list archive)
State New, archived
Headers show
Series xfs: Tests to check for inode fork extent count overflow detection | expand

Commit Message

Chandan Babu R Nov. 13, 2020, 11:26 a.m. UTC
This commit adds the helper _scratch_get_iext_count() which returns an
inode fork's extent count.

Signed-off-by: Chandan Babu R <chandanrlinux@gmail.com>
---
 common/xfs | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

Comments

Darrick J. Wong Nov. 14, 2020, 12:10 a.m. UTC | #1
On Fri, Nov 13, 2020 at 04:56:53PM +0530, Chandan Babu R wrote:
> This commit adds the helper _scratch_get_iext_count() which returns an
> inode fork's extent count.
> 
> Signed-off-by: Chandan Babu R <chandanrlinux@gmail.com>
> ---
>  common/xfs | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/common/xfs b/common/xfs
> index 79dab058..45cd329c 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -883,6 +883,28 @@ _scratch_get_bmx_prefix() {
>  	return 1
>  }
>  
> +_scratch_get_iext_count()
> +{
> +	ino=$1
> +	whichfork=$2
> +
> +	case $whichfork in
> +		"attr")
> +			field=core.naextents
> +			;;
> +		"data")
> +			field=core.nextents
> +			;;
> +		*)
> +			return 1
> +	esac
> +
> +	nextents=$(_scratch_xfs_db  -c "inode $ino" -c "print $field")
> +	nextents=${nextents##${field} = }

This helper looks fine, but looking at the callers spread over the next
10 patches, I notice that you unmount to call this helper and
immediately remount the fs.

I wonder, is there a specific reason for grabbing the extent count that
way?  You can extract the same info online with `xfs_io -c 'stat' /moo',
right?

--D

> +
> +	echo $nextents
> +}
> +
>  #
>  # Ensures that we don't pass any mount options incompatible with XFS v4
>  #
> -- 
> 2.28.0
>
diff mbox series

Patch

diff --git a/common/xfs b/common/xfs
index 79dab058..45cd329c 100644
--- a/common/xfs
+++ b/common/xfs
@@ -883,6 +883,28 @@  _scratch_get_bmx_prefix() {
 	return 1
 }
 
+_scratch_get_iext_count()
+{
+	ino=$1
+	whichfork=$2
+
+	case $whichfork in
+		"attr")
+			field=core.naextents
+			;;
+		"data")
+			field=core.nextents
+			;;
+		*)
+			return 1
+	esac
+
+	nextents=$(_scratch_xfs_db  -c "inode $ino" -c "print $field")
+	nextents=${nextents##${field} = }
+
+	echo $nextents
+}
+
 #
 # Ensures that we don't pass any mount options incompatible with XFS v4
 #