From d5de8eaa514e2a29cd85f0bb4eae7850bfe59c88 Mon Sep 17 00:00:00 2001 From: liqiang Date: Mon, 11 Dec 2023 21:46:43 +0800 Subject: [PATCH 08/12] fix coredump run binary after copy in client Signed-off-by: liqiang --- qtfs/qtfs/sb.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/qtfs/qtfs/sb.c b/qtfs/qtfs/sb.c index fb60261..68ad696 100644 --- a/qtfs/qtfs/sb.c +++ b/qtfs/qtfs/sb.c @@ -482,6 +482,11 @@ ssize_t qtfs_writeiter(struct kiocb *kio, struct iov_iter *iov) wake_up_interruptible_poll(&priv->readq, EPOLLIN); qtfs_err("writeiter file:%s len:%lu wakup poll.", filp->f_path.dentry->d_iname, len - leftlen); } + if (inode->i_size < kio->ki_pos) { + qtfs_info("file:%s write pos reached:%lld and inode size is:%lld just update.", + filp->f_path.dentry->d_iname, kio->ki_pos, inode->i_size); + inode->i_size = kio->ki_pos; + } } while (0); qtfs_info("qtfs write %s over, leftlen:%lu.", filp->f_path.dentry->d_iname, leftlen); qtfs_conn_put_param(pvar); @@ -1331,6 +1336,7 @@ int qtfs_getattr(const struct path *path, struct kstat *stat, u32 req_mask, unsi qtfs_conn_put_param(pvar); return ret; } + inode->i_size = rsp->stat.size; *stat = rsp->stat; if (path->dentry && path->dentry->d_inode && S_ISDIR(path->dentry->d_inode->i_mode)) path->dentry->d_time = jiffies; -- 2.37.1 (Apple Git-137.1)