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);