From 5adcf7677f9d59722330af89029c3d7ef2e83ed7 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Thu, 10 Feb 2022 10:44:21 -0800 Subject: [PATCH] Export omap group calc helper The inode caller of omap was manually calculating the group and bits, which isn't fantastic. Export the little helper to calculate it so the inode caller doesn't have to. Signed-off-by: Zach Brown --- kmod/src/inode.c | 3 +-- kmod/src/omap.c | 8 ++++---- kmod/src/omap.h | 1 + 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/kmod/src/inode.c b/kmod/src/inode.c index 6f1b82d2..4329905c 100644 --- a/kmod/src/inode.c +++ b/kmod/src/inode.c @@ -1850,8 +1850,7 @@ static void inode_orphan_scan_worker(struct work_struct *work) } /* get an omap that covers the orphaned ino */ - group_nr = ino >> SCOUTFS_OPEN_INO_MAP_SHIFT; - bit_nr = ino & SCOUTFS_OPEN_INO_MAP_MASK; + scoutfs_omap_calc_group_nrs(ino, &group_nr, &bit_nr); if (le64_to_cpu(omap.args.group_nr) != group_nr) { ret = scoutfs_client_open_ino_map(sb, group_nr, &omap); diff --git a/kmod/src/omap.c b/kmod/src/omap.c index 529cfda4..a441897b 100644 --- a/kmod/src/omap.c +++ b/kmod/src/omap.c @@ -232,7 +232,7 @@ static void free_rids(struct omap_rid_list *list) } } -static void calc_group_nrs(u64 ino, u64 *group_nr, int *bit_nr) +void scoutfs_omap_calc_group_nrs(u64 ino, u64 *group_nr, int *bit_nr) { *group_nr = ino >> SCOUTFS_OPEN_INO_MAP_SHIFT; *bit_nr = ino & SCOUTFS_OPEN_INO_MAP_MASK; @@ -298,7 +298,7 @@ int scoutfs_omap_inc(struct super_block *sb, u64 ino) bool found; int ret = 0; - calc_group_nrs(ino, &group_nr, &bit_nr); + scoutfs_omap_calc_group_nrs(ino, &group_nr, &bit_nr); retry: found = false; @@ -354,7 +354,7 @@ void scoutfs_omap_dec(struct super_block *sb, u64 ino) u64 group_nr; int bit_nr; - calc_group_nrs(ino, &group_nr, &bit_nr); + scoutfs_omap_calc_group_nrs(ino, &group_nr, &bit_nr); rcu_read_lock(); group = rhashtable_lookup(&ominf->group_ht, &group_nr, group_ht_params); @@ -950,7 +950,7 @@ int scoutfs_omap_should_delete(struct super_block *sb, struct inode *inode, goto out; } - calc_group_nrs(ino, &group_nr, &bit_nr); + scoutfs_omap_calc_group_nrs(ino, &group_nr, &bit_nr); /* only one request to refresh the map at a time */ ret = get_current_lock_data(sb, lock, &ldata, group_nr); diff --git a/kmod/src/omap.h b/kmod/src/omap.h index 9a2d1e0b..4c6787a2 100644 --- a/kmod/src/omap.h +++ b/kmod/src/omap.h @@ -8,6 +8,7 @@ int scoutfs_omap_should_delete(struct super_block *sb, struct inode *inode, void scoutfs_omap_free_lock_data(struct scoutfs_omap_lock_data *ldata); int scoutfs_omap_client_handle_request(struct super_block *sb, u64 id, struct scoutfs_open_ino_map_args *args); +void scoutfs_omap_calc_group_nrs(u64 ino, u64 *group_nr, int *bit_nr); int scoutfs_omap_add_rid(struct super_block *sb, u64 rid); int scoutfs_omap_remove_rid(struct super_block *sb, u64 rid);