From 205cac6ddf266c2fe6c4ca725f0363e5d048405c Mon Sep 17 00:00:00 2001 From: yangxin <245051644@qq.com> Date: Mon, 17 Apr 2023 13:05:53 +0000 Subject: [PATCH] fix a bug: correct file->f_pos after write or read. Signed-off-by: yangxin <245051644@qq.com> --- qtfs/qtfs_server/fsops.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/qtfs/qtfs_server/fsops.c b/qtfs/qtfs_server/fsops.c index fb3f52c..8e9b0dd 100644 --- a/qtfs/qtfs_server/fsops.c +++ b/qtfs/qtfs_server/fsops.c @@ -418,6 +418,7 @@ static int handle_readiter(struct qtserver_arg *arg) rsp->d.errno = (int)rsp->d.len; } else { rsp->d.ret = QTFS_OK; + file->f_pos = req->pos; } qtfs_info("handle readiter file:<%s>, len:%lu, rsplen:%ld, pos:%lld, ret:%d errno:%d.\n", @@ -518,7 +519,13 @@ static int handle_write(struct qtserver_arg *arg) rsp->len += ret; } file_end_write(file); - rsp->ret = (rsp->len <= 0) ? QTFS_ERR : QTFS_OK; + if (rsp->len <= 0) { + rsp->ret = QTFS_ERR; + } else{ + rsp->ret = QTFS_OK; + file->f_pos = req->d.pos; + } + qtfs_info("handle write file<%s> %s, write len:%ld pos:%lld mode:%o flags:%x.", file->f_path.dentry->d_iname, (rsp->ret == QTFS_ERR) ? "failed" : "succeded", rsp->len, req->d.pos, file->f_mode, file->f_flags); end: -- Gitee