Lines Matching full:discard
37 * extremely slow discard implementations (e.g. ceph RBD) and so walking a
51 * state of the free extent is out of our control and we cannot run a discard
53 * extent as busy and undergoing a discard operation whilst we held the AGF
56 * This is exactly how online discard works - free extents are marked busy when
58 * the busy extent record is marked as "undergoing discard" and the discard is
59 * then issued on the free extent. Once the discard completes, the busy extent
62 * In the context of fstrim, if we find a free extent we need to discard, we
63 * don't have to discard it immediately. All we need to do it record that free
64 * extent as being busy and under discard, and all the allocation routines will
66 * the AGF lock, we can safely discard it without holding the AGF lock because
67 * nothing will attempt to allocate that free space until the discard completes.
70 * discard, and so for fast devices fstrim will run much faster as we can have
71 * multiple discard operations in flight at once, as well as pipeline the free
72 * extent search so that it overlaps in flight discard IO.
104 * Walk the discard list and issue discards on all the busy extents in the
129 "discard failed for extent [0x%llx,%u], error %d", in xfs_discard_extents()
187 /* sub-AG discard request always starts at tcur->start */ in xfs_trim_gather_extents()
273 * discard and try again the next time. in xfs_trim_gather_extents()
301 * we aren't going to issue a discard on them any more. in xfs_trim_gather_extents()
320 * for the repeated iteration of gather/discard loop, so use the longest extent
361 * We hand the extent list to the discard function here so the in xfs_trim_perag_extents()
364 * the next round of extents to discard. in xfs_trim_perag_extents()
457 * Walk the discard list and issue discards on all the busy extents in the
496 "discard failed for rtextent [0x%llx,%llu], error %d", in xfs_discard_rtdev_extents()