Re: [PATCH] fscrypt: Factor out bio specific functions

From: Richard Weinberger
Date: Fri Dec 16 2016 - 17:19:24 EST


On 16.12.2016 23:14, Eric Biggers wrote:
> On Fri, Dec 16, 2016 at 09:48:19PM +0100, Richard Weinberger wrote:
>> On 16.12.2016 16:37, David Gstir wrote:
>>>> @@ -349,33 +347,10 @@ int fscrypt_zeroout_range(const struct inode *inode, pgoff_t lblk,
>>>> err = do_page_crypto(inode, FS_ENCRYPT, lblk,
>>>> ZERO_PAGE(0), ciphertext_page,
>>>> PAGE_SIZE, 0, GFP_NOFS);
>>>> + err = fscrypt_bio_submit_page(inode, pblk, ciphertext_page);
>>>
>>> Any specific reason why you didn't just move the whole fscrypt_zeroout_range() to bio.c?
>>
>> The function depends other internal functions of crypto.c which I didn't want to
>> export.
>> At the end of the day it's a matter of taste. I found it less ugly to keep
>> fscrypt_zeroout_range() in crypto.c than exposing internal stuff.
>>
>
> Hmm, it still seems weird to define fscrypt_zeroout_range() when it can't
> actually be used. It looks like the problem is specifically the use of
> alloc_bounce_page() and do_page_crypto(). Would it be that bad to make those
> available in fscrypt_internal.h (not exported to filesystems)?

We can also hide it under a #ifdef CONFIG_BLOCK.

Exporting internal functions is also an option. As I said, I found the current
variant the least ugly one.

Thanks,
//richard