Re: Defrag and delayed-allocation on Ext4

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

 



Thanks Eric. That explains. Donor file is out of the influence of
delayed allocation.
But now I wonder about target file which needs to be de-fragmented.
Defrag sounds tricky if part of this file is on-disk (i.e. extent
information is present) while remaining is yet to be written-back
(i.e. extents are yet to be allocated).
On Wed, Aug 29, 2018 at 10:20 PM Eric Sandeen <esandeen@xxxxxxxxxx> wrote:
>
> 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



-- 
Joshi



[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