Lines Matching +full:disk +full:- +full:activity
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
7 Copyright (C) 2003-2008, LINBIT Information Technologies GmbH.
8 Copyright (C) 2003-2008, Philipp Reisner <philipp.reisner@linbit.com>.
9 Copyright (C) 2003-2008, Lars Ellenberg <lars.ellenberg@linbit.com>.
24 This header file (and its .c file; kernel-doc of functions see there)
39 We replicate IO (more or less synchronously) to local and remote disk.
42 we need to resync all regions that have been target of in-flight WRITE IO
48 This is known as "write intent log", and can be implemented as on-disk
53 in-flight WRITE IO, e.g. by only lazily clearing the on-disk write-intent
64 [*] usually as a result of a cluster split-brain and insufficient protection.
68 Having it fine-grained reduces the amount of resync traffic.
76 The on-disk "dirty bitmap" may be re-used as "write-intent" bitmap as well.
77 To reduce the frequency of bitmap updates for write-intent log purposes,
79 on-disk bitmap, while keeping the in-memory "dirty" bitmap as clean as
80 possible, flushing it to disk again when a previously "hot" (and on-disk
86 for write-intent log purposes, additionally to the fine grained dirty bitmap.
88 "Activity log"
99 change itself (index: -old_label, +new_label), and which index is associated
110 This is what we call the "activity log".
112 Currently we need one activity log transaction per single label change, which
118 the bitmap into one transaction to the activity log ring buffer.
124 * region number (label) easily. To do the label -> object lookup without a
142 * them, as the change "index: -old_label, +LC_FREE" would need a transaction
151 /* back "pointer" into lc_cache->element[index],
165 /* the least recently used item is kept at lru->prev */
171 /* the pre-created kmem cache to allocate the objects from */
198 /* see below: flag-bits for lru_cache */
210 /* flag-bits for lru_cache */
259 * lc_try_lock_for_transaction - can be used to stop lc_get() from changing the tracked set
268 return !test_and_set_bit(__LC_LOCKED, &lc->flags); in lc_try_lock_for_transaction()
272 * lc_try_lock - variant to stop lc_get() from changing the tracked set
283 * lc_unlock - unlock @lc, allow lc_get() to change the set again
288 clear_bit(__LC_DIRTY, &lc->flags); in lc_unlock()
289 clear_bit_unlock(__LC_LOCKED, &lc->flags); in lc_unlock()