Return EOPNOTSUPP instead of ENOSYS for *xattr* syscalls
authorArnaud Patard <arnaud.patard@rtp-net.org>
Tue, 21 Apr 2009 18:04:18 +0000 (21:04 +0300)
committerRiku Voipio <riku.voipio@nokia.com>
Tue, 16 Jun 2009 13:56:28 +0000 (16:56 +0300)
In current code, we're sending ENOSYS to target when a syscall for the
xattrs is done. This makes applications like ls complain loudly about
that and breaks scripts parsing the output. Moreover, iirc, implemented
features of filesystems are are sending EOPNOTSUPP (I've not checked so
I may be a little bit wrong on that...).
So, I'm proposing to return -EOPNOTSUPP and make ls happy

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
linux-user/syscall.c

index 8a95349..d1febff 100644 (file)
@@ -6579,7 +6579,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
     case TARGET_NR_removexattr:
     case TARGET_NR_lremovexattr:
     case TARGET_NR_fremovexattr:
-        goto unimplemented_nowarn;
+        ret = -TARGET_EOPNOTSUPP;
+        break;
 #endif
 #ifdef TARGET_NR_set_thread_area
     case TARGET_NR_set_thread_area: