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 new_a->gen++; in bch2_trigger_alloc()
875 SET_BCH_ALLOC_V4_NEED_INC_GEN(new_a, false); in bch2_trigger_alloc()
876 alloc_data_type_set(new_a, new_a->data_type); in bch2_trigger_alloc()
879 if (old_a->data_type != new_a->data_type || in bch2_trigger_alloc()
880 (new_a->data_type == BCH_DATA_free && in bch2_trigger_alloc()
881 alloc_freespace_genbits(*old_a) != alloc_freespace_genbits(*new_a))) { in bch2_trigger_alloc()
883 bch2_bucket_do_index(trans, ca, new.s_c, new_a, true); in bch2_trigger_alloc()
888 if (new_a->data_type == BCH_DATA_cached && in bch2_trigger_alloc()
889 !new_a->io_time[READ]) in bch2_trigger_alloc()
890 new_a->io_time[READ] = bch2_current_io_time(c, READ); in bch2_trigger_alloc()
893 u64 new_lru = alloc_lru_idx_read(*new_a); in bch2_trigger_alloc()
903 new_lru = alloc_lru_idx_fragmentation(*new_a, ca); in bch2_trigger_alloc()
913 if (old_a->gen != new_a->gen) { in bch2_trigger_alloc()
914 ret = bch2_bucket_gen_update(trans, new.k->p, new_a->gen); in bch2_trigger_alloc()
928 ret = bch2_alloc_key_to_dev_counters(trans, ca, old_a, new_a, flags); in bch2_trigger_alloc()
937 if (log_fsck_err_on(transaction_seq && new_a->journal_seq_nonempty > transaction_seq, in bch2_trigger_alloc()
942 new_a->journal_seq_nonempty = transaction_seq; in bch2_trigger_alloc()
944 int is_empty_delta = (int) data_type_is_empty(new_a->data_type) - in bch2_trigger_alloc()
954 new_a->journal_seq_empty <= c->journal.flushed_seq_ondisk) { in bch2_trigger_alloc()
955 new_a->journal_seq_nonempty = transaction_seq; in bch2_trigger_alloc()
956 new_a->journal_seq_empty = 0; in bch2_trigger_alloc()
966 if (new_a->journal_seq_nonempty == transaction_seq || in bch2_trigger_alloc()
968 new_a->journal_seq_nonempty, in bch2_trigger_alloc()
970 new_a->journal_seq_nonempty = new_a->journal_seq_empty = 0; in bch2_trigger_alloc()
972 new_a->journal_seq_empty = transaction_seq; in bch2_trigger_alloc()
985 if (new_a->gen != old_a->gen) { in bch2_trigger_alloc()
992 *gen = new_a->gen; in bch2_trigger_alloc()
997 #define statechange(expr) !eval_state(old_a, expr) && eval_state(new_a, expr) in bch2_trigger_alloc()
1001 bucket_flushed(new_a)) in bch2_trigger_alloc()
1006 bucket_flushed(new_a)) in bch2_trigger_alloc()
1026 g->gen = new_a->gen; in bch2_trigger_alloc()