Re: algif_hash: splice of data > 2**16

leroy christophe
2014-12-23T17:16:13Z

Le 20/12/2014 07:37, Stephan Mueller a écrit :
> Am Donnerstag, 18. Dezember 2014, 13:22:20 schrieb leroy christophe:
>
> Hi Christophe,
>
>> Le 18/12/2014 13:15, Stephan Mueller a écrit :
>>> Hi Herbert,
>>>
>>> While testing the vmsplice/splice interface of algif_hash I was made
>>> aware of the problem that data blobs larger than 16 pages do not seem to
>>> be hashed properly.
>>>
>>> For testing, a file is mmap()ed and handed to vmsplice / splice. If the
>>> file is smaller than 2**16, the interface returns the proper hash.
>>> However, when the file is larger, only the first 2**16 bytes seem to be
>>> used.
>>>
>>> When adding printk's to hash_sendpage, I see that this function is
>>> invoked exactly 16 times where the first 15 invocations have the
>>> MSG_MORE flag set and the last invocation does not have MSG_MORE.
>> Hi Stephan,
>>
>> I have already noticed the same issue and proposed a patch, but I never
>> got any feedback and it has never been merged, allthought I pinged it a
>> few times.
>>
>> See https://lkml.org/lkml/2014/4/18/276
> After testing, this patch does not work for me. The operation still stops
> after 16 pages.
Yes, it looks like the function I fixed is exclusively used by
sendfile() system call.
So there is probably the same kind of fix to be done in another function.

Christophe