From: Frajo Date: Thu, 30 Jan 2020 13:00:30 +0000 (+0200) Subject: linux-user: Support f_flags in statfs64 when available. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b94e2b4e34524c37b86f6acb8ad4a696969f2dd0;p=qmiga%2Fqemu.git linux-user: Support f_flags in statfs64 when available. Same as d4247ec2d79ef2477cb886fa688706b068119736 but for statfs64 When running rpm within qemu-arm-dynamic this could cause rpm fail with an error like "installing package A needs B MB on the C filesystem" depending on what is in memory in f_flags. https://github.com/rpm-software-management/rpm/blob/af06db1d5558870f7fb8f5c502572c2d27af5c71/lib/transaction.c#L164 Signed-off-by: Franz-Josef Haider Reviewed-by: Laurent Vivier Message-Id: <2e405fe7-efab-dae5-93d6-02575773fd6e@jolla.com> Signed-off-by: Laurent Vivier --- diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 3e0f14f2e6..cd520ae42e 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -9787,6 +9787,11 @@ static abi_long do_syscall1(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, arg3, 1); }