2013-08-06 12:31:29

by Peng Tao

[permalink] [raw]
Subject: [PATCH] staging/lustre: kiocb->ki_left is removed

From: Peng Tao <[email protected]>

We also missed ki_nbytes...

Cc: Kent Overstreet <[email protected]>
Cc: Andreas Dilger <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Peng Tao <[email protected]>
---
This fixes Lustre build in linux-next and needs to go through
the aio tree as Kent's AIO patch is not in upstream kernel.

drivers/staging/lustre/lustre/llite/file.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c
index 253f026..bc534db 100644
--- a/drivers/staging/lustre/lustre/llite/file.c
+++ b/drivers/staging/lustre/lustre/llite/file.c
@@ -1009,7 +1009,7 @@ static ssize_t ll_file_read(struct file *file, char *buf, size_t count,
local_iov->iov_len = count;
init_sync_kiocb(kiocb, file);
kiocb->ki_pos = *ppos;
- kiocb->ki_left = count;
+ kiocb->ki_nbytes = count;

result = ll_file_aio_read(kiocb, local_iov, 1, kiocb->ki_pos);
*ppos = kiocb->ki_pos;
@@ -1068,7 +1068,7 @@ static ssize_t ll_file_write(struct file *file, const char *buf, size_t count,
local_iov->iov_len = count;
init_sync_kiocb(kiocb, file);
kiocb->ki_pos = *ppos;
- kiocb->ki_left = count;
+ kiocb->ki_nbytes = count;

result = ll_file_aio_write(kiocb, local_iov, 1, kiocb->ki_pos);
*ppos = kiocb->ki_pos;
--
1.7.9.5


2013-08-06 15:03:11

by Benjamin LaHaise

[permalink] [raw]
Subject: Re: [PATCH] staging/lustre: kiocb->ki_left is removed

On Tue, Aug 06, 2013 at 08:31:01PM +0800, Peng Tao wrote:
> From: Peng Tao <[email protected]>
>
> We also missed ki_nbytes...

Applied to the aio-next.git tree.

-ben

> Cc: Kent Overstreet <[email protected]>
> Cc: Andreas Dilger <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Signed-off-by: Peng Tao <[email protected]>
> ---
> This fixes Lustre build in linux-next and needs to go through
> the aio tree as Kent's AIO patch is not in upstream kernel.
>
> drivers/staging/lustre/lustre/llite/file.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c
> index 253f026..bc534db 100644
> --- a/drivers/staging/lustre/lustre/llite/file.c
> +++ b/drivers/staging/lustre/lustre/llite/file.c
> @@ -1009,7 +1009,7 @@ static ssize_t ll_file_read(struct file *file, char *buf, size_t count,
> local_iov->iov_len = count;
> init_sync_kiocb(kiocb, file);
> kiocb->ki_pos = *ppos;
> - kiocb->ki_left = count;
> + kiocb->ki_nbytes = count;
>
> result = ll_file_aio_read(kiocb, local_iov, 1, kiocb->ki_pos);
> *ppos = kiocb->ki_pos;
> @@ -1068,7 +1068,7 @@ static ssize_t ll_file_write(struct file *file, const char *buf, size_t count,
> local_iov->iov_len = count;
> init_sync_kiocb(kiocb, file);
> kiocb->ki_pos = *ppos;
> - kiocb->ki_left = count;
> + kiocb->ki_nbytes = count;
>
> result = ll_file_aio_write(kiocb, local_iov, 1, kiocb->ki_pos);
> *ppos = kiocb->ki_pos;
> --
> 1.7.9.5

--
"Thought is the essence of where you are now."

2013-08-07 06:06:50

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] staging/lustre: kiocb->ki_left is removed

On Tue, Aug 06, 2013 at 11:03:08AM -0400, Benjamin LaHaise wrote:
> On Tue, Aug 06, 2013 at 08:31:01PM +0800, Peng Tao wrote:
> > From: Peng Tao <[email protected]>
> >
> > We also missed ki_nbytes...
>
> Applied to the aio-next.git tree.

The correct fix would be to just switch the .read and .write entry
points in Lustre to use do_sync_read/write instead of reimplementing it
incorrectly.