Use the updated offset given by generic_write_checks. Without this fix,
even if a file is opened in O_APPEND mode, data will be written at current
file position instead of end of file.
Signed-off-by: M. Mohan Kumar <[email protected]>
---
fs/9p/vfs_file.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c
index 6997eb6..ffed558 100644
--- a/fs/9p/vfs_file.c
+++ b/fs/9p/vfs_file.c
@@ -508,9 +508,12 @@ v9fs_file_write(struct file *filp, const char __user * data,
if (!count)
goto out;
- return v9fs_file_write_internal(filp->f_path.dentry->d_inode,
+ retval = v9fs_file_write_internal(filp->f_path.dentry->d_inode,
filp->private_data,
- data, count, offset, 1);
+ data, count, &origin, 1);
+ /* update offset on successful write */
+ if (retval > 0)
+ *offset = origin;
out:
return retval;
}
--
1.7.3.4
On Wed, 16 Mar 2011 21:40:49 +0530, "M. Mohan Kumar" <[email protected]> wrote:
> Use the updated offset given by generic_write_checks. Without this fix,
> even if a file is opened in O_APPEND mode, data will be written at current
> file position instead of end of file.
>
> Signed-off-by: M. Mohan Kumar <[email protected]>
Reviewed-by: Aneesh Kumar K.V <[email protected]>
Eric,
I guess this should go in this merge window ?
> ---
> fs/9p/vfs_file.c | 7 +++++--
> 1 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c
> index 6997eb6..ffed558 100644
> --- a/fs/9p/vfs_file.c
> +++ b/fs/9p/vfs_file.c
> @@ -508,9 +508,12 @@ v9fs_file_write(struct file *filp, const char __user * data,
> if (!count)
> goto out;
>
> - return v9fs_file_write_internal(filp->f_path.dentry->d_inode,
> + retval = v9fs_file_write_internal(filp->f_path.dentry->d_inode,
> filp->private_data,
> - data, count, offset, 1);
> + data, count, &origin, 1);
> + /* update offset on successful write */
> + if (retval > 0)
> + *offset = origin;
> out:
> return retval;
> }
Yeah, probably a good idea, if we don't make it in time these are
actually fixes so we can bring them in during -rc1.
On Sun, Mar 20, 2011 at 8:56 AM, Aneesh Kumar K. V
<[email protected]> wrote:
> On Wed, 16 Mar 2011 21:40:49 +0530, "M. Mohan Kumar" <[email protected]> wrote:
>> Use the updated offset given by generic_write_checks. Without this fix,
>> even if a file is opened in O_APPEND mode, data will be written at current
>> file position instead of end of file.
>>
>> Signed-off-by: M. Mohan Kumar <[email protected]>
>
> Reviewed-by: Aneesh Kumar K.V <[email protected]>
>
> Eric,
>
> I guess this should go in this merge window ?
>
>> ---
>> ?fs/9p/vfs_file.c | ? ?7 +++++--
>> ?1 files changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c
>> index 6997eb6..ffed558 100644
>> --- a/fs/9p/vfs_file.c
>> +++ b/fs/9p/vfs_file.c
>> @@ -508,9 +508,12 @@ v9fs_file_write(struct file *filp, const char __user * data,
>> ? ? ? if (!count)
>> ? ? ? ? ? ? ? goto out;
>>
>> - ? ? return v9fs_file_write_internal(filp->f_path.dentry->d_inode,
>> + ? ? retval = v9fs_file_write_internal(filp->f_path.dentry->d_inode,
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? filp->private_data,
>> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? data, count, offset, 1);
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? data, count, &origin, 1);
>> + ? ? /* update offset on successful write */
>> + ? ? if (retval > 0)
>> + ? ? ? ? ? ? *offset = origin;
>> ?out:
>> ? ? ? return retval;
>> ?}
>
> ------------------------------------------------------------------------------
> Colocation vs. Managed Hosting
> A question and answer guide to determining the best fit
> for your organization - today and in the future.
> http://p.sf.net/sfu/internap-sfd2d
> _______________________________________________
> V9fs-developer mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/v9fs-developer
>