Re: Defrag and delayed-allocation on Ext4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 8/29/18 11:22 AM, Joshi wrote:
> 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.

fallocate does not uses delayed allocation; it actually allocates
specific blocks on disk before it returns.  So delayed allocation
doesn't come into play for the temporary/donor file.

(delayed allocation happens during writeback, but for fallocate the
whole point is that there is no data written, it is simply an extent
allocation which is flagged to show that it is a preallocated extent
and that until it /is/ written to, reads should return 0s.)

-Eric



[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux