For direct-write and normal-write operations, after write they will call fuse_invalidate_attr.
So it's make no sense to call file_update_time before writing.
In function file_update_time, there is other thing which update version of
inode.For this i am not sure.
Signed-off-by: Jianpeng Ma <[email protected]>
---
fs/fuse/file.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 34b80ba..214279c 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -988,10 +988,6 @@ static ssize_t fuse_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
if (err)
goto out;
- err = file_update_time(file);
- if (err)
- goto out;
-
if (file->f_flags & O_DIRECT) {
written = generic_file_direct_write(iocb, iov, &nr_segs,
pos, &iocb->ki_pos,
--
1.8.2.rc2.4.g7799588
On Fri, Mar 29, 2013 at 4:02 AM, majianpeng <[email protected]> wrote:
> For direct-write and normal-write operations, after write they will call fuse_invalidate_attr.
> So it's make no sense to call file_update_time before writing.
>
> In function file_update_time, there is other thing which update version of
> inode.For this i am not sure.
file_update_time will skip the actual file update anyway due to
S_NOCMTIME. And when we will do cached writes we actually need the
time updates. So I'm not applying this one.
Thanks,
Miklos
>
> Signed-off-by: Jianpeng Ma <[email protected]>
> ---
> fs/fuse/file.c | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/fs/fuse/file.c b/fs/fuse/file.c
> index 34b80ba..214279c 100644
> --- a/fs/fuse/file.c
> +++ b/fs/fuse/file.c
> @@ -988,10 +988,6 @@ static ssize_t fuse_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
> if (err)
> goto out;
>
> - err = file_update_time(file);
> - if (err)
> - goto out;
> -
> if (file->f_flags & O_DIRECT) {
> written = generic_file_direct_write(iocb, iov, &nr_segs,
> pos, &iocb->ki_pos,
> --
> 1.8.2.rc2.4.g7799588
>