Lines Matching refs:new_a
845 struct bch_alloc_v4 *new_a; in bch2_trigger_alloc() local
847 new_a = bkey_s_to_alloc_v4(new).v; in bch2_trigger_alloc()
855 new_a = &new_ka->v; in bch2_trigger_alloc()
859 alloc_data_type_set(new_a, new_a->data_type); in bch2_trigger_alloc()
861 int is_empty_delta = (int) data_type_is_empty(new_a->data_type) - in bch2_trigger_alloc()
865 new_a->io_time[READ] = bch2_current_io_time(c, READ); in bch2_trigger_alloc()
866 new_a->io_time[WRITE]= bch2_current_io_time(c, WRITE); in bch2_trigger_alloc()
867 SET_BCH_ALLOC_V4_NEED_INC_GEN(new_a, true); in bch2_trigger_alloc()
868 SET_BCH_ALLOC_V4_NEED_DISCARD(new_a, true); in bch2_trigger_alloc()
871 if (data_type_is_empty(new_a->data_type) && in bch2_trigger_alloc()
872 BCH_ALLOC_V4_NEED_INC_GEN(new_a) && in bch2_trigger_alloc()
874 if (new_a->oldest_gen == new_a->gen && in bch2_trigger_alloc()
875 !bch2_bucket_sectors_total(*new_a)) in bch2_trigger_alloc()
876 new_a->oldest_gen++; in bch2_trigger_alloc()
877 new_a->gen++; in bch2_trigger_alloc()
878 SET_BCH_ALLOC_V4_NEED_INC_GEN(new_a, false); in bch2_trigger_alloc()
879 alloc_data_type_set(new_a, new_a->data_type); in bch2_trigger_alloc()
882 if (old_a->data_type != new_a->data_type || in bch2_trigger_alloc()
883 (new_a->data_type == BCH_DATA_free && in bch2_trigger_alloc()
884 alloc_freespace_genbits(*old_a) != alloc_freespace_genbits(*new_a))) { in bch2_trigger_alloc()
886 bch2_bucket_do_index(trans, ca, new.s_c, new_a, true); in bch2_trigger_alloc()
891 if (new_a->data_type == BCH_DATA_cached && in bch2_trigger_alloc()
892 !new_a->io_time[READ]) in bch2_trigger_alloc()
893 new_a->io_time[READ] = bch2_current_io_time(c, READ); in bch2_trigger_alloc()
898 alloc_lru_idx_read(*new_a)); in bch2_trigger_alloc()
906 alloc_lru_idx_fragmentation(*new_a, ca)); in bch2_trigger_alloc()
910 if (old_a->gen != new_a->gen) { in bch2_trigger_alloc()
911 ret = bch2_bucket_gen_update(trans, new.k->p, new_a->gen); in bch2_trigger_alloc()
925 ret = bch2_alloc_key_to_dev_counters(trans, ca, old_a, new_a, flags); in bch2_trigger_alloc()
934 if (log_fsck_err_on(transaction_seq && new_a->journal_seq_nonempty > transaction_seq, in bch2_trigger_alloc()
939 new_a->journal_seq_nonempty = transaction_seq; in bch2_trigger_alloc()
941 int is_empty_delta = (int) data_type_is_empty(new_a->data_type) - in bch2_trigger_alloc()
951 new_a->journal_seq_empty <= c->journal.flushed_seq_ondisk) { in bch2_trigger_alloc()
952 new_a->journal_seq_nonempty = transaction_seq; in bch2_trigger_alloc()
953 new_a->journal_seq_empty = 0; in bch2_trigger_alloc()
963 if (new_a->journal_seq_nonempty == transaction_seq || in bch2_trigger_alloc()
965 new_a->journal_seq_nonempty, in bch2_trigger_alloc()
967 new_a->journal_seq_nonempty = new_a->journal_seq_empty = 0; in bch2_trigger_alloc()
969 new_a->journal_seq_empty = transaction_seq; in bch2_trigger_alloc()
982 if (new_a->gen != old_a->gen) { in bch2_trigger_alloc()
989 *gen = new_a->gen; in bch2_trigger_alloc()
994 #define statechange(expr) !eval_state(old_a, expr) && eval_state(new_a, expr) in bch2_trigger_alloc()
998 bucket_flushed(new_a)) in bch2_trigger_alloc()
1003 bucket_flushed(new_a)) in bch2_trigger_alloc()
1023 g->gen = new_a->gen; in bch2_trigger_alloc()