Lines Matching full:discard
12 #include "discard.h"
17 * This contains the logic to handle async discard.
19 * Async discard manages trimming of free space outside of transaction commit.
24 * passes with different discard filter requirements. A delayed work item is
39 * The in-memory free space cache serves as the backing state for discard.
45 * ease/efficiency for find_free_extent() and the accuracy of discard state.
52 * tradeoff between discard state accuracy and the cost of accounting.
77 * Determine if async discard should be running.
79 * @discard_ctl: discard control
171 * If the block group is currently running in the discard workfn, we in remove_from_discard_list()
187 * @discard_ctl: discard control
190 * Iterate over the discard lists to find the next block_group up for
226 * @discard_ctl: discard control
229 * @now: time when discard was invoked, in ns
235 * but we want the discard to execute in the context determined here.
280 * Async discard maintains multiple lists with progressively smaller filters
282 * a larger filter be returned to the free_space_cache, prioritize that discard
314 * Move a block group along the discard lists.
316 * @discard_ctl: discard control
335 * Remove a block_group from the discard lists.
337 * @discard_ctl: discard control
340 * Remove @block_group from the discard lists. If necessary, wait on the
355 * @discard_ctl: discard control
358 * Maintain the LRU order of the discard lists.
393 * track of the previous discard. in __btrfs_discard_schedule_work()
428 * Responsible for scheduling the discard work.
430 * @discard_ctl: discard control
450 * @discard_ctl: discard control
454 * a pass on a discard list. If it is unused and fully trimmed, we can mark it
474 * Discard work queue callback
478 * Find the next block_group to start discarding and then discard a single
510 * Use the previous levels minimum discard length as the max in btrfs_discard_workfn()
551 * If the block group was removed from the discard list while it was in btrfs_discard_workfn()
567 * @discard_ctl: discard control
628 * Propagate discard counters.
670 * Punt unused_bgs list to discard lists.
674 * The unused_bgs list needs to be punted to the discard lists because the
675 * order of operations is changed. In the normal synchronous discard path, the
677 * is ultimately what we are trying to avoid with asynchronous discard. Thus,
685 /* We enabled async discard, so punt all to the queue */ in btrfs_discard_punt_unused_bgs_list()
692 * Queueing discard incremented it for discard's reference. in btrfs_discard_punt_unused_bgs_list()
700 * Purge discard lists.
702 * @discard_ctl: discard control
704 * If we are disabling async discard, we may have intercepted block groups that