提交 1962f39a 编写于 作者: T Tao Ma 提交者: Joel Becker

ocfs2: Update atime in splice read if necessary.

We should call ocfs2_inode_lock_atime instead of ocfs2_inode_lock
in ocfs2_file_splice_read like we do in ocfs2_file_aio_read so
that we can update atime in splice read if necessary.
Signed-off-by: NTao Ma <tao.ma@oracle.com>
Signed-off-by: NJoel Becker <joel.becker@oracle.com>
上级 1c520dfb
...@@ -2026,7 +2026,7 @@ static ssize_t ocfs2_file_splice_read(struct file *in, ...@@ -2026,7 +2026,7 @@ static ssize_t ocfs2_file_splice_read(struct file *in,
size_t len, size_t len,
unsigned int flags) unsigned int flags)
{ {
int ret = 0; int ret = 0, lock_level = 0;
struct inode *inode = in->f_path.dentry->d_inode; struct inode *inode = in->f_path.dentry->d_inode;
mlog_entry("(0x%p, 0x%p, %u, '%.*s')\n", in, pipe, mlog_entry("(0x%p, 0x%p, %u, '%.*s')\n", in, pipe,
...@@ -2037,12 +2037,12 @@ static ssize_t ocfs2_file_splice_read(struct file *in, ...@@ -2037,12 +2037,12 @@ static ssize_t ocfs2_file_splice_read(struct file *in,
/* /*
* See the comment in ocfs2_file_aio_read() * See the comment in ocfs2_file_aio_read()
*/ */
ret = ocfs2_inode_lock(inode, NULL, 0); ret = ocfs2_inode_lock_atime(inode, in->f_vfsmnt, &lock_level);
if (ret < 0) { if (ret < 0) {
mlog_errno(ret); mlog_errno(ret);
goto bail; goto bail;
} }
ocfs2_inode_unlock(inode, 0); ocfs2_inode_unlock(inode, lock_level);
ret = generic_file_splice_read(in, ppos, pipe, len, flags); ret = generic_file_splice_read(in, ppos, pipe, len, flags);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册