Re: [PATCH] cifs: fix offset handling in cifs_iovec_write

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



merged into cifs-2.6.git

On Fri, Apr 13, 2012 at 4:16 PM, Jeff Layton <jlayton@xxxxxxxxxx> wrote:
> In the recent update of the cifs_iovec_write code to use async writes,
> the handling of the file position was broken. That patch added a local
> "offset" variable to handle the offset, and then only updated the
> original "*poffset" before exiting.
>
> Unfortunately, it copied off the original offset from the beginning,
> instead of doing so after generic_write_checks had been called. Fix
> this by moving the initialization of "offset" after that in the
> function.
>
> Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
> ---
>  fs/cifs/file.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/fs/cifs/file.c b/fs/cifs/file.c
> index fae765d..81725e9 100644
> --- a/fs/cifs/file.c
> +++ b/fs/cifs/file.c
> @@ -2178,7 +2178,7 @@ cifs_iovec_write(struct file *file, const struct iovec *iov,
>        unsigned long nr_pages, i;
>        size_t copied, len, cur_len;
>        ssize_t total_written = 0;
> -       loff_t offset = *poffset;
> +       loff_t offset;
>        struct iov_iter it;
>        struct cifsFileInfo *open_file;
>        struct cifs_tcon *tcon;
> @@ -2200,6 +2200,7 @@ cifs_iovec_write(struct file *file, const struct iovec *iov,
>        cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
>        open_file = file->private_data;
>        tcon = tlink_tcon(open_file->tlink);
> +       offset = *poffset;
>
>        if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_RWPIDFORWARD)
>                pid = open_file->pid;
> --
> 1.7.7.6
>



-- 
Thanks,

Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux