From: Dillon Amburgey <dill...@dillona.com>

glibc on alpha still uses these

Signed-off-by: Dillon Amburgey <dill...@dillona.com>
---
 linux-user/syscall.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index e99adab..cb19ba1 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -4558,6 +4558,10 @@ static abi_long do_fcntl(int fd, int cmd, abi_ulong arg)
         fl.l_start = tswapal(target_fl->l_start);
         fl.l_len = tswapal(target_fl->l_len);
         fl.l_pid = tswap32(target_fl->l_pid);
+        if (fl.l_type == F_SHLCK)
+            fl.l_type = F_RDLCK;
+        if (fl.l_type == F_EXLCK)
+            fl.l_type = F_WRLCK;
         unlock_user_struct(target_fl, arg, 0);
         ret = get_errno(fcntl(fd, host_cmd, &fl));
         break;
-- 
1.7.5.4


Reply via email to