Re: [PATCH] orangefs: Adding new return type vm_fault_t

From: Souptick Joarder
Date: Wed Jul 11 2018 - 01:56:35 EST


On Wed, Jul 11, 2018 at 1:13 AM, Mike Marshall <hubcap@xxxxxxxxxxxx> wrote:
> Hi...
>
> I applied this patch to 4.18.0-rc4. It applied cleanly and there's no xfstests
> regressions. Sorry if I held you up any...
>
> You can add: Tested-By: Mike Marshall <hubcap@xxxxxxxxxxxx>
>

Thanks Mike. Can we get this patch in queue for 4.19 merge window ?

> -Mike
>
> On Fri, Jul 6, 2018 at 10:05 AM, Mike Marshall <hubcap@xxxxxxxxxxxx> wrote:
>> Souptick Joarder: Any comment for this patch?
>>
>> Thanks for sending it <g>...
>>
>> I have it in my stack, but I haven't studied it, or xfstested it yet, so
>> no useful comments yet...
>>
>> -Mike
>>
>>
>>
>> On Fri, Jul 6, 2018 at 2:44 AM, Souptick Joarder <jrdr.linux@xxxxxxxxx> wrote:
>>> On Fri, Jun 29, 2018 at 12:12 AM, Souptick Joarder <jrdr.linux@xxxxxxxxx> wrote:
>>>> Use new return type vm_fault_t for fault handler. For now,
>>>> this is just documenting that the function returns a VM_FAULT
>>>> value rather than an errno. Once all instances are converted,
>>>> vm_fault_t will become a distinct type.
>>>>
>>>> See the following
>>>> commit 1c8f422059ae ("mm: change return type to vm_fault_t")
>>>>
>>>> Fixed checkpatch.pl warning.
>>>>
>>>> Signed-off-by: Souptick Joarder <jrdr.linux@xxxxxxxxx>
>>>> ---
>>>> fs/orangefs/file.c | 19 ++++++++++---------
>>>> 1 file changed, 10 insertions(+), 9 deletions(-)
>>>>
>>>> diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
>>>> index db0b521..a5a2fe7 100644
>>>> --- a/fs/orangefs/file.c
>>>> +++ b/fs/orangefs/file.c
>>>> @@ -528,18 +528,19 @@ static long orangefs_ioctl(struct file *file, unsigned int cmd, unsigned long ar
>>>> return ret;
>>>> }
>>>>
>>>> -static int orangefs_fault(struct vm_fault *vmf)
>>>> +static vm_fault_t orangefs_fault(struct vm_fault *vmf)
>>>> {
>>>> struct file *file = vmf->vma->vm_file;
>>>> - int rc;
>>>> - rc = orangefs_inode_getattr(file->f_mapping->host, 0, 1,
>>>> + int ret;
>>>> +
>>>> + ret = orangefs_inode_getattr(file->f_mapping->host, 0, 1,
>>>> STATX_SIZE);
>>>> - if (rc == -ESTALE)
>>>> - rc = -EIO;
>>>> - if (rc) {
>>>> - gossip_err("%s: orangefs_inode_getattr failed, "
>>>> - "rc:%d:.\n", __func__, rc);
>>>> - return rc;
>>>> + if (ret == -ESTALE)
>>>> + ret = -EIO;
>>>> + if (ret) {
>>>> + gossip_err("%s: orangefs_inode_getattr failed, ret:%d:.\n",
>>>> + __func__, ret);
>>>> + return VM_FAULT_SIGBUS;
>>>> }
>>>> return filemap_fault(vmf);
>>>> }
>>>> --
>>>> 1.9.1
>>>>
>>>
>>> Any comment for this patch ?