Re: ext4: fix reference counting bug on block allocation error

Vegard Nossum
2016-08-14T19:36:09Z

On 08/14/2016 09:09 PM, Greg KH wrote:
> On Sun, Aug 14, 2016 at 09:02:48PM +0200, Vegard Nossum wrote:
>> The commit which is being fixed is ancient:
>>
>> $ git describe 8556e8f3b6
>> v2.6.28-5758-g8556e8f3
>>
>> It's probably already in the base of every current stable tree, no?
>
> Huh? Ok, this odd:
> $ git describe --contains 8556e8f3b6
> fatal: cannot describe '8556e8f3b6c4c11601ce1e9ea8090a6d8bd5daae'
>
> Yet just a plain 'git describe' does work...
>
> That's what threw me off, I only use --contains as that shows the
> release the commit is in.
>
> Ok, that makes me feel a bit better (that my scripts didn't miss the
> patch, it was just old), but I wonder what is going on with git...
>

How odd.

There is this:

http://www.spinics.net/lists/git/msg246837.html

"""
Yes, the "describe --contains" algorithm uses timestamps to cut off the
traversal, so it can do the wrong thing if there's clock skew. It has a
"slop" margin of one day, but skew larger than that can fool it.
"""

It looks like ancestors of 87d8fe1 don't work:

$ for commit in $(git rev-list 87d8fe1^^..87d8fe1); do git describe
--contains $commit; done
v2.6.29-rc1~40^2~12
fatal: cannot describe '0087d9fb3f29f59e8d42c8b058376d80e5adde4c'

So maybe it's because the parent commit is 2 days in the future:

$ git log --format=fuller 87d8fe1^^..87d8fe1
commit 87d8fe1ee6b8d2f95076142d58c440dba4e7bdc2
Author: Theodore Ts'o <tytso@mit.edu>
AuthorDate: Sat Jan 3 09:47:09 2009 -0500
Commit: Theodore Ts'o <tytso@mit.edu>
CommitDate: Sat Jan 3 09:47:09 2009 -0500
[...]

commit 0087d9fb3f29f59e8d42c8b058376d80e5adde4c
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
AuthorDate: Mon Jan 5 21:49:12 2009 -0500
Commit: Theodore Ts'o <tytso@mit.edu>
CommitDate: Mon Jan 5 21:49:12 2009 -0500
[...]

Vegard