ubifs_info
struct shash_desc *__ubifs_hash_get_desc(const struct ubifs_info *c)
void ubifs_bad_hash(const struct ubifs_info *c, const void *node, const u8 *hash,
int __ubifs_node_check_hash(const struct ubifs_info *c, const void *node,
int ubifs_sb_verify_signature(struct ubifs_info *c,
int ubifs_init_authentication(struct ubifs_info *c)
int __ubifs_node_calc_hash(const struct ubifs_info *c, const void *node,
void __ubifs_exit_authentication(struct ubifs_info *c)
static int ubifs_node_calc_hmac(const struct ubifs_info *c, const void *node,
int __ubifs_node_insert_hmac(const struct ubifs_info *c, void *node, int len,
int __ubifs_node_verify_hmac(const struct ubifs_info *c, const void *node,
static int ubifs_hash_calc_hmac(const struct ubifs_info *c, const u8 *hash,
int __ubifs_shash_copy_state(const struct ubifs_info *c, struct shash_desc *src,
int ubifs_hmac_wkm(struct ubifs_info *c, u8 *hmac)
bool ubifs_hmac_zero(struct ubifs_info *c, const u8 *hmac)
int ubifs_prepare_auth_node(struct ubifs_info *c, void *node,
static struct shash_desc *ubifs_get_desc(const struct ubifs_info *c,
static int make_free_space(struct ubifs_info *c)
int ubifs_calc_min_idx_lebs(struct ubifs_info *c)
long long ubifs_calc_available(const struct ubifs_info *c, int min_idx_lebs)
static int can_use_rp(struct ubifs_info *c)
static int do_budget_space(struct ubifs_info *c)
static int calc_idx_growth(const struct ubifs_info *c,
static int calc_data_growth(const struct ubifs_info *c,
static int calc_dd_growth(const struct ubifs_info *c,
int ubifs_budget_space(struct ubifs_info *c, struct ubifs_budget_req *req)
static void shrink_liability(struct ubifs_info *c, int nr_to_write)
void ubifs_release_budget(struct ubifs_info *c, struct ubifs_budget_req *req)
void ubifs_convert_page_budget(struct ubifs_info *c)
void ubifs_release_dirty_inode_budget(struct ubifs_info *c,
long long ubifs_reported_space(const struct ubifs_info *c, long long free)
static int run_gc(struct ubifs_info *c)
long long ubifs_get_free_space_nolock(struct ubifs_info *c)
long long ubifs_get_free_space(struct ubifs_info *c)
static long long get_liability(struct ubifs_info *c)
static int do_commit(struct ubifs_info *c)
static int run_bg_commit(struct ubifs_info *c)
struct ubifs_info *c = info;
void ubifs_commit_required(struct ubifs_info *c)
void ubifs_request_bg_commit(struct ubifs_info *c)
static int wait_for_commit(struct ubifs_info *c)
int ubifs_run_commit(struct ubifs_info *c)
int ubifs_gc_should_commit(struct ubifs_info *c)
int dbg_old_index_check_init(struct ubifs_info *c, struct ubifs_zbranch *zroot)
static int nothing_to_commit(struct ubifs_info *c)
int dbg_check_old_index(struct ubifs_info *c, struct ubifs_zbranch *zroot)
void ubifs_compress(const struct ubifs_info *c, const void *in_buf,
void ubifs_compress_folio(const struct ubifs_info *c, struct folio *in_folio,
static int ubifs_decompress_common(const struct ubifs_info *c,
int ubifs_decompress(const struct ubifs_info *c, const void *in_buf,
int ubifs_decompress_folio(const struct ubifs_info *c, const void *in_buf,
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
int dbg_check_space_info(struct ubifs_info *c)
int dbg_check_synced_i_size(const struct ubifs_info *c, struct inode *inode)
int dbg_check_dir(struct ubifs_info *c, const struct inode *dir)
static int dbg_check_key_order(struct ubifs_info *c, struct ubifs_zbranch *zbr1,
static int dbg_check_znode(struct ubifs_info *c, struct ubifs_zbranch *zbr)
int dbg_check_tnc(struct ubifs_info *c, int extra)
int dbg_walk_index(struct ubifs_info *c, dbg_leaf_callback leaf_cb,
static int add_size(struct ubifs_info *c, struct ubifs_znode *znode, void *priv)
int dbg_check_idx_size(struct ubifs_info *c, long long idx_size)
static struct fsck_inode *add_inode(struct ubifs_info *c,
static struct fsck_inode *read_add_inode(struct ubifs_info *c,
static int check_leaf(struct ubifs_info *c, struct ubifs_zbranch *zbr,
static int check_inodes(struct ubifs_info *c, struct fsck_data *fsckd)
void ubifs_dump_inode(struct ubifs_info *c, const struct inode *inode)
int dbg_check_filesystem(struct ubifs_info *c)
int dbg_check_data_nodes_order(struct ubifs_info *c, struct list_head *head)
int dbg_check_nondata_nodes_order(struct ubifs_info *c, struct list_head *head)
static int power_cut_emulated(struct ubifs_info *c, int lnum, int write)
static int corrupt_data(const struct ubifs_info *c, const void *buf,
int dbg_leb_write(struct ubifs_info *c, int lnum, const void *buf,
int dbg_leb_change(struct ubifs_info *c, int lnum, const void *buf,
int dbg_leb_unmap(struct ubifs_info *c, int lnum)
int dbg_leb_map(struct ubifs_info *c, int lnum)
struct ubifs_info *c = file->private_data;
struct ubifs_info *c = file->private_data;
void dbg_debugfs_init_fs(struct ubifs_info *c)
void dbg_debugfs_exit_fs(struct ubifs_info *c)
void ubifs_dump_node(const struct ubifs_info *c, const void *node, int node_len)
void ubifs_assert_failed(struct ubifs_info *c, const char *expr,
int ubifs_debugging_init(struct ubifs_info *c)
void ubifs_debugging_exit(struct ubifs_info *c)
void ubifs_dump_budg(struct ubifs_info *c, const struct ubifs_budg_info *bi)
void ubifs_dump_lprop(const struct ubifs_info *c, const struct ubifs_lprops *lp)
void ubifs_dump_lprops(struct ubifs_info *c)
void ubifs_dump_lpt_info(struct ubifs_info *c)
void ubifs_dump_leb(const struct ubifs_info *c, int lnum)
void ubifs_dump_znode(const struct ubifs_info *c,
const char *dbg_snprintf_key(const struct ubifs_info *c,
void ubifs_dump_heap(struct ubifs_info *c, struct ubifs_lpt_heap *heap, int cat)
void ubifs_dump_pnode(struct ubifs_info *c, struct ubifs_pnode *pnode,
void ubifs_dump_tnc(struct ubifs_info *c)
static int dump_znode(struct ubifs_info *c, struct ubifs_znode *znode,
void ubifs_dump_index(struct ubifs_info *c)
void dbg_save_space_info(struct ubifs_info *c)
void ubifs_assert_failed(struct ubifs_info *c, const char *expr,
ubifs_assert_failed((struct ubifs_info *)c, #expr, __FILE__, \
typedef int (*dbg_leaf_callback)(struct ubifs_info *c,
typedef int (*dbg_znode_callback)(struct ubifs_info *c,
static inline int dbg_is_chk_gen(const struct ubifs_info *c)
static inline int dbg_is_chk_index(const struct ubifs_info *c)
static inline int dbg_is_chk_orph(const struct ubifs_info *c)
static inline int dbg_is_chk_lprops(const struct ubifs_info *c)
static inline int dbg_is_chk_fs(const struct ubifs_info *c)
static inline int dbg_is_tst_rcvry(const struct ubifs_info *c)
static inline int dbg_is_power_cut(const struct ubifs_info *c)
int ubifs_debugging_init(struct ubifs_info *c);
void ubifs_debugging_exit(struct ubifs_info *c);
const char *dbg_get_key_dump(const struct ubifs_info *c,
const char *dbg_snprintf_key(const struct ubifs_info *c,
void ubifs_dump_inode(struct ubifs_info *c, const struct inode *inode);
void ubifs_dump_node(const struct ubifs_info *c, const void *node,
void ubifs_dump_budg(struct ubifs_info *c, const struct ubifs_budg_info *bi);
void ubifs_dump_lprop(const struct ubifs_info *c,
void ubifs_dump_lprops(struct ubifs_info *c);
void ubifs_dump_lpt_info(struct ubifs_info *c);
void ubifs_dump_leb(const struct ubifs_info *c, int lnum);
void ubifs_dump_znode(const struct ubifs_info *c,
void ubifs_dump_heap(struct ubifs_info *c, struct ubifs_lpt_heap *heap,
void ubifs_dump_pnode(struct ubifs_info *c, struct ubifs_pnode *pnode,
void ubifs_dump_tnc(struct ubifs_info *c);
void ubifs_dump_index(struct ubifs_info *c);
void ubifs_dump_lpt_lebs(const struct ubifs_info *c);
int dbg_walk_index(struct ubifs_info *c, dbg_leaf_callback leaf_cb,
void dbg_save_space_info(struct ubifs_info *c);
int dbg_check_space_info(struct ubifs_info *c);
int dbg_check_lprops(struct ubifs_info *c);
int dbg_old_index_check_init(struct ubifs_info *c, struct ubifs_zbranch *zroot);
int dbg_check_old_index(struct ubifs_info *c, struct ubifs_zbranch *zroot);
int dbg_check_cats(struct ubifs_info *c);
int dbg_check_ltab(struct ubifs_info *c);
int dbg_chk_lpt_free_spc(struct ubifs_info *c);
int dbg_chk_lpt_sz(struct ubifs_info *c, int action, int len);
int dbg_check_synced_i_size(const struct ubifs_info *c, struct inode *inode);
int dbg_check_dir(struct ubifs_info *c, const struct inode *dir);
int dbg_check_tnc(struct ubifs_info *c, int extra);
int dbg_check_idx_size(struct ubifs_info *c, long long idx_size);
int dbg_check_filesystem(struct ubifs_info *c);
void dbg_check_heap(struct ubifs_info *c, struct ubifs_lpt_heap *heap, int cat,
int dbg_check_lpt_nodes(struct ubifs_info *c, struct ubifs_cnode *cnode,
int dbg_check_inode_size(struct ubifs_info *c, const struct inode *inode,
int dbg_check_data_nodes_order(struct ubifs_info *c, struct list_head *head);
int dbg_check_nondata_nodes_order(struct ubifs_info *c, struct list_head *head);
int dbg_leb_write(struct ubifs_info *c, int lnum, const void *buf, int offs,
int dbg_leb_change(struct ubifs_info *c, int lnum, const void *buf, int len);
int dbg_leb_unmap(struct ubifs_info *c, int lnum);
int dbg_leb_map(struct ubifs_info *c, int lnum);
void dbg_debugfs_init_fs(struct ubifs_info *c);
void dbg_debugfs_exit_fs(struct ubifs_info *c);
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct ubifs_info *c = old_dir->i_sb->s_fs_info;
struct ubifs_info *c = old_dir->i_sb->s_fs_info;
struct ubifs_info *c = old_dir->i_sb->s_fs_info;
static int dbg_check_name(const struct ubifs_info *c,
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct inode *ubifs_new_inode(struct ubifs_info *c, struct inode *dir,
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct ubifs_info *c = dir->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
static int do_truncation(struct ubifs_info *c, struct inode *inode,
static int do_setattr(struct ubifs_info *c, struct inode *inode,
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = mapping->host->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
static void release_new_page_budget(struct ubifs_info *c)
static void release_existing_page_budget(struct ubifs_info *c)
struct ubifs_info *c = inode->i_sb->s_fs_info;
static int allocate_budget(struct ubifs_info *c, struct folio *folio,
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
static void cancel_budget(struct ubifs_info *c, struct folio *folio,
struct ubifs_info *c = inode->i_sb->s_fs_info;
static int populate_page(struct ubifs_info *c, struct folio *folio,
static int ubifs_do_bulk_read(struct ubifs_info *c, struct bu_info *bu,
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
static const struct ubifs_lprops *scan_for_dirty(struct ubifs_info *c,
int ubifs_find_dirty_leb(struct ubifs_info *c, struct ubifs_lprops *ret_lp,
static int scan_for_free_cb(struct ubifs_info *c,
const struct ubifs_lprops *do_find_free_space(struct ubifs_info *c,
static int valuable(struct ubifs_info *c, const struct ubifs_lprops *lprops)
int ubifs_find_free_space(struct ubifs_info *c, int min_space, int *offs,
static int scan_for_idx_cb(struct ubifs_info *c,
static const struct ubifs_lprops *scan_for_leb_for_idx(struct ubifs_info *c)
int ubifs_find_free_leb_for_idx(struct ubifs_info *c)
int ubifs_save_dirty_idx_lnums(struct ubifs_info *c)
static int scan_dirty_idx_cb(struct ubifs_info *c,
static int find_dirty_idx_leb(struct ubifs_info *c)
static int scan_for_dirty_cb(struct ubifs_info *c,
static int get_idx_gc_leb(struct ubifs_info *c)
static int find_dirtiest_idx_leb(struct ubifs_info *c)
int ubifs_find_dirty_idx_leb(struct ubifs_info *c)
int ubifs_get_idx_gc_leb(struct ubifs_info *c)
struct ubifs_info *c = priv;
struct ubifs_info *c = priv;
static int sort_nodes(struct ubifs_info *c, struct ubifs_scan_leb *sleb,
static int move_node(struct ubifs_info *c, struct ubifs_scan_leb *sleb,
static int move_nodes(struct ubifs_info *c, struct ubifs_scan_leb *sleb)
static int gc_sync_wbufs(struct ubifs_info *c)
int ubifs_garbage_collect_leb(struct ubifs_info *c, struct ubifs_lprops *lp)
static int switch_gc_head(struct ubifs_info *c)
int ubifs_garbage_collect(struct ubifs_info *c, int anyway)
int ubifs_gc_start_commit(struct ubifs_info *c)
int ubifs_gc_end_commit(struct ubifs_info *c)
void ubifs_destroy_idx_gc(struct ubifs_info *c)
const struct ubifs_info *c = wbuf->c;
int ubifs_leb_write(struct ubifs_info *c, int lnum, const void *buf, int offs,
int ubifs_read_node(const struct ubifs_info *c, void *buf, int type, int len,
int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf)
int ubifs_sync_wbufs_by_inode(struct ubifs_info *c, struct inode *inode)
int ubifs_leb_change(struct ubifs_info *c, int lnum, const void *buf, int len)
int ubifs_leb_unmap(struct ubifs_info *c, int lnum)
int ubifs_leb_map(struct ubifs_info *c, int lnum)
int ubifs_is_mapped(const struct ubifs_info *c, int lnum)
int ubifs_check_node(const struct ubifs_info *c, const void *buf, int len,
void ubifs_pad(const struct ubifs_info *c, void *buf, int pad)
static unsigned long long next_sqnum(struct ubifs_info *c)
void ubifs_init_node(struct ubifs_info *c, void *node, int len, int pad)
int ubifs_prepare_node_hmac(struct ubifs_info *c, void *node, int len,
void ubifs_prepare_node(struct ubifs_info *c, void *node, int len, int pad)
void ubifs_prep_grp_node(struct ubifs_info *c, void *node, int len, int last)
static void new_wbuf_timer_nolock(struct ubifs_info *c, struct ubifs_wbuf *wbuf)
struct ubifs_info *c = wbuf->c;
const struct ubifs_info *c = wbuf->c;
int ubifs_bg_wbufs_sync(struct ubifs_info *c)
void ubifs_ro_mode(struct ubifs_info *c, int err)
struct ubifs_info *c = wbuf->c;
int ubifs_leb_read(const struct ubifs_info *c, int lnum, void *buf, int offs,
int ubifs_write_node_hmac(struct ubifs_info *c, void *buf, int len, int lnum,
int ubifs_write_node(struct ubifs_info *c, void *buf, int len, int lnum,
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
int ubifs_jnl_delete_inode(struct ubifs_info *c, const struct inode *inode)
int ubifs_jnl_xrename(struct ubifs_info *c, const struct inode *fst_dir,
int ubifs_jnl_rename(struct ubifs_info *c, const struct inode *old_dir,
static int truncate_data_node(const struct ubifs_info *c, const struct inode *inode,
int ubifs_jnl_truncate(struct ubifs_info *c, const struct inode *inode,
int ubifs_jnl_delete_xattr(struct ubifs_info *c, const struct inode *host,
int ubifs_jnl_change_xattr(struct ubifs_info *c, const struct inode *inode,
static int ubifs_hash_nodes(struct ubifs_info *c, void *node,
static int write_head(struct ubifs_info *c, int jhead, void *buf, int len,
static void __queue_and_wait(struct ubifs_info *c)
static bool wait_for_reservation(struct ubifs_info *c)
static void wake_up_reservation(struct ubifs_info *c)
static void add_or_start_queue(struct ubifs_info *c)
static int make_reservation(struct ubifs_info *c, int jhead, int len)
static inline void release_head(struct ubifs_info *c, int jhead)
static void finish_reservation(struct ubifs_info *c)
static void pack_inode(struct ubifs_info *c, struct ubifs_ino_node *ino,
static void mark_inode_clean(struct ubifs_info *c, struct ubifs_inode *ui)
static void set_dent_cookie(struct ubifs_info *c, struct ubifs_dent_node *dent)
int ubifs_jnl_update(struct ubifs_info *c, const struct inode *dir,
static void ubifs_add_auth_dirt(struct ubifs_info *c, int lnum)
int ubifs_jnl_write_data(struct ubifs_info *c, const struct inode *inode,
int ubifs_jnl_write_inode(struct ubifs_info *c, const struct inode *inode)
static int reserve_space(struct ubifs_info *c, int jhead, int len)
static inline void ino_key_init_flash(const struct ubifs_info *c, void *k,
static inline void lowest_ino_key(const struct ubifs_info *c,
static inline void highest_ino_key(const struct ubifs_info *c,
static inline void dent_key_init(const struct ubifs_info *c,
static inline void dent_key_init_hash(const struct ubifs_info *c,
static inline void dent_key_init_flash(const struct ubifs_info *c, void *k,
static inline void lowest_dent_key(const struct ubifs_info *c,
static inline void xent_key_init(const struct ubifs_info *c,
static inline void xent_key_init_flash(const struct ubifs_info *c, void *k,
static inline void lowest_xent_key(const struct ubifs_info *c,
static inline void data_key_init(const struct ubifs_info *c,
static inline void highest_data_key(const struct ubifs_info *c,
static inline void trun_key_init(const struct ubifs_info *c,
static inline void invalid_key_init(const struct ubifs_info *c,
static inline int key_type(const struct ubifs_info *c,
static inline int key_type_flash(const struct ubifs_info *c, const void *k)
static inline ino_t key_inum(const struct ubifs_info *c, const void *k)
static inline ino_t key_inum_flash(const struct ubifs_info *c, const void *k)
static inline uint32_t key_hash(const struct ubifs_info *c,
static inline uint32_t key_hash_flash(const struct ubifs_info *c, const void *k)
static inline unsigned int key_block(const struct ubifs_info *c,
static inline unsigned int key_block_flash(const struct ubifs_info *c,
static inline void key_read(const struct ubifs_info *c, const void *from,
static inline void key_write(const struct ubifs_info *c,
static inline void key_write_idx(const struct ubifs_info *c,
static inline void key_copy(const struct ubifs_info *c,
static inline int keys_cmp(const struct ubifs_info *c,
static inline int keys_eq(const struct ubifs_info *c,
static inline int is_hash_key(const struct ubifs_info *c,
static inline unsigned long long key_max_inode_size(const struct ubifs_info *c)
static inline void ino_key_init(const struct ubifs_info *c,
void ubifs_add_bud(struct ubifs_info *c, struct ubifs_bud *bud)
int ubifs_add_bud_to_log(struct ubifs_info *c, int jhead, int lnum, int offs)
static int dbg_check_bud_bytes(struct ubifs_info *c);
static void remove_buds(struct ubifs_info *c)
struct ubifs_bud *ubifs_search_bud(struct ubifs_info *c, int lnum)
int ubifs_log_start_commit(struct ubifs_info *c, int *ltail_lnum)
int ubifs_log_end_commit(struct ubifs_info *c, int ltail_lnum)
int ubifs_log_post_commit(struct ubifs_info *c, int old_ltail_lnum)
struct ubifs_wbuf *ubifs_get_wbuf(struct ubifs_info *c, int lnum)
static int add_node(struct ubifs_info *c, void *buf, int *lnum, int *offs,
int ubifs_consolidate_log(struct ubifs_info *c)
static int dbg_check_bud_bytes(struct ubifs_info *c)
static inline long long empty_log_bytes(const struct ubifs_info *c)
static int scan_check_cb(struct ubifs_info *c,
int dbg_check_lprops(struct ubifs_info *c)
static int add_to_lpt_heap(struct ubifs_info *c, struct ubifs_lprops *lprops,
static void remove_from_lpt_heap(struct ubifs_info *c,
static void lpt_heap_replace(struct ubifs_info *c,
void ubifs_add_to_cat(struct ubifs_info *c, struct ubifs_lprops *lprops,
static void ubifs_remove_from_cat(struct ubifs_info *c,
void ubifs_replace_cat(struct ubifs_info *c, struct ubifs_lprops *old_lprops,
void ubifs_ensure_cat(struct ubifs_info *c, struct ubifs_lprops *lprops)
int ubifs_categorize_lprops(const struct ubifs_info *c,
static void change_category(struct ubifs_info *c, struct ubifs_lprops *lprops)
int ubifs_calc_dark(const struct ubifs_info *c, int spc)
static int is_lprops_dirty(struct ubifs_info *c, struct ubifs_lprops *lprops)
static void move_up_lpt_heap(struct ubifs_info *c, struct ubifs_lpt_heap *heap,
const struct ubifs_lprops *ubifs_change_lp(struct ubifs_info *c,
void ubifs_get_lp_stats(struct ubifs_info *c, struct ubifs_lp_stats *lst)
int ubifs_change_one_lp(struct ubifs_info *c, int lnum, int free, int dirty,
int ubifs_update_one_lp(struct ubifs_info *c, int lnum, int free, int dirty,
int ubifs_read_one_lp(struct ubifs_info *c, int lnum, struct ubifs_lprops *lp)
const struct ubifs_lprops *ubifs_fast_find_free(struct ubifs_info *c)
const struct ubifs_lprops *ubifs_fast_find_empty(struct ubifs_info *c)
const struct ubifs_lprops *ubifs_fast_find_freeable(struct ubifs_info *c)
const struct ubifs_lprops *ubifs_fast_find_frdi_idx(struct ubifs_info *c)
int dbg_check_cats(struct ubifs_info *c)
static void adjust_lpt_heap(struct ubifs_info *c, struct ubifs_lpt_heap *heap,
void dbg_check_heap(struct ubifs_info *c, struct ubifs_lpt_heap *heap, int cat,
int ubifs_unpack_nnode(const struct ubifs_info *c, void *buf,
static int unpack_ltab(const struct ubifs_info *c, void *buf)
static int unpack_lsave(const struct ubifs_info *c, void *buf)
static int validate_nnode(const struct ubifs_info *c, struct ubifs_nnode *nnode,
static int validate_pnode(const struct ubifs_info *c, struct ubifs_pnode *pnode,
static void set_pnode_lnum(const struct ubifs_info *c,
int ubifs_read_nnode(struct ubifs_info *c, struct ubifs_nnode *parent, int iip)
int ubifs_calc_lpt_geom(struct ubifs_info *c)
static int read_pnode(struct ubifs_info *c, struct ubifs_nnode *parent, int iip)
static int read_ltab(struct ubifs_info *c)
static int read_lsave(struct ubifs_info *c)
struct ubifs_nnode *ubifs_get_nnode(struct ubifs_info *c,
struct ubifs_pnode *ubifs_get_pnode(struct ubifs_info *c,
struct ubifs_pnode *ubifs_pnode_lookup(struct ubifs_info *c, int i)
struct ubifs_lprops *ubifs_lpt_lookup(struct ubifs_info *c, int lnum)
static struct ubifs_nnode *dirty_cow_nnode(struct ubifs_info *c,
static struct ubifs_pnode *dirty_cow_pnode(struct ubifs_info *c,
struct ubifs_lprops *ubifs_lpt_lookup_dirty(struct ubifs_info *c, int lnum)
static int calc_dflt_lpt_geom(struct ubifs_info *c, int *main_lebs,
int ubifs_lpt_calc_hash(struct ubifs_info *c, u8 *hash)
static int lpt_check_hash(struct ubifs_info *c)
static int lpt_init_rd(struct ubifs_info *c)
static int lpt_init_wr(struct ubifs_info *c)
int ubifs_lpt_init(struct ubifs_info *c, int rd, int wr)
static struct ubifs_nnode *scan_get_nnode(struct ubifs_info *c,
static struct ubifs_pnode *scan_get_pnode(struct ubifs_info *c,
int ubifs_lpt_scan_nolock(struct ubifs_info *c, int start_lnum, int end_lnum,
static void pack_bits(const struct ubifs_info *c, uint8_t **addr, int *pos, uint32_t val, int nrbits)
static int dbg_chk_pnode(struct ubifs_info *c, struct ubifs_pnode *pnode,
int dbg_check_lpt_nodes(struct ubifs_info *c, struct ubifs_cnode *cnode,
uint32_t ubifs_unpack_bits(const struct ubifs_info *c, uint8_t **addr, int *pos, int nrbits)
void ubifs_pack_pnode(struct ubifs_info *c, void *buf,
void ubifs_pack_nnode(struct ubifs_info *c, void *buf,
void ubifs_pack_ltab(struct ubifs_info *c, void *buf,
void ubifs_pack_lsave(struct ubifs_info *c, void *buf, int *lsave)
void ubifs_add_lpt_dirt(struct ubifs_info *c, int lnum, int dirty)
static void do_calc_lpt_geom(struct ubifs_info *c)
static void set_ltab(struct ubifs_info *c, int lnum, int free, int dirty)
void ubifs_add_nnode_dirt(struct ubifs_info *c, struct ubifs_nnode *nnode)
static void add_pnode_dirt(struct ubifs_info *c, struct ubifs_pnode *pnode)
static int calc_nnode_num_from_parent(const struct ubifs_info *c,
static int calc_pnode_num_from_parent(const struct ubifs_info *c,
int ubifs_create_dflt_lpt(struct ubifs_info *c, int *main_lebs, int lpt_first,
static void update_cats(struct ubifs_info *c, struct ubifs_pnode *pnode)
static void replace_cats(struct ubifs_info *c, struct ubifs_pnode *old_pnode,
static int check_lpt_crc(const struct ubifs_info *c, void *buf, int len)
static int check_lpt_type(const struct ubifs_info *c, uint8_t **addr,
static int unpack_pnode(const struct ubifs_info *c, void *buf,
static int get_lpt_node_len(const struct ubifs_info *c, int node_type)
static int get_pad_len(const struct ubifs_info *c, uint8_t *buf, int len)
static int get_lpt_node_type(const struct ubifs_info *c, uint8_t *buf,
static int is_a_node(const struct ubifs_info *c, uint8_t *buf, int len)
static int lpt_gc_lnum(struct ubifs_info *c, int lnum)
static int lpt_gc(struct ubifs_info *c)
int ubifs_lpt_start_commit(struct ubifs_info *c)
static void free_obsolete_cnodes(struct ubifs_info *c)
int ubifs_lpt_end_commit(struct ubifs_info *c)
static void upd_ltab(struct ubifs_info *c, int lnum, int free, int dirty)
int ubifs_lpt_post_commit(struct ubifs_info *c)
static struct ubifs_nnode *first_nnode(struct ubifs_info *c, int *hght)
static struct ubifs_nnode *next_nnode(struct ubifs_info *c,
void ubifs_lpt_free(struct ubifs_info *c, int wr_only)
static int dbg_is_nnode_dirty(struct ubifs_info *c, int lnum, int offs)
static int alloc_lpt_leb(struct ubifs_info *c, int *lnum)
static int dbg_is_pnode_dirty(struct ubifs_info *c, int lnum, int offs)
static int dbg_is_ltab_dirty(struct ubifs_info *c, int lnum, int offs)
static int dbg_is_lsave_dirty(struct ubifs_info *c, int lnum, int offs)
static int dbg_is_node_dirty(struct ubifs_info *c, int node_type, int lnum,
static int dbg_check_ltab_lnum(struct ubifs_info *c, int lnum)
int dbg_check_ltab(struct ubifs_info *c)
int dbg_chk_lpt_free_spc(struct ubifs_info *c)
int dbg_chk_lpt_sz(struct ubifs_info *c, int action, int len)
static int layout_cnodes(struct ubifs_info *c)
static void dump_lpt_leb(const struct ubifs_info *c, int lnum)
void ubifs_dump_lpt_lebs(const struct ubifs_info *c)
static int dbg_populate_lsave(struct ubifs_info *c)
static int dbg_populate_lsave(struct ubifs_info *c);
static struct ubifs_cnode *first_dirty_cnode(const struct ubifs_info *c, struct ubifs_nnode *nnode)
static int realloc_lpt_leb(struct ubifs_info *c, int *lnum)
static int write_cnodes(struct ubifs_info *c)
static struct ubifs_pnode *next_pnode_to_dirty(struct ubifs_info *c,
static struct ubifs_cnode *next_dirty_cnode(const struct ubifs_info *c, struct ubifs_cnode *cnode)
static void add_pnode_dirt(struct ubifs_info *c, struct ubifs_pnode *pnode)
static void do_make_pnode_dirty(struct ubifs_info *c, struct ubifs_pnode *pnode)
static int make_tree_dirty(struct ubifs_info *c)
static int need_write_all(struct ubifs_info *c)
static void lpt_tgc_start(struct ubifs_info *c)
static int lpt_tgc_end(struct ubifs_info *c)
static void populate_lsave(struct ubifs_info *c)
static struct ubifs_nnode *nnode_lookup(struct ubifs_info *c, int i)
static int make_nnode_dirty(struct ubifs_info *c, int node_num, int lnum,
static int get_cnodes_to_commit(struct ubifs_info *c)
static int make_pnode_dirty(struct ubifs_info *c, int node_num, int lnum,
static int make_ltab_dirty(struct ubifs_info *c, int lnum, int offs)
static int make_lsave_dirty(struct ubifs_info *c, int lnum, int offs)
static int make_node_dirty(struct ubifs_info *c, int node_type, int node_num,
static int validate_master(const struct ubifs_info *c)
int ubifs_compare_master_node(struct ubifs_info *c, void *m1, void *m2)
int ubifs_read_master(struct ubifs_info *c)
int ubifs_write_master(struct ubifs_info *c)
static int mst_node_check_hash(const struct ubifs_info *c,
static int scan_for_master(struct ubifs_info *c)
void ubifs_err(const struct ubifs_info *c, const char *fmt, ...)
void ubifs_warn(const struct ubifs_info *c, const char *fmt, ...)
void ubifs_msg(const struct ubifs_info *c, const char *fmt, ...)
const char *ubifs_assert_action_name(struct ubifs_info *c)
static inline int ubifs_compr_present(struct ubifs_info *c, int compr_type)
static inline const char *ubifs_compr_name(struct ubifs_info *c, int compr_type)
static inline int ubifs_add_dirt(struct ubifs_info *c, int lnum, int dirty)
static inline int ubifs_return_leb(struct ubifs_info *c, int lnum)
static inline int ubifs_idx_node_sz(const struct ubifs_info *c, int child_cnt)
struct ubifs_branch *ubifs_idx_branch(const struct ubifs_info *c,
static inline void *ubifs_idx_key(const struct ubifs_info *c,
static inline int ubifs_tnc_lookup(struct ubifs_info *c,
static inline void ubifs_get_lprops(struct ubifs_info *c)
static inline void ubifs_release_lprops(struct ubifs_info *c)
static inline int ubifs_next_log_lnum(const struct ubifs_info *c, int lnum)
static inline int ubifs_xattr_max_cnt(struct ubifs_info *c)
const char *ubifs_assert_action_name(struct ubifs_info *c);
static inline void ubifs_wake_up_bgt(struct ubifs_info *c)
static void __orphan_drop(struct ubifs_info *c, struct ubifs_orphan *o)
static void orphan_delete(struct ubifs_info *c, struct ubifs_orphan *orph)
void ubifs_delete_orphan(struct ubifs_info *c, ino_t inum)
int ubifs_orphan_start_commit(struct ubifs_info *c)
static int avail_orphs(struct ubifs_info *c)
static int tot_avail_orphs(struct ubifs_info *c)
static int do_write_orph_node(struct ubifs_info *c, int len, int atomic)
static int write_orph_node(struct ubifs_info *c, int atomic)
static int write_orph_nodes(struct ubifs_info *c, int atomic)
static int consolidate(struct ubifs_info *c)
static int commit_orphans(struct ubifs_info *c)
static int dbg_check_orphans(struct ubifs_info *c);
static void erase_deleted(struct ubifs_info *c)
int ubifs_orphan_end_commit(struct ubifs_info *c)
int ubifs_clear_orphans(struct ubifs_info *c)
static int do_kill_orphans(struct ubifs_info *c, struct ubifs_scan_leb *sleb,
int ubifs_add_orphan(struct ubifs_info *c, ino_t inum)
static int kill_orphans(struct ubifs_info *c)
int ubifs_mount_orphans(struct ubifs_info *c, int unclean, int read_only)
static bool dbg_find_orphan(struct ubifs_info *c, ino_t inum)
static int dbg_orphan_check(struct ubifs_info *c, struct ubifs_zbranch *zbr,
static int dbg_scan_orphans(struct ubifs_info *c, struct check_info *ci)
static int dbg_check_orphans(struct ubifs_info *c)
static struct ubifs_orphan *lookup_orphan(struct ubifs_info *c, ino_t inum)
int ubifs_clean_lebs(struct ubifs_info *c, void *sbuf)
static int grab_empty_leb(struct ubifs_info *c)
int ubifs_rcvry_gc_commit(struct ubifs_info *c)
static int add_ino(struct ubifs_info *c, ino_t inum, loff_t i_size,
static struct size_entry *find_ino(struct ubifs_info *c, ino_t inum)
static void remove_ino(struct ubifs_info *c, ino_t inum)
void ubifs_destroy_size_tree(struct ubifs_info *c)
int ubifs_recover_size_accum(struct ubifs_info *c, union ubifs_key *key,
static int fix_size_in_place(struct ubifs_info *c, struct size_entry *e)
static int inode_fix_size(struct ubifs_info *c, struct size_entry *e)
int ubifs_recover_size(struct ubifs_info *c, bool in_place)
static int write_rcvrd_mst_node(struct ubifs_info *c,
int ubifs_recover_master_node(struct ubifs_info *c)
int ubifs_write_rcvrd_mst_node(struct ubifs_info *c)
static int is_last_write(const struct ubifs_info *c, void *buf, int offs)
static void clean_buf(const struct ubifs_info *c, void **buf, int lnum,
static int no_more_nodes(const struct ubifs_info *c, void *buf, int len,
static int fix_unclean_leb(struct ubifs_info *c, struct ubifs_scan_leb *sleb,
struct ubifs_scan_leb *ubifs_recover_leb(struct ubifs_info *c, int lnum,
static int get_cs_sqnum(struct ubifs_info *c, int lnum, int offs,
struct ubifs_scan_leb *ubifs_recover_log_leb(struct ubifs_info *c, int lnum,
static int recover_head(struct ubifs_info *c, int lnum, int offs, void *sbuf)
int ubifs_recover_inl_heads(struct ubifs_info *c, void *sbuf)
static int get_master_node(const struct ubifs_info *c, int lnum, void **pbuf,
static int clean_an_unclean_leb(struct ubifs_info *c,
static int take_ihead(struct ubifs_info *c)
int ubifs_replay_journal(struct ubifs_info *c)
static int set_buds_lprops(struct ubifs_info *c)
static int trun_remove_range(struct ubifs_info *c, struct replay_entry *r)
static bool inode_still_linked(struct ubifs_info *c, struct replay_entry *rino)
static int apply_replay_entry(struct ubifs_info *c, struct replay_entry *r)
struct ubifs_info *c = priv;
static int apply_replay_list(struct ubifs_info *c)
static void destroy_replay_list(struct ubifs_info *c)
static int insert_node(struct ubifs_info *c, int lnum, int offs, int len,
static int insert_dent(struct ubifs_info *c, int lnum, int offs, int len,
int ubifs_validate_entry(struct ubifs_info *c,
static int is_last_bud(struct ubifs_info *c, struct ubifs_bud *bud)
authenticate_sleb_hash(struct ubifs_info *c,
static int authenticate_sleb(struct ubifs_info *c, struct ubifs_scan_leb *sleb,
static int replay_bud(struct ubifs_info *c, struct bud_entry *b)
static int replay_buds(struct ubifs_info *c)
static void destroy_bud_list(struct ubifs_info *c)
static int set_bud_lprops(struct ubifs_info *c, struct bud_entry *b)
static int add_replay_bud(struct ubifs_info *c, int lnum, int offs, int jhead,
static int validate_ref(struct ubifs_info *c, const struct ubifs_ref_node *ref)
static int replay_log_leb(struct ubifs_info *c, int lnum, int offs, void *sbuf)
static int validate_sb(struct ubifs_info *c, struct ubifs_sb_node *sup)
static struct ubifs_sb_node *ubifs_read_sb_node(struct ubifs_info *c)
static int get_default_compressor(struct ubifs_info *c)
static int authenticate_sb_node(struct ubifs_info *c,
int ubifs_write_sb_node(struct ubifs_info *c, struct ubifs_sb_node *sup)
int ubifs_read_superblock(struct ubifs_info *c)
static int create_default_filesystem(struct ubifs_info *c)
static int fixup_leb(struct ubifs_info *c, int lnum, int len)
static int fixup_free_space(struct ubifs_info *c)
int ubifs_fixup_free_space(struct ubifs_info *c)
int ubifs_enable_encryption(struct ubifs_info *c)
struct ubifs_scan_leb *ubifs_start_scan(const struct ubifs_info *c, int lnum,
void ubifs_end_scan(const struct ubifs_info *c, struct ubifs_scan_leb *sleb,
int ubifs_add_snod(const struct ubifs_info *c, struct ubifs_scan_leb *sleb,
void ubifs_scanned_corruption(const struct ubifs_info *c, int lnum, int offs,
struct ubifs_scan_leb *ubifs_scan(const struct ubifs_info *c, int lnum,
int ubifs_scan_a_node(const struct ubifs_info *c, void *buf, int len, int lnum,
struct ubifs_info *c;
c = list_entry(p, struct ubifs_info, infos_list);
struct ubifs_info *c;
static int shrink_tnc(struct ubifs_info *c, int nr, int age, int *contention)
struct ubifs_info *c = sb->s_fs_info;
static void ubifs_release_options(struct ubifs_info *c)
static void destroy_journal(struct ubifs_info *c)
static void bu_init(struct ubifs_info *c)
static int check_free_space(struct ubifs_info *c)
static int mount_ubifs(struct ubifs_info *c)
static void ubifs_umount(struct ubifs_info *c)
static int ubifs_remount_rw(struct ubifs_info *c)
static void ubifs_remount_ro(struct ubifs_info *c)
struct ubifs_info *c = sb->s_fs_info;
struct ubifs_info *c = sb->s_fs_info;
static struct ubifs_info *alloc_ubifs_info(struct ubi_volume_desc *ubi)
struct ubifs_info *c;
c = kzalloc_obj(struct ubifs_info);
struct ubifs_info *c = sb->s_fs_info;
struct ubifs_info *c1 = fc->s_fs_info;
struct ubifs_info *c = sb->s_fs_info;
struct ubifs_info *c;
struct ubifs_info *c1 = sb->s_fs_info;
struct ubifs_info *c = s->s_fs_info;
struct ubifs_info *c = fc->root->d_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = dentry->d_sb->s_fs_info;
struct ubifs_info *c = root->d_sb->s_fs_info;
struct ubifs_info *c = sb->s_fs_info;
static int init_constants_early(struct ubifs_info *c)
static int bud_wbuf_callback(struct ubifs_info *c, int lnum, int free, int pad)
static int init_constants_sb(struct ubifs_info *c)
static int validate_inode(struct ubifs_info *c, const struct inode *inode)
static void init_constants_master(struct ubifs_info *c)
static int take_gc_lnum(struct ubifs_info *c)
static int alloc_wbufs(struct ubifs_info *c)
static void free_wbufs(struct ubifs_info *c)
static void free_orphans(struct ubifs_info *c)
static void free_buds(struct ubifs_info *c)
static int check_volume_empty(struct ubifs_info *c)
void ubifs_sysfs_unregister(struct ubifs_info *c)
struct ubifs_info *sbi = container_of(kobj, struct ubifs_info,
struct ubifs_info *c = container_of(kobj, struct ubifs_info, kobj);
int ubifs_sysfs_register(struct ubifs_info *c)
static int resolve_collision_directly(struct ubifs_info *c,
static struct ubifs_znode *dirty_cow_bottom_up(struct ubifs_info *c,
int insert_old_idx_znode(struct ubifs_info *c, struct ubifs_znode *znode)
int ubifs_lookup_level0(struct ubifs_info *c, const union ubifs_key *key,
static int lookup_level0_dirty(struct ubifs_info *c, const union ubifs_key *key,
static int ins_clr_old_idx_znode(struct ubifs_info *c,
static int maybe_leb_gced(struct ubifs_info *c, int lnum, int gc_seq1)
int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key,
int ubifs_tnc_get_bu_keys(struct ubifs_info *c, struct bu_info *bu)
const struct ubifs_info *c = wbuf->c;
static int validate_data_node(struct ubifs_info *c, void *buf,
int ubifs_tnc_bulk_read(struct ubifs_info *c, struct bu_info *bu)
void destroy_old_idx(struct ubifs_info *c)
static int do_lookup_nm(struct ubifs_info *c, const union ubifs_key *key,
int ubifs_tnc_lookup_nm(struct ubifs_info *c, const union ubifs_key *key,
static int search_dh_cookie(struct ubifs_info *c, const union ubifs_key *key,
static int do_lookup_dh(struct ubifs_info *c, const union ubifs_key *key,
static struct ubifs_znode *copy_znode(struct ubifs_info *c,
int ubifs_tnc_lookup_dh(struct ubifs_info *c, const union ubifs_key *key,
static void correct_parent_keys(const struct ubifs_info *c,
static void insert_zbranch(struct ubifs_info *c, struct ubifs_znode *znode,
static int tnc_insert(struct ubifs_info *c, struct ubifs_znode *znode,
static int add_idx_dirt(struct ubifs_info *c, int lnum, int dirt)
int ubifs_tnc_add(struct ubifs_info *c, const union ubifs_key *key, int lnum,
static void replace_znode(struct ubifs_info *c, struct ubifs_znode *new_zn,
int ubifs_tnc_replace(struct ubifs_info *c, const union ubifs_key *key,
int ubifs_tnc_add_nm(struct ubifs_info *c, const union ubifs_key *key,
static int try_read_node(const struct ubifs_info *c, void *buf, int type,
static int tnc_delete(struct ubifs_info *c, struct ubifs_znode *znode, int n)
int ubifs_tnc_remove(struct ubifs_info *c, const union ubifs_key *key)
int ubifs_tnc_remove_nm(struct ubifs_info *c, const union ubifs_key *key,
static int fallible_read_node(struct ubifs_info *c, const union ubifs_key *key,
static struct ubifs_znode *dirty_cow_znode(struct ubifs_info *c,
int ubifs_tnc_remove_dh(struct ubifs_info *c, const union ubifs_key *key,
static int key_in_range(struct ubifs_info *c, union ubifs_key *key,
int ubifs_tnc_remove_range(struct ubifs_info *c, union ubifs_key *from_key,
int ubifs_tnc_remove_ino(struct ubifs_info *c, ino_t inum)
struct ubifs_dent_node *ubifs_tnc_next_ent(struct ubifs_info *c,
static void tnc_destroy_cnext(struct ubifs_info *c)
void ubifs_tnc_close(struct ubifs_info *c)
static struct ubifs_znode *left_znode(struct ubifs_info *c,
static struct ubifs_znode *right_znode(struct ubifs_info *c,
static struct ubifs_znode *lookup_znode(struct ubifs_info *c,
int is_idx_node_in_tnc(struct ubifs_info *c, union ubifs_key *key, int level,
static int is_leaf_node_in_tnc(struct ubifs_info *c, union ubifs_key *key,
static int lnc_add(struct ubifs_info *c, struct ubifs_zbranch *zbr,
int ubifs_tnc_has_node(struct ubifs_info *c, union ubifs_key *key, int level,
int ubifs_dirty_idx_node(struct ubifs_info *c, union ubifs_key *key, int level,
int dbg_check_inode_size(struct ubifs_info *c, const struct inode *inode,
static int lnc_add_directly(struct ubifs_info *c, struct ubifs_zbranch *zbr,
static int tnc_read_hashed_node(struct ubifs_info *c, struct ubifs_zbranch *zbr,
static void do_insert_old_idx(struct ubifs_info *c,
static int try_read_node(const struct ubifs_info *c, void *buf, int type,
static int fallible_read_node(struct ubifs_info *c, const union ubifs_key *key,
static int matches_name(struct ubifs_info *c, struct ubifs_zbranch *zbr,
static struct ubifs_znode *get_znode(struct ubifs_info *c,
static int tnc_next(struct ubifs_info *c, struct ubifs_znode **zn, int *n)
static int tnc_prev(struct ubifs_info *c, struct ubifs_znode **zn, int *n)
static int resolve_collision(struct ubifs_info *c, const union ubifs_key *key,
static int fallible_matches_name(struct ubifs_info *c,
static int fallible_resolve_collision(struct ubifs_info *c,
static int insert_old_idx(struct ubifs_info *c, int lnum, int offs)
static void free_obsolete_znodes(struct ubifs_info *c)
static int return_gap_lebs(struct ubifs_info *c)
static int fill_gap(struct ubifs_info *c, int lnum, int gap_start, int gap_end,
int ubifs_tnc_end_commit(struct ubifs_info *c)
static int find_old_idx(struct ubifs_info *c, int lnum, int offs)
static int is_idx_node_in_use(struct ubifs_info *c, union ubifs_key *key,
static int layout_leb_in_gaps(struct ubifs_info *c, int p)
static int make_idx_node(struct ubifs_info *c, struct ubifs_idx_node *idx,
static int get_leb_cnt(struct ubifs_info *c, int cnt)
static int layout_in_gaps(struct ubifs_info *c, int cnt)
static int layout_in_empty_space(struct ubifs_info *c)
static int layout_commit(struct ubifs_info *c, int no_space, int cnt)
static int get_znodes_to_commit(struct ubifs_info *c)
static int alloc_idx_lebs(struct ubifs_info *c, int cnt)
static int free_unused_idx_lebs(struct ubifs_info *c)
static int free_idx_lebs(struct ubifs_info *c)
int ubifs_tnc_start_commit(struct ubifs_info *c, struct ubifs_zbranch *zroot)
static int write_index(struct ubifs_info *c)
int ubifs_search_zbranch(const struct ubifs_info *c,
struct ubifs_znode *ubifs_tnc_postorder_next(const struct ubifs_info *c,
long ubifs_destroy_tnc_subtree(const struct ubifs_info *c,
void ubifs_destroy_tnc_tree(struct ubifs_info *c)
static int read_znode(struct ubifs_info *c, struct ubifs_zbranch *zzbr,
struct ubifs_znode *ubifs_tnc_levelorder_next(const struct ubifs_info *c,
struct ubifs_znode *ubifs_load_znode(struct ubifs_info *c,
int ubifs_tnc_read_node(struct ubifs_info *c, struct ubifs_zbranch *zbr,
static inline int ubifs_authenticated(const struct ubifs_info *c)
struct shash_desc *__ubifs_hash_get_desc(const struct ubifs_info *c);
static inline struct shash_desc *ubifs_hash_get_desc(const struct ubifs_info *c)
static inline int ubifs_shash_init(const struct ubifs_info *c,
static inline int ubifs_shash_update(const struct ubifs_info *c,
static inline int ubifs_shash_final(const struct ubifs_info *c,
int __ubifs_node_calc_hash(const struct ubifs_info *c, const void *buf,
static inline int ubifs_node_calc_hash(const struct ubifs_info *c,
int ubifs_prepare_auth_node(struct ubifs_info *c, void *node,
static inline int ubifs_check_hash(const struct ubifs_info *c,
static inline int ubifs_check_hmac(const struct ubifs_info *c,
void ubifs_bad_hash(const struct ubifs_info *c, const void *node,
static inline void ubifs_bad_hash(const struct ubifs_info *c, const void *node,
int __ubifs_node_check_hash(const struct ubifs_info *c, const void *buf,
static inline int ubifs_node_check_hash(const struct ubifs_info *c,
int ubifs_init_authentication(struct ubifs_info *c);
void __ubifs_exit_authentication(struct ubifs_info *c);
static inline void ubifs_exit_authentication(struct ubifs_info *c)
static inline u8 *ubifs_branch_hash(struct ubifs_info *c,
static inline void ubifs_copy_hash(const struct ubifs_info *c, const u8 *from,
int __ubifs_node_insert_hmac(const struct ubifs_info *c, void *buf,
static inline int ubifs_node_insert_hmac(const struct ubifs_info *c, void *buf,
int __ubifs_node_verify_hmac(const struct ubifs_info *c, const void *buf,
static inline int ubifs_node_verify_hmac(const struct ubifs_info *c,
static inline int ubifs_auth_node_sz(const struct ubifs_info *c)
int ubifs_sb_verify_signature(struct ubifs_info *c,
bool ubifs_hmac_zero(struct ubifs_info *c, const u8 *hmac);
int ubifs_hmac_wkm(struct ubifs_info *c, u8 *hmac);
int __ubifs_shash_copy_state(const struct ubifs_info *c, struct shash_desc *src,
static inline int ubifs_shash_copy_state(const struct ubifs_info *c,
void ubifs_ro_mode(struct ubifs_info *c, int err);
int ubifs_leb_read(const struct ubifs_info *c, int lnum, void *buf, int offs,
int ubifs_leb_write(struct ubifs_info *c, int lnum, const void *buf, int offs,
int ubifs_leb_change(struct ubifs_info *c, int lnum, const void *buf, int len);
int ubifs_leb_unmap(struct ubifs_info *c, int lnum);
int ubifs_leb_map(struct ubifs_info *c, int lnum);
int ubifs_is_mapped(const struct ubifs_info *c, int lnum);
int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf);
int ubifs_read_node(const struct ubifs_info *c, void *buf, int type, int len,
int ubifs_write_node(struct ubifs_info *c, void *node, int len, int lnum,
int ubifs_write_node_hmac(struct ubifs_info *c, void *buf, int len, int lnum,
int ubifs_check_node(const struct ubifs_info *c, const void *buf, int len,
void ubifs_init_node(struct ubifs_info *c, void *buf, int len, int pad);
void ubifs_prepare_node(struct ubifs_info *c, void *buf, int len, int pad);
int ubifs_prepare_node_hmac(struct ubifs_info *c, void *node, int len,
void ubifs_prep_grp_node(struct ubifs_info *c, void *node, int len, int last);
int ubifs_io_init(struct ubifs_info *c);
void ubifs_pad(const struct ubifs_info *c, void *buf, int pad);
int ubifs_bg_wbufs_sync(struct ubifs_info *c);
int ubifs_sync_wbufs_by_inode(struct ubifs_info *c, struct inode *inode);
struct ubifs_scan_leb *ubifs_scan(const struct ubifs_info *c, int lnum,
int ubifs_scan_a_node(const struct ubifs_info *c, void *buf, int len, int lnum,
struct ubifs_scan_leb *ubifs_start_scan(const struct ubifs_info *c, int lnum,
void ubifs_end_scan(const struct ubifs_info *c, struct ubifs_scan_leb *sleb,
int ubifs_add_snod(const struct ubifs_info *c, struct ubifs_scan_leb *sleb,
void ubifs_scanned_corruption(const struct ubifs_info *c, int lnum, int offs,
void ubifs_add_bud(struct ubifs_info *c, struct ubifs_bud *bud);
void ubifs_create_buds_lists(struct ubifs_info *c);
int ubifs_add_bud_to_log(struct ubifs_info *c, int jhead, int lnum, int offs);
struct ubifs_bud *ubifs_search_bud(struct ubifs_info *c, int lnum);
struct ubifs_wbuf *ubifs_get_wbuf(struct ubifs_info *c, int lnum);
int ubifs_log_start_commit(struct ubifs_info *c, int *ltail_lnum);
int ubifs_log_end_commit(struct ubifs_info *c, int new_ltail_lnum);
int ubifs_log_post_commit(struct ubifs_info *c, int old_ltail_lnum);
int ubifs_consolidate_log(struct ubifs_info *c);
int ubifs_jnl_update(struct ubifs_info *c, const struct inode *dir,
int ubifs_jnl_write_data(struct ubifs_info *c, const struct inode *inode,
int ubifs_jnl_write_inode(struct ubifs_info *c, const struct inode *inode);
int ubifs_jnl_delete_inode(struct ubifs_info *c, const struct inode *inode);
int ubifs_jnl_xrename(struct ubifs_info *c, const struct inode *fst_dir,
int ubifs_jnl_rename(struct ubifs_info *c, const struct inode *old_dir,
int ubifs_jnl_truncate(struct ubifs_info *c, const struct inode *inode,
int ubifs_jnl_delete_xattr(struct ubifs_info *c, const struct inode *host,
int ubifs_jnl_change_xattr(struct ubifs_info *c, const struct inode *inode1,
int ubifs_budget_space(struct ubifs_info *c, struct ubifs_budget_req *req);
void ubifs_release_budget(struct ubifs_info *c, struct ubifs_budget_req *req);
void ubifs_release_dirty_inode_budget(struct ubifs_info *c,
int ubifs_budget_inode_op(struct ubifs_info *c, struct inode *inode,
void ubifs_release_ino_dirty(struct ubifs_info *c, struct inode *inode,
void ubifs_cancel_ino_op(struct ubifs_info *c, struct inode *inode,
long long ubifs_get_free_space(struct ubifs_info *c);
long long ubifs_get_free_space_nolock(struct ubifs_info *c);
int ubifs_calc_min_idx_lebs(struct ubifs_info *c);
void ubifs_convert_page_budget(struct ubifs_info *c);
long long ubifs_reported_space(const struct ubifs_info *c, long long free);
long long ubifs_calc_available(const struct ubifs_info *c, int min_idx_lebs);
int ubifs_find_free_space(struct ubifs_info *c, int min_space, int *offs,
int ubifs_find_free_leb_for_idx(struct ubifs_info *c);
int ubifs_find_dirty_leb(struct ubifs_info *c, struct ubifs_lprops *ret_lp,
int ubifs_find_dirty_idx_leb(struct ubifs_info *c);
int ubifs_save_dirty_idx_lnums(struct ubifs_info *c);
int ubifs_lookup_level0(struct ubifs_info *c, const union ubifs_key *key,
int ubifs_tnc_lookup_nm(struct ubifs_info *c, const union ubifs_key *key,
int ubifs_tnc_lookup_dh(struct ubifs_info *c, const union ubifs_key *key,
int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key,
int ubifs_tnc_add(struct ubifs_info *c, const union ubifs_key *key, int lnum,
int ubifs_tnc_replace(struct ubifs_info *c, const union ubifs_key *key,
int ubifs_tnc_add_nm(struct ubifs_info *c, const union ubifs_key *key,
int ubifs_tnc_remove(struct ubifs_info *c, const union ubifs_key *key);
int ubifs_tnc_remove_nm(struct ubifs_info *c, const union ubifs_key *key,
int ubifs_tnc_remove_dh(struct ubifs_info *c, const union ubifs_key *key,
int ubifs_tnc_remove_range(struct ubifs_info *c, union ubifs_key *from_key,
int ubifs_tnc_remove_ino(struct ubifs_info *c, ino_t inum);
struct ubifs_dent_node *ubifs_tnc_next_ent(struct ubifs_info *c,
void ubifs_tnc_close(struct ubifs_info *c);
int ubifs_tnc_has_node(struct ubifs_info *c, union ubifs_key *key, int level,
int ubifs_dirty_idx_node(struct ubifs_info *c, union ubifs_key *key, int level,
void destroy_old_idx(struct ubifs_info *c);
int is_idx_node_in_tnc(struct ubifs_info *c, union ubifs_key *key, int level,
int insert_old_idx_znode(struct ubifs_info *c, struct ubifs_znode *znode);
int ubifs_tnc_get_bu_keys(struct ubifs_info *c, struct bu_info *bu);
int ubifs_tnc_bulk_read(struct ubifs_info *c, struct bu_info *bu);
struct ubifs_znode *ubifs_tnc_levelorder_next(const struct ubifs_info *c,
int ubifs_search_zbranch(const struct ubifs_info *c,
struct ubifs_znode *ubifs_tnc_postorder_next(const struct ubifs_info *c,
long ubifs_destroy_tnc_subtree(const struct ubifs_info *c,
void ubifs_destroy_tnc_tree(struct ubifs_info *c);
struct ubifs_znode *ubifs_load_znode(struct ubifs_info *c,
int ubifs_tnc_read_node(struct ubifs_info *c, struct ubifs_zbranch *zbr,
int ubifs_tnc_start_commit(struct ubifs_info *c, struct ubifs_zbranch *zroot);
int ubifs_tnc_end_commit(struct ubifs_info *c);
void ubifs_commit_required(struct ubifs_info *c);
void ubifs_request_bg_commit(struct ubifs_info *c);
int ubifs_run_commit(struct ubifs_info *c);
void ubifs_recovery_commit(struct ubifs_info *c);
int ubifs_gc_should_commit(struct ubifs_info *c);
void ubifs_wait_for_commit(struct ubifs_info *c);
int ubifs_compare_master_node(struct ubifs_info *c, void *m1, void *m2);
int ubifs_read_master(struct ubifs_info *c);
int ubifs_write_master(struct ubifs_info *c);
int ubifs_read_superblock(struct ubifs_info *c);
int ubifs_write_sb_node(struct ubifs_info *c, struct ubifs_sb_node *sup);
int ubifs_fixup_free_space(struct ubifs_info *c);
int ubifs_enable_encryption(struct ubifs_info *c);
int ubifs_validate_entry(struct ubifs_info *c,
int ubifs_replay_journal(struct ubifs_info *c);
int ubifs_garbage_collect(struct ubifs_info *c, int anyway);
int ubifs_gc_start_commit(struct ubifs_info *c);
int ubifs_gc_end_commit(struct ubifs_info *c);
void ubifs_destroy_idx_gc(struct ubifs_info *c);
int ubifs_get_idx_gc_leb(struct ubifs_info *c);
int ubifs_garbage_collect_leb(struct ubifs_info *c, struct ubifs_lprops *lp);
int ubifs_add_orphan(struct ubifs_info *c, ino_t inum);
void ubifs_delete_orphan(struct ubifs_info *c, ino_t inum);
int ubifs_orphan_start_commit(struct ubifs_info *c);
int ubifs_orphan_end_commit(struct ubifs_info *c);
int ubifs_mount_orphans(struct ubifs_info *c, int unclean, int read_only);
int ubifs_clear_orphans(struct ubifs_info *c);
int ubifs_calc_lpt_geom(struct ubifs_info *c);
int ubifs_create_dflt_lpt(struct ubifs_info *c, int *main_lebs, int lpt_first,
int ubifs_lpt_init(struct ubifs_info *c, int rd, int wr);
struct ubifs_lprops *ubifs_lpt_lookup(struct ubifs_info *c, int lnum);
struct ubifs_lprops *ubifs_lpt_lookup_dirty(struct ubifs_info *c, int lnum);
int ubifs_lpt_scan_nolock(struct ubifs_info *c, int start_lnum, int end_lnum,
void ubifs_pack_lsave(struct ubifs_info *c, void *buf, int *lsave);
void ubifs_pack_ltab(struct ubifs_info *c, void *buf,
void ubifs_pack_pnode(struct ubifs_info *c, void *buf,
void ubifs_pack_nnode(struct ubifs_info *c, void *buf,
struct ubifs_pnode *ubifs_get_pnode(struct ubifs_info *c,
struct ubifs_nnode *ubifs_get_nnode(struct ubifs_info *c,
struct ubifs_pnode *ubifs_pnode_lookup(struct ubifs_info *c, int i);
int ubifs_read_nnode(struct ubifs_info *c, struct ubifs_nnode *parent, int iip);
void ubifs_add_lpt_dirt(struct ubifs_info *c, int lnum, int dirty);
void ubifs_add_nnode_dirt(struct ubifs_info *c, struct ubifs_nnode *nnode);
uint32_t ubifs_unpack_bits(const struct ubifs_info *c, uint8_t **addr, int *pos, int nrbits);
struct ubifs_nnode *ubifs_first_nnode(struct ubifs_info *c, int *hght);
int ubifs_unpack_nnode(const struct ubifs_info *c, void *buf,
int ubifs_lpt_calc_hash(struct ubifs_info *c, u8 *hash);
int ubifs_lpt_start_commit(struct ubifs_info *c);
int ubifs_lpt_end_commit(struct ubifs_info *c);
int ubifs_lpt_post_commit(struct ubifs_info *c);
void ubifs_lpt_free(struct ubifs_info *c, int wr_only);
const struct ubifs_lprops *ubifs_change_lp(struct ubifs_info *c,
void ubifs_get_lp_stats(struct ubifs_info *c, struct ubifs_lp_stats *lst);
void ubifs_add_to_cat(struct ubifs_info *c, struct ubifs_lprops *lprops,
void ubifs_replace_cat(struct ubifs_info *c, struct ubifs_lprops *old_lprops,
void ubifs_ensure_cat(struct ubifs_info *c, struct ubifs_lprops *lprops);
int ubifs_categorize_lprops(const struct ubifs_info *c,
int ubifs_change_one_lp(struct ubifs_info *c, int lnum, int free, int dirty,
int ubifs_update_one_lp(struct ubifs_info *c, int lnum, int free, int dirty,
int ubifs_read_one_lp(struct ubifs_info *c, int lnum, struct ubifs_lprops *lp);
const struct ubifs_lprops *ubifs_fast_find_free(struct ubifs_info *c);
const struct ubifs_lprops *ubifs_fast_find_empty(struct ubifs_info *c);
const struct ubifs_lprops *ubifs_fast_find_freeable(struct ubifs_info *c);
const struct ubifs_lprops *ubifs_fast_find_frdi_idx(struct ubifs_info *c);
int ubifs_calc_dark(const struct ubifs_info *c, int spc);
struct inode *ubifs_new_inode(struct ubifs_info *c, struct inode *dir,
int ubifs_recover_master_node(struct ubifs_info *c);
int ubifs_write_rcvrd_mst_node(struct ubifs_info *c);
struct ubifs_scan_leb *ubifs_recover_leb(struct ubifs_info *c, int lnum,
struct ubifs_scan_leb *ubifs_recover_log_leb(struct ubifs_info *c, int lnum,
int ubifs_recover_inl_heads(struct ubifs_info *c, void *sbuf);
int ubifs_clean_lebs(struct ubifs_info *c, void *sbuf);
int ubifs_rcvry_gc_commit(struct ubifs_info *c);
int ubifs_recover_size_accum(struct ubifs_info *c, union ubifs_key *key,
int ubifs_recover_size(struct ubifs_info *c, bool in_place);
void ubifs_destroy_size_tree(struct ubifs_info *c);
void ubifs_compress(const struct ubifs_info *c, const void *in_buf, int in_len,
void ubifs_compress_folio(const struct ubifs_info *c, struct folio *folio,
int ubifs_decompress(const struct ubifs_info *c, const void *buf, int len,
int ubifs_decompress_folio(const struct ubifs_info *c, const void *buf,
int ubifs_sysfs_register(struct ubifs_info *c);
void ubifs_sysfs_unregister(struct ubifs_info *c);
struct ubifs_info *c = inode->i_sb->s_fs_info;
struct ubifs_info *c = inode->i_sb->s_fs_info;
void ubifs_msg(const struct ubifs_info *c, const char *fmt, ...);
void ubifs_err(const struct ubifs_info *c, const char *fmt, ...);
void ubifs_warn(const struct ubifs_info *c, const char *fmt, ...);
struct ubifs_info;
typedef int (*ubifs_lpt_scan_callback)(struct ubifs_info *c,
struct ubifs_info *c;
int (*sync_callback)(struct ubifs_info *c, int lnum, int free, int pad);
static int change_xattr(struct ubifs_info *c, struct inode *host,
static struct inode *iget_xattr(struct ubifs_info *c, ino_t inum)
struct ubifs_info *c = host->i_sb->s_fs_info;
struct ubifs_info *c = host->i_sb->s_fs_info;
struct ubifs_info *c = host->i_sb->s_fs_info;
static int remove_xattr(struct ubifs_info *c, struct inode *host,
struct ubifs_info *c = host->i_sb->s_fs_info;
struct ubifs_info *c = host->i_sb->s_fs_info;
struct ubifs_info *c = dentry->i_sb->s_fs_info;
static int create_xattr(struct ubifs_info *c, struct inode *host,