SEEK_HOLE and SEEK_DATA does not work on zfs (with test case)

Attila Nagy bra at fsn.hu
Wed Apr 4 09:21:34 UTC 2012


On 04/04/12 10:57, Andriy Gapon wrote:
> on 04/04/2012 11:50 Attila Nagy said the following:
>> On 04/04/12 10:38, Andriy Gapon wrote:
>>> on 04/04/2012 10:52 Attila Nagy said the following:
>>>> Hi,
>>>>
>>>> I've started to experiment with SEEK_HOLE and SEEK_DATA in python on a recent
>>>> FreeBSD 9-STABLE/amd64 box and it quickly became evident that the program that
>>>> works on Solaris doesn't work on FreeBSD.
>>>> Python itself couldn't cause this, because it correctly issues the lseek, but
>>>> taking the C test program from here:
>>>> https://lkml.org/lkml/2011/4/22/79
>>>> gives the same result (failure).
>>> Please see this PR: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/164445
>>> If you can't figure out a patch from its contents, then I'll try to provide it
>>> some time later today.
>>>
>> I will try it, but the e-mail above the patch is somewhat scary...
> Sorry, I could not understand what you mean.
>
"The patch does the copy of the offset passed from the application
correctly, and allows lseek(2) with SEEK_DATA/SEEK_HOLE to be used on
ZFS, but it is not a solution. I couldn't see a problem in the
assembler of the copyin and copyout functions in
sys/amd64/amd64/support.S, but I might be wrong, I'm no assembler
expert."

This is scary. :)


More information about the freebsd-fs mailing list