/openbmc/linux/fs/f2fs/ |
H A D | f2fs.h | 1195 struct f2fs_sb_info *sbi; /* f2fs_sb_info pointer */ 1228 struct f2fs_sb_info *sbi; /* f2fs superblock */ 1547 struct f2fs_sb_info { struct 1825 void f2fs_printk(struct f2fs_sb_info *sbi, bool limit_rate, const char *fmt, ...); 1848 static inline bool __time_to_inject(struct f2fs_sb_info *sbi, int type, in __time_to_inject() 1869 static inline bool time_to_inject(struct f2fs_sb_info *sbi, int type) in time_to_inject() 1881 static inline bool f2fs_is_multi_device(struct f2fs_sb_info *sbi) in f2fs_is_multi_device() 1886 static inline void f2fs_update_time(struct f2fs_sb_info *sbi, int type) in f2fs_update_time() 1899 static inline bool f2fs_time_over(struct f2fs_sb_info *sbi, int type) in f2fs_time_over() 1906 static inline unsigned int f2fs_time_to_wait(struct f2fs_sb_info *sbi, in f2fs_time_to_wait() [all …]
|
H A D | iostat.h | 34 extern void f2fs_reset_iostat(struct f2fs_sb_info *sbi); 35 extern void f2fs_update_iostat(struct f2fs_sb_info *sbi, struct inode *inode, 39 struct f2fs_sb_info *sbi; 62 extern void iostat_alloc_and_bind_ctx(struct f2fs_sb_info *sbi, 66 extern int f2fs_init_iostat(struct f2fs_sb_info *sbi); 67 extern void f2fs_destroy_iostat(struct f2fs_sb_info *sbi); 69 static inline void f2fs_update_iostat(struct f2fs_sb_info *sbi, struct inode *inode, in f2fs_update_iostat() 72 static inline void iostat_alloc_and_bind_ctx(struct f2fs_sb_info *sbi, in iostat_alloc_and_bind_ctx() 82 static inline int f2fs_init_iostat(struct f2fs_sb_info *sbi) { return 0; } in f2fs_init_iostat() 83 static inline void f2fs_destroy_iostat(struct f2fs_sb_info *sbi) {} in f2fs_destroy_iostat()
|
H A D | segment.h | 29 static inline void sanity_check_seg_type(struct f2fs_sb_info *sbi, in sanity_check_seg_type() 315 static inline struct curseg_info *CURSEG_I(struct f2fs_sb_info *sbi, int type) in CURSEG_I() 320 static inline struct seg_entry *get_seg_entry(struct f2fs_sb_info *sbi, in get_seg_entry() 327 static inline struct sec_entry *get_sec_entry(struct f2fs_sb_info *sbi, in get_sec_entry() 334 static inline unsigned int get_valid_blocks(struct f2fs_sb_info *sbi, in get_valid_blocks() 347 static inline unsigned int get_ckpt_valid_blocks(struct f2fs_sb_info *sbi, in get_ckpt_valid_blocks() 390 static inline void seg_info_to_sit_page(struct f2fs_sb_info *sbi, in seg_info_to_sit_page() 428 static inline void __set_free(struct f2fs_sb_info *sbi, unsigned int segno) in __set_free() 449 static inline void __set_inuse(struct f2fs_sb_info *sbi, in __set_inuse() 461 static inline void __set_test_and_free(struct f2fs_sb_info *sbi, in __set_test_and_free() [all …]
|
H A D | shrinker.c | 19 static unsigned long __count_nat_entries(struct f2fs_sb_info *sbi) in __count_nat_entries() 24 static unsigned long __count_free_nids(struct f2fs_sb_info *sbi) in __count_free_nids() 31 static unsigned long __count_extent_cache(struct f2fs_sb_info *sbi, in __count_extent_cache() 43 struct f2fs_sb_info *sbi; in f2fs_shrink_count() 50 sbi = list_entry(p, struct f2fs_sb_info, s_list); in f2fs_shrink_count() 83 struct f2fs_sb_info *sbi; in f2fs_shrink_scan() 94 sbi = list_entry(p, struct f2fs_sb_info, s_list); in f2fs_shrink_scan() 133 void f2fs_join_shrinker(struct f2fs_sb_info *sbi) in f2fs_join_shrinker() 140 void f2fs_leave_shrinker(struct f2fs_sb_info *sbi) in f2fs_leave_shrinker()
|
H A D | sysfs.c | 56 ssize_t (*show)(struct f2fs_attr *a, struct f2fs_sb_info *sbi, char *buf); 57 ssize_t (*store)(struct f2fs_attr *a, struct f2fs_sb_info *sbi, 65 struct f2fs_sb_info *sbi, char *buf); 67 static unsigned char *__struct_ptr(struct f2fs_sb_info *sbi, int struct_type) in __struct_ptr() 96 struct f2fs_sb_info *sbi, char *buf) in dirty_segments_show() 103 struct f2fs_sb_info *sbi, char *buf) in free_segments_show() 110 struct f2fs_sb_info *sbi, char *buf) in ovp_segments_show() 117 struct f2fs_sb_info *sbi, char *buf) in lifetime_write_kbytes_show() 126 struct f2fs_sb_info *sbi, char *buf) in sb_status_show() 132 struct f2fs_sb_info *sbi, char *buf) in cp_status_show() [all …]
|
H A D | checkpoint.c | 29 void f2fs_stop_checkpoint(struct f2fs_sb_info *sbi, bool end_io, in f2fs_stop_checkpoint() 41 struct page *f2fs_grab_meta_page(struct f2fs_sb_info *sbi, pgoff_t index) in f2fs_grab_meta_page() 57 static struct page *__get_meta_page(struct f2fs_sb_info *sbi, pgoff_t index, in __get_meta_page() 110 struct page *f2fs_get_meta_page(struct f2fs_sb_info *sbi, pgoff_t index) in f2fs_get_meta_page() 115 struct page *f2fs_get_meta_page_retry(struct f2fs_sb_info *sbi, pgoff_t index) in f2fs_get_meta_page_retry() 132 struct page *f2fs_get_tmp_page(struct f2fs_sb_info *sbi, pgoff_t index) in f2fs_get_tmp_page() 137 static bool __is_bitmap_valid(struct f2fs_sb_info *sbi, block_t blkaddr, in __is_bitmap_valid() 173 bool f2fs_is_valid_blkaddr(struct f2fs_sb_info *sbi, in f2fs_is_valid_blkaddr() 236 int f2fs_ra_meta_pages(struct f2fs_sb_info *sbi, block_t start, int nrpages, in f2fs_ra_meta_pages() 309 void f2fs_ra_meta_pages_cond(struct f2fs_sb_info *sbi, pgoff_t index, in f2fs_ra_meta_pages_cond() [all …]
|
H A D | segment.c | 171 bool f2fs_need_SSR(struct f2fs_sb_info *sbi) in f2fs_need_SSR() 221 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in __replace_atomic_write_block() 304 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in __f2fs_commit_atomic_write() 388 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_commit_atomic_write() 411 void f2fs_balance_fs(struct f2fs_sb_info *sbi, bool need) in f2fs_balance_fs() 453 static inline bool excess_dirty_threshold(struct f2fs_sb_info *sbi) in excess_dirty_threshold() 472 void f2fs_balance_fs_bg(struct f2fs_sb_info *sbi, bool from_bg) in f2fs_balance_fs_bg() 530 static int __submit_flush_wait(struct f2fs_sb_info *sbi, in __submit_flush_wait() 542 static int submit_flush_wait(struct f2fs_sb_info *sbi, nid_t ino) in submit_flush_wait() 562 struct f2fs_sb_info *sbi = data; in issue_flush_thread() [all …]
|
H A D | iostat.c | 20 static inline unsigned long long iostat_get_avg_bytes(struct f2fs_sb_info *sbi, in iostat_get_avg_bytes() 36 struct f2fs_sb_info *sbi = F2FS_SB(sb); in iostat_info_seq_show() 88 static inline void __record_iostat_latency(struct f2fs_sb_info *sbi) in __record_iostat_latency() 113 static inline void f2fs_record_iostat(struct f2fs_sb_info *sbi) in f2fs_record_iostat() 143 void f2fs_reset_iostat(struct f2fs_sb_info *sbi) in f2fs_reset_iostat() 161 static inline void __f2fs_update_iostat(struct f2fs_sb_info *sbi, in __f2fs_update_iostat() 168 void f2fs_update_iostat(struct f2fs_sb_info *sbi, struct inode *inode, in f2fs_update_iostat() 217 struct f2fs_sb_info *sbi = iostat_ctx->sbi; in __update_iostat_latency() 258 void iostat_alloc_and_bind_ctx(struct f2fs_sb_info *sbi, in iostat_alloc_and_bind_ctx() 297 int f2fs_init_iostat(struct f2fs_sb_info *sbi) in f2fs_init_iostat() [all …]
|
H A D | node.c | 33 int f2fs_check_nid_range(struct f2fs_sb_info *sbi, nid_t nid) in f2fs_check_nid_range() 45 bool f2fs_available_free_memory(struct f2fs_sb_info *sbi, int type) in f2fs_available_free_memory() 133 static struct page *get_current_nat_page(struct f2fs_sb_info *sbi, nid_t nid) in get_current_nat_page() 138 static struct page *get_next_nat_page(struct f2fs_sb_info *sbi, nid_t nid) in get_next_nat_page() 167 static struct nat_entry *__alloc_nat_entry(struct f2fs_sb_info *sbi, in __alloc_nat_entry() 313 bool f2fs_in_warm_node_list(struct f2fs_sb_info *sbi, struct page *page) in f2fs_in_warm_node_list() 319 void f2fs_init_fsync_node_info(struct f2fs_sb_info *sbi) in f2fs_init_fsync_node_info() 327 static unsigned int f2fs_add_fsync_node_entry(struct f2fs_sb_info *sbi, in f2fs_add_fsync_node_entry() 351 void f2fs_del_fsync_node_entry(struct f2fs_sb_info *sbi, struct page *page) in f2fs_del_fsync_node_entry() 371 void f2fs_reset_fsync_node_info(struct f2fs_sb_info *sbi) in f2fs_reset_fsync_node_info() [all …]
|
H A D | gc.h | 79 static inline block_t free_segs_blk_count_zoned(struct f2fs_sb_info *sbi) in free_segs_blk_count_zoned() 94 static inline block_t free_segs_blk_count(struct f2fs_sb_info *sbi) in free_segs_blk_count() 102 static inline block_t free_user_blocks(struct f2fs_sb_info *sbi) in free_user_blocks() 154 static inline bool has_enough_invalid_blocks(struct f2fs_sb_info *sbi) in has_enough_invalid_blocks()
|
H A D | xattr.h | 135 extern int f2fs_init_xattr_caches(struct f2fs_sb_info *); 136 extern void f2fs_destroy_xattr_caches(struct f2fs_sb_info *); 153 static inline int f2fs_init_xattr_caches(struct f2fs_sb_info *sbi) { return 0; } in f2fs_init_xattr_caches() 154 static inline void f2fs_destroy_xattr_caches(struct f2fs_sb_info *sbi) { } in f2fs_destroy_xattr_caches()
|
H A D | super.c | 67 int f2fs_build_fault_attr(struct f2fs_sb_info *sbi, unsigned long rate, in f2fs_build_fault_attr() 259 void f2fs_printk(struct f2fs_sb_info *sbi, bool limit_rate, in f2fs_printk() 320 static inline void limit_reserve_root(struct f2fs_sb_info *sbi) in limit_reserve_root() 344 static inline void adjust_unusable_cap_perc(struct f2fs_sb_info *sbi) in adjust_unusable_cap_perc() 373 struct f2fs_sb_info *sbi = F2FS_SB(sb); in f2fs_set_qf_name() 413 struct f2fs_sb_info *sbi = F2FS_SB(sb); in f2fs_clear_qf_name() 424 static int f2fs_check_quota_options(struct f2fs_sb_info *sbi) in f2fs_check_quota_options() 475 struct f2fs_sb_info *sbi = F2FS_SB(sb); in f2fs_set_test_dummy_encryption() 523 static bool is_compress_extension_exist(struct f2fs_sb_info *sbi, in is_compress_extension_exist() 553 static int f2fs_test_compress_extension(struct f2fs_sb_info *sbi) in f2fs_test_compress_extension() [all …]
|
H A D | gc.c | 33 struct f2fs_sb_info *sbi = data; in gc_thread_func() 172 int f2fs_start_gc_thread(struct f2fs_sb_info *sbi) in f2fs_start_gc_thread() 204 void f2fs_stop_gc_thread(struct f2fs_sb_info *sbi) in f2fs_stop_gc_thread() 216 static int select_gc_type(struct f2fs_sb_info *sbi, int gc_type) in select_gc_type() 247 static void select_policy(struct f2fs_sb_info *sbi, int gc_type, in select_policy() 295 static unsigned int get_max_cost(struct f2fs_sb_info *sbi, in get_max_cost() 315 static unsigned int check_bg_victims(struct f2fs_sb_info *sbi) in check_bg_victims() 334 static unsigned int get_cb_cost(struct f2fs_sb_info *sbi, unsigned int segno) in get_cb_cost() 367 static inline unsigned int get_gc_cost(struct f2fs_sb_info *sbi, in get_gc_cost() 395 static bool f2fs_check_victim_tree(struct f2fs_sb_info *sbi, in f2fs_check_victim_tree() [all …]
|
H A D | extent_cache.c | 24 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in sanity_check_extent_cache() 258 static struct extent_node *__attach_extent_node(struct f2fs_sb_info *sbi, in __attach_extent_node() 281 static void __detach_extent_node(struct f2fs_sb_info *sbi, in __detach_extent_node() 301 static void __release_extent_node(struct f2fs_sb_info *sbi, in __release_extent_node() 317 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in __grab_extent_tree() 349 static unsigned int __free_extent_tree(struct f2fs_sb_info *sbi, in __free_extent_tree() 380 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_init_read_extent_tree() 446 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in __lookup_extent_tree() 496 static struct extent_node *__try_merge_extent_node(struct f2fs_sb_info *sbi, in __try_merge_extent_node() 535 static struct extent_node *__insert_extent_tree(struct f2fs_sb_info *sbi, in __insert_extent_tree() [all …]
|
H A D | xattr.c | 26 static void *xattr_alloc(struct f2fs_sb_info *sbi, int size, bool *is_inline) in xattr_alloc() 37 static void xattr_free(struct f2fs_sb_info *sbi, void *xattr_addr, in xattr_free() 50 struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb); in f2fs_xattr_generic_get() 73 struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb); in f2fs_xattr_generic_set() 92 struct f2fs_sb_info *sbi = F2FS_SB(dentry->d_sb); in f2fs_xattr_user_list() 277 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in read_inline_xattr() 299 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in read_xattr_block() 434 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in write_all_xattrs() 632 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in __f2fs_setxattr() 805 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_setxattr() [all …]
|
H A D | data.c | 55 struct f2fs_sb_info *sbi; in f2fs_is_cp_guaranteed() 80 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in __read_io_type() 112 struct f2fs_sb_info *sbi; 289 struct f2fs_sb_info *sbi = F2FS_P_SB(bio_first_page_all(bio)); in f2fs_read_end_io() 327 struct f2fs_sb_info *sbi; in f2fs_write_end_io() 384 struct block_device *f2fs_target_device(struct f2fs_sb_info *sbi, in f2fs_target_device() 406 int f2fs_target_device_index(struct f2fs_sb_info *sbi, block_t blkaddr) in f2fs_target_device_index() 452 struct f2fs_sb_info *sbi = fio->sbi; in __bio_alloc() 504 void f2fs_submit_read_bio(struct f2fs_sb_info *sbi, struct bio *bio, in f2fs_submit_read_bio() 514 static void f2fs_submit_write_bio(struct f2fs_sb_info *sbi, struct bio *bio, in f2fs_submit_write_bio() [all …]
|
H A D | node.h | 130 static inline bool excess_dirty_nats(struct f2fs_sb_info *sbi) in excess_dirty_nats() 136 static inline bool excess_cached_nats(struct f2fs_sb_info *sbi) in excess_cached_nats() 166 static inline void next_free_nid(struct f2fs_sb_info *sbi, nid_t *nid) in next_free_nid() 184 static inline void get_nat_bitmap(struct f2fs_sb_info *sbi, void *addr) in get_nat_bitmap() 196 static inline pgoff_t current_nat_addr(struct f2fs_sb_info *sbi, nid_t start) in current_nat_addr() 219 static inline pgoff_t next_nat_addr(struct f2fs_sb_info *sbi, in next_nat_addr()
|
H A D | inode.c | 120 static bool f2fs_enable_inode_chksum(struct f2fs_sb_info *sbi, struct page *page) in f2fs_enable_inode_chksum() 137 static __u32 f2fs_inode_chksum(struct f2fs_sb_info *sbi, struct page *page) in f2fs_inode_chksum() 160 bool f2fs_inode_chksum_verify(struct f2fs_sb_info *sbi, struct page *page) in f2fs_inode_chksum_verify() 187 void f2fs_inode_chksum_set(struct f2fs_sb_info *sbi, struct page *page) in f2fs_inode_chksum_set() 200 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in sanity_check_compress_inode() 271 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in sanity_check_inode() 392 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in do_read_inode() 540 static bool is_meta_ino(struct f2fs_sb_info *sbi, unsigned int ino) in is_meta_ino() 548 struct f2fs_sb_info *sbi = F2FS_SB(sb); in f2fs_iget() 755 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_update_inode_page() [all …]
|
H A D | namei.c | 73 int f2fs_update_extension_list(struct f2fs_sb_info *sbi, const char *name, in f2fs_update_extension_list() 139 static void set_compress_new_inode(struct f2fs_sb_info *sbi, struct inode *dir, in set_compress_new_inode() 196 static void set_file_temperature(struct f2fs_sb_info *sbi, struct inode *inode, in set_file_temperature() 223 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_new_inode() 353 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_create() 400 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_link() 536 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_unlink() 610 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_symlink() 690 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_mkdir() 745 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_mknod() [all …]
|
H A D | file.c | 58 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_vm_page_mkwrite() 190 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in need_do_checkpoint() 223 static bool need_inode_page_update(struct f2fs_sb_info *sbi, nid_t ino) in need_inode_page_update() 252 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_do_sync_file() 602 struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode); in f2fs_truncate_data_blocks_range() 702 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_do_truncate_blocks() 841 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_force_buffered_io() 1104 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in fill_zero() 1194 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_punch_hole() 1221 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in __read_out_blkaddrs() [all …]
|
H A D | compress.c | 28 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in page_array_alloc() 39 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in page_array_free() 733 struct f2fs_sb_info *sbi = F2FS_I_SB(dic->inode); in f2fs_decompress_cluster() 806 struct f2fs_sb_info *sbi = F2FS_I_SB(dic->inode); in f2fs_end_read_compressed_page() 891 struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode); in f2fs_sanity_check_cluster() 1062 struct f2fs_sb_info *sbi = F2FS_I_SB(cc->inode); in prepare_compress_overwrite() 1237 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_write_compressed_pages() 1432 struct f2fs_sb_info *sbi = bio->bi_private; in f2fs_compress_write_end_io() 1465 struct f2fs_sb_info *sbi = F2FS_M_SB(mapping); in f2fs_write_raw_pages() 1577 static inline bool allow_memalloc_for_decomp(struct f2fs_sb_info *sbi, in allow_memalloc_for_decomp() [all …]
|
H A D | recovery.c | 53 bool f2fs_space_for_roll_forward(struct f2fs_sb_info *sbi) in f2fs_space_for_roll_forward() 78 static struct fsync_inode_entry *add_fsync_inode(struct f2fs_sb_info *sbi, in add_fsync_inode() 350 static unsigned int adjust_por_ra_blocks(struct f2fs_sb_info *sbi, in adjust_por_ra_blocks() 364 static int sanity_check_node_chain(struct f2fs_sb_info *sbi, block_t blkaddr, in sanity_check_node_chain() 407 static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head, in find_fsync_dnodes() 494 static int check_index_in_prev_nodes(struct f2fs_sb_info *sbi, in check_index_in_prev_nodes() 627 static int do_recover_data(struct f2fs_sb_info *sbi, struct inode *inode, in do_recover_data() 783 static int recover_data(struct f2fs_sb_info *sbi, struct list_head *inode_list, in recover_data() 858 int f2fs_recover_fsync_data(struct f2fs_sb_info *sbi, bool check_only) in f2fs_recover_fsync_data()
|
H A D | inline.c | 219 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_convert_inline_inode() 297 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_recover_inline_data() 359 struct f2fs_sb_info *sbi = F2FS_SB(dir->i_sb); in f2fs_find_in_inline_dir() 598 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_try_convert_inline_dir() 639 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_add_inline_entry() 732 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_empty_inline_dir()
|
H A D | debug.c | 32 void f2fs_update_sit_info(struct f2fs_sb_info *sbi) in f2fs_update_sit_info() 63 static void update_general_status(struct f2fs_sb_info *sbi) in update_general_status() 232 static void update_mem_info(struct f2fs_sb_info *sbi) in update_mem_info() 244 si->base_mem += sizeof(struct f2fs_sb_info) + sbi->sb->s_blocksize; in update_mem_info() 380 struct f2fs_sb_info *sbi = si->sbi; in stat_show() 665 int f2fs_build_stats(struct f2fs_sb_info *sbi) in f2fs_build_stats() 719 void f2fs_destroy_stats(struct f2fs_sb_info *sbi) in f2fs_destroy_stats()
|
H A D | verity.c | 150 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_end_enable_verity()
|