From patchwork Tue Mar 13 17:33:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 885340 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=vivier.eu Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4012Zx4myNz9sT2 for ; Wed, 14 Mar 2018 04:55:53 +1100 (AEDT) Received: from localhost ([::1]:41660 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evo9P-0001Vr-BL for incoming@patchwork.ozlabs.org; Tue, 13 Mar 2018 13:55:51 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55258) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evnoW-0008Pb-T4 for qemu-devel@nongnu.org; Tue, 13 Mar 2018 13:34:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evnoV-0007lC-Ql for qemu-devel@nongnu.org; Tue, 13 Mar 2018 13:34:16 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:50721) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1evnoV-0007jm-HE for qemu-devel@nongnu.org; Tue, 13 Mar 2018 13:34:15 -0400 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue005 [212.227.15.167]) with ESMTPSA (Nemesis) id 0MCuUJ-1enrKa3gIt-009g1T; Tue, 13 Mar 2018 18:34:04 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Tue, 13 Mar 2018 18:33:41 +0100 Message-Id: <20180313173355.4468-5-laurent@vivier.eu> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180313173355.4468-1-laurent@vivier.eu> References: <20180313173355.4468-1-laurent@vivier.eu> X-Provags-ID: V03:K0:pyTN3bzcgo+JilQbcD1g+vCd4UZF+6XT+6kAd3ILvrBcvYy0H/K gfD8Sp8kw/xQ0LV7ocW71EpZ5Xi1c5CW2BvairZ+Cw6MZuxRv8nnihc33tAeN1iPc4998rx kdbd3Qys+p5Zm5yf3pLMYIRDHHdmGL1nzNGXdfLMd2Vg9b70qERisqsHx6Xhq5W5vCp4MK/ CysUS5M/LEsmVdhmsmyuQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:eaJNMVml30I=:a3v10FTRWFVbzpOpp69UFi r4193VNnW7ofNElKyStKLgXETjUgngKm0/xXCyOyKOPJl0I1Vh94gX/aO8Pw5FzQj5mqqM4le FD4fwTzMaBx6x0NnC1Iw5RmSC5u51iX80ExVqkhHp3CpsiJncpcuhwP0T7TyOe6tyWg36H0Cm NlvdaGKhSefgfx2fNQRPsjTYVeg7V+tUw1vL7yfUkeu7K5h5CAh9Ab5hzvFIITiaz5EsONY+8 fn9pebx5GgVGiSkUxoXykedCdLaGPG4yXg3hXukAfojZEk+0utLErM1+BBftuOiCfZx6t9U8B zZTwRMW+NXFwANOAxzlY4nn8dzW+sd6zkouQ8CiiYXLJywWcv38xlsDG/GdGuW0CQmc2iKjVW xyzSDNw+zPvFUnsXvbRyiNXFbMAQP+P1oagvVLETgBR4VtbIc9ieFl4CJObkxXX8MZS1aZgFI uZIdRiH2TdvEVWCplpXrvqNSaNdLSG0e6eqGXpzulyb51pz96GOrvCp0R+49YV6lFZMojFDdM v6oXiSE/O7xtjg4h0QILFLbG8LSNbXKFYeWdtCZYg4ROBFsZ6bJxDgOlsB7guWA/ZViErp3fU 47JzSzNKt0PoNq2iQRU4H0jCynZdh81hzT92Z6/smUfdKZQlTIl1Cq963mEkJpPmZ8KuWkp/m EixMssZnGFFwZCOrj/VCm/JxAONv2xLDJut+JE2s4uuII4KzlgbZQr0eo+9e3A2HA9Yk1Ttaj uesQxa5cc4ImYNfH8fKxivGf7bm40nW/Pq92CQ== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.126.130 Subject: [Qemu-devel] [PULL 04/18] linux-user: Support f_flags in statfs when available. X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Shea Levy , Riku Voipio , Laurent Vivier Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Shea Levy Signed-off-by: Shea Levy Reviewed-by: Laurent Vivier Message-Id: <20180301111500.15717-1-shea@shealevy.com> Signed-off-by: Laurent Vivier --- linux-user/syscall.c | 5 +++++ linux-user/syscall_defs.h | 41 +++++++++++++++++++---------------------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index a8abfd421d..e1c3127bdc 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -9545,6 +9545,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, __put_user(stfs.f_fsid.__val[1], &target_stfs->f_fsid.val[1]); __put_user(stfs.f_namelen, &target_stfs->f_namelen); __put_user(stfs.f_frsize, &target_stfs->f_frsize); +#ifdef _STATFS_F_FLAGS + __put_user(stfs.f_flags, &target_stfs->f_flags); +#else + __put_user(0, &target_stfs->f_flags); +#endif memset(target_stfs->f_spare, 0, sizeof(target_stfs->f_spare)); unlock_user_struct(target_stfs, arg2, 1); } diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index 13aa70b93b..e53583e921 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -352,19 +352,6 @@ typedef struct { int val[2]; } kernel_fsid_t; -struct kernel_statfs { - int f_type; - int f_bsize; - int f_blocks; - int f_bfree; - int f_bavail; - int f_files; - int f_ffree; - kernel_fsid_t f_fsid; - int f_namelen; - int f_spare[6]; -}; - struct target_dirent { abi_long d_ino; abi_long d_off; @@ -2226,7 +2213,8 @@ struct target_statfs { /* Linux specials */ target_fsid_t f_fsid; int32_t f_namelen; - int32_t f_spare[6]; + int32_t f_flags; + int32_t f_spare[5]; }; #else struct target_statfs { @@ -2242,7 +2230,8 @@ struct target_statfs { /* Linux specials */ target_fsid_t f_fsid; abi_long f_namelen; - abi_long f_spare[6]; + abi_long f_flags; + abi_long f_spare[5]; }; #endif @@ -2258,7 +2247,8 @@ struct target_statfs64 { uint64_t f_bavail; target_fsid_t f_fsid; uint32_t f_namelen; - uint32_t f_spare[6]; + uint32_t f_flags; + uint32_t f_spare[5]; }; #elif (defined(TARGET_PPC64) || defined(TARGET_X86_64) || \ defined(TARGET_SPARC64) || defined(TARGET_AARCH64) || \ @@ -2274,7 +2264,8 @@ struct target_statfs { target_fsid_t f_fsid; abi_long f_namelen; abi_long f_frsize; - abi_long f_spare[5]; + abi_long f_flags; + abi_long f_spare[4]; }; struct target_statfs64 { @@ -2288,7 +2279,8 @@ struct target_statfs64 { target_fsid_t f_fsid; abi_long f_namelen; abi_long f_frsize; - abi_long f_spare[5]; + abi_long f_flags; + abi_long f_spare[4]; }; #elif defined(TARGET_S390X) struct target_statfs { @@ -2302,7 +2294,9 @@ struct target_statfs { kernel_fsid_t f_fsid; int32_t f_namelen; int32_t f_frsize; - int32_t f_spare[5]; + int32_t f_flags; + int32_t f_spare[4]; + }; struct target_statfs64 { @@ -2316,7 +2310,8 @@ struct target_statfs64 { kernel_fsid_t f_fsid; int32_t f_namelen; int32_t f_frsize; - int32_t f_spare[5]; + int32_t f_flags; + int32_t f_spare[4]; }; #else struct target_statfs { @@ -2330,7 +2325,8 @@ struct target_statfs { target_fsid_t f_fsid; uint32_t f_namelen; uint32_t f_frsize; - uint32_t f_spare[5]; + uint32_t f_flags; + uint32_t f_spare[4]; }; struct target_statfs64 { @@ -2344,7 +2340,8 @@ struct target_statfs64 { target_fsid_t f_fsid; uint32_t f_namelen; uint32_t f_frsize; - uint32_t f_spare[5]; + uint32_t f_flags; + uint32_t f_spare[4]; }; #endif