On 03 Mar 2021 at 23:00, Darrick J. Wong wrote: > On Mon, Jan 18, 2021 at 11:50:12AM +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@xxxxxxxxx> >> --- >> common/xfs | 22 ++++++++++++++++++++++ >> 1 file changed, 22 insertions(+) >> >> diff --git a/common/xfs b/common/xfs >> index 3f5c14ba..641d6195 100644 >> --- a/common/xfs >> +++ b/common/xfs >> @@ -903,6 +903,28 @@ _scratch_get_bmx_prefix() { >> return 1 >> } >> >> +_scratch_get_iext_count() >> +{ >> + ino=$1 >> + whichfork=$2 > > Function variables should be declared with 'local' so they don't bleed > into the global namespace (yay bash!), e.g. > > local ino="$1" Sorry, I forgot about this. I will fix this up. > > Also, now that Eric has landed the xfs_db 'path' command upstream, you > might consider using it: > > _scratch_xfs_get_metadata_field "core.nextents" "path /windows/system.ini" > In this patchset _scratch_get_iext_count() is being used to get extent counts of anonymous inodes i.e. inodes which do not have an entry in the filesytem namespace (e.g. Quota and RT bitmap/summary inodes). Hence the 'path' command won't be useful in this case. >> + >> + 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} = } > > _scratch_xfs_get_metadata_field? Sure, I will make use of the above mentioned helper. -- chandan