Re: ext4: Do not dec quota for reserved blocks on error paths v2

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

 



Eric Sandeen <sandeen@xxxxxxxxxx> writes:

> Dmitry Monakhov wrote:
>> If we have failed some where inside ext4_get_blocks() internals we may
>> have allocated some new blocks, which was not yet claimed to quota.
>> We have to free such blocks, but without touching quota. Quota will
>> be updated later on exit from ext4_get_blocks().
>> There are two possible ways to understand what we have to skip quota update:
>> 1) Caller pass corresponding flag to ext4_free_blocks()
>> 2) check that free_blocks() was indirectly called by get_blocks() 
>>    (i.e EXT4_I(inode)->i_delalloc_reserved_flag is set)
>> Second is simpler, but may result in unpredictable consequences later.
>> So i've chosen the first one, because caller must know which blocks it
>> is freeing.
>> 
>> Eric, please take your attention to metadata blocks handling when
>> you will work on new versing of  "ext4: don't use quota reservation for
>> speculative metadata blocks" patch.
>> 
>> The bug happens on heavily loaded node, or with 227'th xfstestcase and
>
> hm which test?  227 is xfs-only...
Oh.. it has that number at the time i've posted it, and it wasn't
merged yet.
http://marc.info/?l=linux-ext4&m=127124399930095&w=2
You have already requested some cleanups, so i'll post new version,
under new number, soon.
>
> -Eric
>
>> result in incorrect i_blocks (less than expected). So truncation for
>> that file result in i_blocks overflow.
>> Seems this was the last bug which was easily triggered by 227'th testcase.
>> 
>> 
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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