During defragmentation, users can specify that a move should be ignored, and the block the candidate allocation resides in will be marked as "immovable" for the remainder of the pass. This is done by incrementing the immovable block count and moving the block to the beginning of the block list.
Unfortunately, the immovable block count is shared between all block lists currently being defragmented. This will result, potentially, in several blocks being marked immovable (and not defragmented) when they are not.
During defragmentation, users can specify that a move should be ignored, and the block the candidate allocation resides in will be marked as "immovable" for the remainder of the pass. This is done by incrementing the immovable block count and moving the block to the beginning of the block list.
Unfortunately, the immovable block count is shared between all block lists currently being defragmented. This will result, potentially, in several blocks being marked immovable (and not defragmented) when they are not.