Re: [lustre-devel] [PATCH v3] staging: lustre: Change return type to vm_fault_t

2018-06-14 Thread NeilBrown
On Thu, Jun 14 2018, Souptick Joarder wrote:

> On Thu, Jun 14, 2018 at 12:59 PM, NeilBrown  wrote:
>> On Tue, Jun 12 2018, Souptick Joarder wrote:
>>
>>> On 12-Jun-2018 2:21 AM, "Greg KH"  wrote:

 On Tue, Jun 12, 2018 at 02:00:47AM +0530, Souptick Joarder wrote:
 > On Mon, May 21, 2018 at 11:39 PM, Souptick Joarder 
 >
 > If no further comment, we would like to get this patch in 4.18-rc-X.

 Why?  Is it a regression fix?  That's all that is allowed after -rc1.
>>>
>>> No, this is not regression fix. We need to get this into 4.18-rc-1.  But
>>> mostly it can't make into linus tree in rc-1 :)

 And have you tried applying it to Linus's current tree?  :)
>>>
>>> Last tested on 4.17-rc-6 and it worked fine. Let me verify in current tree.
>>>
>>
>> As you have undoubtedly noticed, lustre is no longer in Linus' tree.
>> I'm experimenting with maintaining a branch which retains the code
>> (lustre/* in github.com/neilbrown/linux) so we can get it ready for
>> merging properly.
>> I've added you patch to my tree.
>
> You need to add this patch in your tree as well.
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20180614=1c8f422059ae5da07db7406ab916203f9417e396
>
> This patch appears to be missing in your github branch.
??
That patch is in 4.17-rc1 (v4.17-rc1~99^2~6) and my lustre trees are
based on 4.17 (at least).  My 'master' might be a bit behind - maybe
that confused you.

Thanks,
NeilBrown


signature.asc
Description: PGP signature
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [lustre-devel] [PATCH v3] staging: lustre: Change return type to vm_fault_t

2018-06-14 Thread Souptick Joarder
On Thu, Jun 14, 2018 at 12:59 PM, NeilBrown  wrote:
> On Tue, Jun 12 2018, Souptick Joarder wrote:
>
>> On 12-Jun-2018 2:21 AM, "Greg KH"  wrote:
>>>
>>> On Tue, Jun 12, 2018 at 02:00:47AM +0530, Souptick Joarder wrote:
>>> > On Mon, May 21, 2018 at 11:39 PM, Souptick Joarder 
>>> >
>>> > If no further comment, we would like to get this patch in 4.18-rc-X.
>>>
>>> Why?  Is it a regression fix?  That's all that is allowed after -rc1.
>>
>> No, this is not regression fix. We need to get this into 4.18-rc-1.  But
>> mostly it can't make into linus tree in rc-1 :)
>>>
>>> And have you tried applying it to Linus's current tree?  :)
>>
>> Last tested on 4.17-rc-6 and it worked fine. Let me verify in current tree.
>>
>
> As you have undoubtedly noticed, lustre is no longer in Linus' tree.
> I'm experimenting with maintaining a branch which retains the code
> (lustre/* in github.com/neilbrown/linux) so we can get it ready for
> merging properly.
> I've added you patch to my tree.

You need to add this patch in your tree as well.
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20180614=1c8f422059ae5da07db7406ab916203f9417e396

This patch appears to be missing in your github branch.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [lustre-devel] [PATCH v3] staging: lustre: Change return type to vm_fault_t

2018-06-14 Thread NeilBrown
On Tue, Jun 12 2018, Souptick Joarder wrote:

> On 12-Jun-2018 2:21 AM, "Greg KH"  wrote:
>>
>> On Tue, Jun 12, 2018 at 02:00:47AM +0530, Souptick Joarder wrote:
>> > On Mon, May 21, 2018 at 11:39 PM, Souptick Joarder 
>> >
>> > If no further comment, we would like to get this patch in 4.18-rc-X.
>>
>> Why?  Is it a regression fix?  That's all that is allowed after -rc1.
>
> No, this is not regression fix. We need to get this into 4.18-rc-1.  But
> mostly it can't make into linus tree in rc-1 :)
>>
>> And have you tried applying it to Linus's current tree?  :)
>
> Last tested on 4.17-rc-6 and it worked fine. Let me verify in current tree.
>

As you have undoubtedly noticed, lustre is no longer in Linus' tree.
I'm experimenting with maintaining a branch which retains the code
(lustre/* in github.com/neilbrown/linux) so we can get it ready for
merging properly.
I've added you patch to my tree.

Thanks,
NeilBrown


signature.asc
Description: PGP signature
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v3] staging: lustre: Change return type to vm_fault_t

2018-06-12 Thread Souptick Joarder
On Tue, Jun 12, 2018 at 2:37 AM, Greg KH  wrote:
> On Tue, Jun 12, 2018 at 02:30:27AM +0530, Souptick Joarder wrote:
>> > >
>> > > If no further comment, we would like to get this patch in 4.18-rc-X.
>> >
>> > Why?  Is it a regression fix?  That's all that is allowed after -rc1.
>>
>> No, this is not regression fix. We need to get this into 4.18-rc-1.  But
>> mostly it can't make into linus tree in rc-1 :)
>
> Why does it _have_ to get into 4.18-rc1?  My tree is long-closed and
> Linus already has all of my patches in his tree for the staging section
> of the kernel.
>
>> > And have you tried applying it to Linus's current tree?  :)
>>
>> Last tested on 4.17-rc-6 and it worked fine. Let me verify in current tree.
>
> Try it, you might be surprised :)

Yes, got the surprise :)
Sorry for making noise, I will drop this patch as it is no more valid
in current Linus's tree.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v3] staging: lustre: Change return type to vm_fault_t

2018-06-11 Thread Greg KH
On Tue, Jun 12, 2018 at 02:30:27AM +0530, Souptick Joarder wrote:
> > >
> > > If no further comment, we would like to get this patch in 4.18-rc-X.
> >
> > Why?  Is it a regression fix?  That's all that is allowed after -rc1.
> 
> No, this is not regression fix. We need to get this into 4.18-rc-1.  But
> mostly it can't make into linus tree in rc-1 :)

Why does it _have_ to get into 4.18-rc1?  My tree is long-closed and
Linus already has all of my patches in his tree for the staging section
of the kernel.

> > And have you tried applying it to Linus's current tree?  :)
> 
> Last tested on 4.17-rc-6 and it worked fine. Let me verify in current tree.

Try it, you might be surprised :)

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v3] staging: lustre: Change return type to vm_fault_t

2018-06-11 Thread Greg KH
On Tue, Jun 12, 2018 at 02:00:47AM +0530, Souptick Joarder wrote:
> On Mon, May 21, 2018 at 11:39 PM, Souptick Joarder  
> 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.
> >
> > Ref-> commit 1c8f422059ae ("mm: change return type to
> > vm_fault_t") was added in 4.17-rc1 to introduce the new
> > typedef vm_fault_t. Currently we are making change to all
> > drivers to return vm_fault_t for page fault handlers. As
> > part of that lustre driver is also getting changed to
> > return vm_fault_t type.
> >
> > Signed-off-by: Souptick Joarder 
> > ---
> > v2: updated the change log
> >
> > v3: updated the change log
> >
> >  drivers/staging/lustre/lustre/llite/llite_mmap.c | 35 
> > 
> >  1 file changed, 18 insertions(+), 17 deletions(-)
> >
> > diff --git a/drivers/staging/lustre/lustre/llite/llite_mmap.c 
> > b/drivers/staging/lustre/lustre/llite/llite_mmap.c
> > index c0533bd..5b8fd10 100644
> > --- a/drivers/staging/lustre/lustre/llite/llite_mmap.c
> > +++ b/drivers/staging/lustre/lustre/llite/llite_mmap.c
> > @@ -231,7 +231,7 @@ static int ll_page_mkwrite0(struct vm_area_struct *vma, 
> > struct page *vmpage,
> > return result;
> >  }
> >
> > -static inline int to_fault_error(int result)
> > +static inline vm_fault_t to_fault_error(int result)
> >  {
> > switch (result) {
> > case 0:
> > @@ -261,7 +261,7 @@ static inline int to_fault_error(int result)
> >   * \retval VM_FAULT_ERROR on general error
> >   * \retval NOPAGE_OOM not have memory for allocate new page
> >   */
> > -static int ll_fault0(struct vm_area_struct *vma, struct vm_fault *vmf)
> > +static vm_fault_t ll_fault0(struct vm_area_struct *vma, struct vm_fault 
> > *vmf)
> >  {
> > struct lu_env  *env;
> > struct cl_io*io;
> > @@ -269,16 +269,16 @@ static int ll_fault0(struct vm_area_struct *vma, 
> > struct vm_fault *vmf)
> > struct page  *vmpage;
> > unsigned long   ra_flags;
> > int   result = 0;
> > -   int   fault_ret = 0;
> > +   vm_fault_t  fault_ret = 0;
> > u16 refcheck;
> >
> > env = cl_env_get();
> > if (IS_ERR(env))
> > -   return PTR_ERR(env);
> > +   return VM_FAULT_ERROR;
> >
> > io = ll_fault_io_init(env, vma, vmf->pgoff, _flags);
> > if (IS_ERR(io)) {
> > -   result = to_fault_error(PTR_ERR(io));
> > +   fault_ret = to_fault_error(PTR_ERR(io));
> > goto out;
> > }
> >
> > @@ -319,15 +319,15 @@ static int ll_fault0(struct vm_area_struct *vma, 
> > struct vm_fault *vmf)
> > if (result != 0 && !(fault_ret & VM_FAULT_RETRY))
> > fault_ret |= to_fault_error(result);
> >
> > -   CDEBUG(D_MMAP, "%s fault %d/%d\n", current->comm, fault_ret, 
> > result);
> > +   CDEBUG(D_MMAP, "%s fault %x/%d\n", current->comm, fault_ret, 
> > result);
> > return fault_ret;
> >  }
> >
> > -static int ll_fault(struct vm_fault *vmf)
> > +static vm_fault_t ll_fault(struct vm_fault *vmf)
> >  {
> > int count = 0;
> > bool printed = false;
> > -   int result;
> > +   vm_fault_t result;
> > sigset_t set;
> >
> > /* Only SIGKILL and SIGTERM are allowed for fault/nopage/mkwrite
> > @@ -364,18 +364,19 @@ static int ll_fault(struct vm_fault *vmf)
> > return result;
> >  }
> >
> > -static int ll_page_mkwrite(struct vm_fault *vmf)
> > +static vm_fault_t ll_page_mkwrite(struct vm_fault *vmf)
> >  {
> > struct vm_area_struct *vma = vmf->vma;
> > int count = 0;
> > bool printed = false;
> > bool retry;
> > -   int result;
> > +   int err;
> > +   vm_fault_t ret;
> >
> > file_update_time(vma->vm_file);
> > do {
> > retry = false;
> > -   result = ll_page_mkwrite0(vma, vmf->page, );
> > +   err = ll_page_mkwrite0(vma, vmf->page, );
> >
> > if (!printed && ++count > 16) {
> > const struct dentry *de = 
> > vma->vm_file->f_path.dentry;
> > @@ -387,25 +388,25 @@ static int ll_page_mkwrite(struct vm_fault *vmf)
> > }
> > } while (retry);
> >
> > -   switch (result) {
> > +   switch (err) {
> > case 0:
> > LASSERT(PageLocked(vmf->page));
> > -   result = VM_FAULT_LOCKED;
> > +   ret = VM_FAULT_LOCKED;
> > break;
> > case -ENODATA:
> > case -EAGAIN:
> > case -EFAULT:
> > -   result = VM_FAULT_NOPAGE;
> > +   ret = VM_FAULT_NOPAGE;
> > break;
> > case -ENOMEM:
> > -   result = VM_FAULT_OOM;
> > +   

Re: [PATCH v3] staging: lustre: Change return type to vm_fault_t

2018-06-11 Thread Souptick Joarder
On Mon, May 21, 2018 at 11:39 PM, Souptick Joarder  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.
>
> Ref-> commit 1c8f422059ae ("mm: change return type to
> vm_fault_t") was added in 4.17-rc1 to introduce the new
> typedef vm_fault_t. Currently we are making change to all
> drivers to return vm_fault_t for page fault handlers. As
> part of that lustre driver is also getting changed to
> return vm_fault_t type.
>
> Signed-off-by: Souptick Joarder 
> ---
> v2: updated the change log
>
> v3: updated the change log
>
>  drivers/staging/lustre/lustre/llite/llite_mmap.c | 35 
> 
>  1 file changed, 18 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/staging/lustre/lustre/llite/llite_mmap.c 
> b/drivers/staging/lustre/lustre/llite/llite_mmap.c
> index c0533bd..5b8fd10 100644
> --- a/drivers/staging/lustre/lustre/llite/llite_mmap.c
> +++ b/drivers/staging/lustre/lustre/llite/llite_mmap.c
> @@ -231,7 +231,7 @@ static int ll_page_mkwrite0(struct vm_area_struct *vma, 
> struct page *vmpage,
> return result;
>  }
>
> -static inline int to_fault_error(int result)
> +static inline vm_fault_t to_fault_error(int result)
>  {
> switch (result) {
> case 0:
> @@ -261,7 +261,7 @@ static inline int to_fault_error(int result)
>   * \retval VM_FAULT_ERROR on general error
>   * \retval NOPAGE_OOM not have memory for allocate new page
>   */
> -static int ll_fault0(struct vm_area_struct *vma, struct vm_fault *vmf)
> +static vm_fault_t ll_fault0(struct vm_area_struct *vma, struct vm_fault *vmf)
>  {
> struct lu_env  *env;
> struct cl_io*io;
> @@ -269,16 +269,16 @@ static int ll_fault0(struct vm_area_struct *vma, struct 
> vm_fault *vmf)
> struct page  *vmpage;
> unsigned long   ra_flags;
> int   result = 0;
> -   int   fault_ret = 0;
> +   vm_fault_t  fault_ret = 0;
> u16 refcheck;
>
> env = cl_env_get();
> if (IS_ERR(env))
> -   return PTR_ERR(env);
> +   return VM_FAULT_ERROR;
>
> io = ll_fault_io_init(env, vma, vmf->pgoff, _flags);
> if (IS_ERR(io)) {
> -   result = to_fault_error(PTR_ERR(io));
> +   fault_ret = to_fault_error(PTR_ERR(io));
> goto out;
> }
>
> @@ -319,15 +319,15 @@ static int ll_fault0(struct vm_area_struct *vma, struct 
> vm_fault *vmf)
> if (result != 0 && !(fault_ret & VM_FAULT_RETRY))
> fault_ret |= to_fault_error(result);
>
> -   CDEBUG(D_MMAP, "%s fault %d/%d\n", current->comm, fault_ret, result);
> +   CDEBUG(D_MMAP, "%s fault %x/%d\n", current->comm, fault_ret, result);
> return fault_ret;
>  }
>
> -static int ll_fault(struct vm_fault *vmf)
> +static vm_fault_t ll_fault(struct vm_fault *vmf)
>  {
> int count = 0;
> bool printed = false;
> -   int result;
> +   vm_fault_t result;
> sigset_t set;
>
> /* Only SIGKILL and SIGTERM are allowed for fault/nopage/mkwrite
> @@ -364,18 +364,19 @@ static int ll_fault(struct vm_fault *vmf)
> return result;
>  }
>
> -static int ll_page_mkwrite(struct vm_fault *vmf)
> +static vm_fault_t ll_page_mkwrite(struct vm_fault *vmf)
>  {
> struct vm_area_struct *vma = vmf->vma;
> int count = 0;
> bool printed = false;
> bool retry;
> -   int result;
> +   int err;
> +   vm_fault_t ret;
>
> file_update_time(vma->vm_file);
> do {
> retry = false;
> -   result = ll_page_mkwrite0(vma, vmf->page, );
> +   err = ll_page_mkwrite0(vma, vmf->page, );
>
> if (!printed && ++count > 16) {
> const struct dentry *de = vma->vm_file->f_path.dentry;
> @@ -387,25 +388,25 @@ static int ll_page_mkwrite(struct vm_fault *vmf)
> }
> } while (retry);
>
> -   switch (result) {
> +   switch (err) {
> case 0:
> LASSERT(PageLocked(vmf->page));
> -   result = VM_FAULT_LOCKED;
> +   ret = VM_FAULT_LOCKED;
> break;
> case -ENODATA:
> case -EAGAIN:
> case -EFAULT:
> -   result = VM_FAULT_NOPAGE;
> +   ret = VM_FAULT_NOPAGE;
> break;
> case -ENOMEM:
> -   result = VM_FAULT_OOM;
> +   ret = VM_FAULT_OOM;
> break;
> default:
> -   result = VM_FAULT_SIGBUS;
> +   ret = VM_FAULT_SIGBUS;
> break;
> }
>
> -   return result;
> +   return ret;
>  }
>
>  /**
> --
> 1.9.1
>

If no further comment, we would like to get this patch in 4.18-rc-X.

[PATCH v3] staging: lustre: Change return type to vm_fault_t

2018-05-21 Thread Souptick Joarder
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.

Ref-> commit 1c8f422059ae ("mm: change return type to
vm_fault_t") was added in 4.17-rc1 to introduce the new
typedef vm_fault_t. Currently we are making change to all
drivers to return vm_fault_t for page fault handlers. As
part of that lustre driver is also getting changed to
return vm_fault_t type. 

Signed-off-by: Souptick Joarder 
---
v2: updated the change log

v3: updated the change log

 drivers/staging/lustre/lustre/llite/llite_mmap.c | 35 
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/lustre/lustre/llite/llite_mmap.c 
b/drivers/staging/lustre/lustre/llite/llite_mmap.c
index c0533bd..5b8fd10 100644
--- a/drivers/staging/lustre/lustre/llite/llite_mmap.c
+++ b/drivers/staging/lustre/lustre/llite/llite_mmap.c
@@ -231,7 +231,7 @@ static int ll_page_mkwrite0(struct vm_area_struct *vma, 
struct page *vmpage,
return result;
 }
 
-static inline int to_fault_error(int result)
+static inline vm_fault_t to_fault_error(int result)
 {
switch (result) {
case 0:
@@ -261,7 +261,7 @@ static inline int to_fault_error(int result)
  * \retval VM_FAULT_ERROR on general error
  * \retval NOPAGE_OOM not have memory for allocate new page
  */
-static int ll_fault0(struct vm_area_struct *vma, struct vm_fault *vmf)
+static vm_fault_t ll_fault0(struct vm_area_struct *vma, struct vm_fault *vmf)
 {
struct lu_env  *env;
struct cl_io*io;
@@ -269,16 +269,16 @@ static int ll_fault0(struct vm_area_struct *vma, struct 
vm_fault *vmf)
struct page  *vmpage;
unsigned long   ra_flags;
int   result = 0;
-   int   fault_ret = 0;
+   vm_fault_t  fault_ret = 0;
u16 refcheck;
 
env = cl_env_get();
if (IS_ERR(env))
-   return PTR_ERR(env);
+   return VM_FAULT_ERROR;
 
io = ll_fault_io_init(env, vma, vmf->pgoff, _flags);
if (IS_ERR(io)) {
-   result = to_fault_error(PTR_ERR(io));
+   fault_ret = to_fault_error(PTR_ERR(io));
goto out;
}
 
@@ -319,15 +319,15 @@ static int ll_fault0(struct vm_area_struct *vma, struct 
vm_fault *vmf)
if (result != 0 && !(fault_ret & VM_FAULT_RETRY))
fault_ret |= to_fault_error(result);
 
-   CDEBUG(D_MMAP, "%s fault %d/%d\n", current->comm, fault_ret, result);
+   CDEBUG(D_MMAP, "%s fault %x/%d\n", current->comm, fault_ret, result);
return fault_ret;
 }
 
-static int ll_fault(struct vm_fault *vmf)
+static vm_fault_t ll_fault(struct vm_fault *vmf)
 {
int count = 0;
bool printed = false;
-   int result;
+   vm_fault_t result;
sigset_t set;
 
/* Only SIGKILL and SIGTERM are allowed for fault/nopage/mkwrite
@@ -364,18 +364,19 @@ static int ll_fault(struct vm_fault *vmf)
return result;
 }
 
-static int ll_page_mkwrite(struct vm_fault *vmf)
+static vm_fault_t ll_page_mkwrite(struct vm_fault *vmf)
 {
struct vm_area_struct *vma = vmf->vma;
int count = 0;
bool printed = false;
bool retry;
-   int result;
+   int err;
+   vm_fault_t ret;
 
file_update_time(vma->vm_file);
do {
retry = false;
-   result = ll_page_mkwrite0(vma, vmf->page, );
+   err = ll_page_mkwrite0(vma, vmf->page, );
 
if (!printed && ++count > 16) {
const struct dentry *de = vma->vm_file->f_path.dentry;
@@ -387,25 +388,25 @@ static int ll_page_mkwrite(struct vm_fault *vmf)
}
} while (retry);
 
-   switch (result) {
+   switch (err) {
case 0:
LASSERT(PageLocked(vmf->page));
-   result = VM_FAULT_LOCKED;
+   ret = VM_FAULT_LOCKED;
break;
case -ENODATA:
case -EAGAIN:
case -EFAULT:
-   result = VM_FAULT_NOPAGE;
+   ret = VM_FAULT_NOPAGE;
break;
case -ENOMEM:
-   result = VM_FAULT_OOM;
+   ret = VM_FAULT_OOM;
break;
default:
-   result = VM_FAULT_SIGBUS;
+   ret = VM_FAULT_SIGBUS;
break;
}
 
-   return result;
+   return ret;
 }
 
 /**
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel