Possibly a newbie question for the list, excuse my ignorance. I saw e4defrag code, which fallocates a temporary file in the outset. I imagine that extents would not get allocated to the this file at this time due to delayed-allocation feature (extent/block allocations should happen post writes which seem to happen much later, during extents copying between target-file and temporary-file). However, e4defrag needs extent information just after fallocate() to determine whether it is wise to go-ahead with defrag process i.e. whether new file is any less-fragmented than target one. I wonder how this decision-making is possible if fallocate does not allocate extents/blocks. I'd appreciate the thoughts. -- Joshi