[PATCH] Fix compat_sys_preadv64v2/compat_sys_pwritev64v2

From: H.J. Lu
Date: Wed Oct 31 2018 - 14:42:37 EST


Update compat_sys_preadv64v2 and compat_sys_pwritev64v2 to handle the
offset argument == -1, which should use and update the the current file
offset.


--
H.J.
From 934a68be8a092dba9558bdf8025239934efb5d7e Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@xxxxxxxxx>
Date: Wed, 3 Oct 2018 08:07:18 -0700
Subject: [PATCH] Fix compat_sys_preadv64v2/compat_sys_pwritev64v2

Update compat_sys_preadv64v2 and compat_sys_pwritev64v2 to handle the
offset argument == -1, which should use and update the the current file
offset.

Signed-off-by: H.J. Lu <hjl.tools@xxxxxxxxx>
---
fs/read_write.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/fs/read_write.c b/fs/read_write.c
index 39b4a21dd933..a61111bdd8c9 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -1241,6 +1241,9 @@ COMPAT_SYSCALL_DEFINE5(preadv64v2, unsigned long, fd,
const struct compat_iovec __user *,vec,
unsigned long, vlen, loff_t, pos, rwf_t, flags)
{
+ if (pos == -1)
+ return do_compat_readv(fd, vec, vlen, flags);
+
return do_compat_preadv64(fd, vec, vlen, pos, flags);
}
#endif
@@ -1347,6 +1350,9 @@ COMPAT_SYSCALL_DEFINE5(pwritev64v2, unsigned long, fd,
const struct compat_iovec __user *,vec,
unsigned long, vlen, loff_t, pos, rwf_t, flags)
{
+ if (pos == -1)
+ return do_compat_writev(fd, vec, vlen, flags);
+
return do_compat_pwritev64(fd, vec, vlen, pos, flags);
}
#endif
--
2.17.2