2018-06-29 02:25:35

by Souptick Joarder

[permalink] [raw]
Subject: [PATCH] orangefs: Adding new return type vm_fault_t

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 <[email protected]>
---
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



2018-07-06 06:45:46

by Souptick Joarder

[permalink] [raw]
Subject: Re: [PATCH] orangefs: Adding new return type vm_fault_t

On Fri, Jun 29, 2018 at 12:12 AM, Souptick Joarder <[email protected]> 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 <[email protected]>
> ---
> 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 ?

2018-07-06 14:07:40

by Mike Marshall

[permalink] [raw]
Subject: Re: [PATCH] orangefs: Adding new return type vm_fault_t

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 <[email protected]> wrote:
> On Fri, Jun 29, 2018 at 12:12 AM, Souptick Joarder <[email protected]> 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 <[email protected]>
>> ---
>> 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 ?

2018-07-10 19:58:46

by Mike Marshall

[permalink] [raw]
Subject: Re: [PATCH] orangefs: Adding new return type vm_fault_t

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 <[email protected]>



-Mike

On Fri, Jul 6, 2018 at 10:05 AM, Mike Marshall <[email protected]> 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 <[email protected]> wrote:
>> On Fri, Jun 29, 2018 at 12:12 AM, Souptick Joarder <[email protected]> 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 <[email protected]>
>>> ---
>>> 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 ?

2018-07-11 05:58:38

by Souptick Joarder

[permalink] [raw]
Subject: Re: [PATCH] orangefs: Adding new return type vm_fault_t

On Wed, Jul 11, 2018 at 1:13 AM, Mike Marshall <[email protected]> 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 <[email protected]>
>

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 <[email protected]> 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 <[email protected]> wrote:
>>> On Fri, Jun 29, 2018 at 12:12 AM, Souptick Joarder <[email protected]> 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 <[email protected]>
>>>> ---
>>>> 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 ?

2018-07-11 12:49:40

by Mike Marshall

[permalink] [raw]
Subject: Re: [PATCH] orangefs: Adding new return type vm_fault_t

Yes, I'd be happy to send it in at the 4.19 merge window...

-Mike

On Wed, Jul 11, 2018 at 1:56 AM, Souptick Joarder <[email protected]> wrote:
> On Wed, Jul 11, 2018 at 1:13 AM, Mike Marshall <[email protected]> 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 <[email protected]>
>>
>
> 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 <[email protected]> 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 <[email protected]> wrote:
>>>> On Fri, Jun 29, 2018 at 12:12 AM, Souptick Joarder <[email protected]> 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 <[email protected]>
>>>>> ---
>>>>> 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 ?