Re: [PATCH] linux-user: fix translation of statx structures
Le 22/11/2019 à 18:40, Ariadne Conill a écrit : > All timestamps were copied to atime instead of to their respective > fields. > > Signed-off-by: Ariadne Conill > --- > linux-user/syscall.c | 12 ++-- > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index ce399a55f0..171c0caef3 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -6743,12 +6743,12 @@ static inline abi_long host_to_target_statx(struct > target_statx *host_stx, > __put_user(host_stx->stx_attributes_mask, > &target_stx->stx_attributes_mask); > __put_user(host_stx->stx_atime.tv_sec, &target_stx->stx_atime.tv_sec); > __put_user(host_stx->stx_atime.tv_nsec, &target_stx->stx_atime.tv_nsec); > -__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_atime.tv_sec); > -__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_atime.tv_nsec); > -__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_atime.tv_sec); > -__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_atime.tv_nsec); > -__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_atime.tv_sec); > -__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_atime.tv_nsec); > +__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_btime.tv_sec); > +__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_btime.tv_nsec); > +__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_ctime.tv_sec); > +__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_ctime.tv_nsec); > +__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_mtime.tv_sec); > +__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_mtime.tv_nsec); > __put_user(host_stx->stx_rdev_major, &target_stx->stx_rdev_major); > __put_user(host_stx->stx_rdev_minor, &target_stx->stx_rdev_minor); > __put_user(host_stx->stx_dev_major, &target_stx->stx_dev_major); > Applied to my linux-user branch for 4.2. Thanks, Laurent
Re: [PATCH] linux-user: fix translation of statx structures
Hello, On Fri, Nov 22, 2019 at 12:27 PM Aleksandar Markovic wrote: > > On Fri, Nov 22, 2019 at 7:22 PM Ariadne Conill > wrote: > > > > All timestamps were copied to atime instead of to their respective > > fields. > > > > Signed-off-by: Ariadne Conill > > --- > > What a bug. Yes, in Alpine qemu+binfmt_misc+chroot environment, this bug caused all files to have an observed mtime set to the UNIX epoch, which caused problems with building Autoconf-based applications. This really irked me so I took the time to dig into it. > > Laurent, perhaps a good candidate for 4.2? > > Thanks for submitting this, Ariadne Conill! Not a problem. Ariadne
Re: [PATCH] linux-user: fix translation of statx structures
Le 22/11/2019 à 18:40, Ariadne Conill a écrit : > All timestamps were copied to atime instead of to their respective > fields. > > Signed-off-by: Ariadne Conill > --- > linux-user/syscall.c | 12 ++-- > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index ce399a55f0..171c0caef3 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -6743,12 +6743,12 @@ static inline abi_long host_to_target_statx(struct > target_statx *host_stx, > __put_user(host_stx->stx_attributes_mask, > &target_stx->stx_attributes_mask); > __put_user(host_stx->stx_atime.tv_sec, &target_stx->stx_atime.tv_sec); > __put_user(host_stx->stx_atime.tv_nsec, &target_stx->stx_atime.tv_nsec); > -__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_atime.tv_sec); > -__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_atime.tv_nsec); > -__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_atime.tv_sec); > -__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_atime.tv_nsec); > -__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_atime.tv_sec); > -__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_atime.tv_nsec); > +__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_btime.tv_sec); > +__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_btime.tv_nsec); > +__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_ctime.tv_sec); > +__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_ctime.tv_nsec); > +__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_mtime.tv_sec); > +__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_mtime.tv_nsec); > __put_user(host_stx->stx_rdev_major, &target_stx->stx_rdev_major); > __put_user(host_stx->stx_rdev_minor, &target_stx->stx_rdev_minor); > __put_user(host_stx->stx_dev_major, &target_stx->stx_dev_major); > Reviewed-by: Laurent Vivier
Re: [PATCH] linux-user: fix translation of statx structures
On 11/22/19 7:27 PM, Aleksandar Markovic wrote: On Fri, Nov 22, 2019 at 7:22 PM Ariadne Conill wrote: All timestamps were copied to atime instead of to their respective fields. Fixes: efa921845c0 Signed-off-by: Ariadne Conill --- What a bug. Laurent, perhaps a good candidate for 4.2? Agreed. Thanks for submitting this, Ariadne Conill! And welcome to QEMU :) Reviewed-by: Aleksandar Markovic Reviewed-by: Philippe Mathieu-Daudé linux-user/syscall.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index ce399a55f0..171c0caef3 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -6743,12 +6743,12 @@ static inline abi_long host_to_target_statx(struct target_statx *host_stx, __put_user(host_stx->stx_attributes_mask, &target_stx->stx_attributes_mask); __put_user(host_stx->stx_atime.tv_sec, &target_stx->stx_atime.tv_sec); __put_user(host_stx->stx_atime.tv_nsec, &target_stx->stx_atime.tv_nsec); -__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_atime.tv_sec); -__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_atime.tv_nsec); -__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_atime.tv_sec); -__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_atime.tv_nsec); -__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_atime.tv_sec); -__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_atime.tv_nsec); +__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_btime.tv_sec); +__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_btime.tv_nsec); +__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_ctime.tv_sec); +__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_ctime.tv_nsec); +__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_mtime.tv_sec); +__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_mtime.tv_nsec); __put_user(host_stx->stx_rdev_major, &target_stx->stx_rdev_major); __put_user(host_stx->stx_rdev_minor, &target_stx->stx_rdev_minor); __put_user(host_stx->stx_dev_major, &target_stx->stx_dev_major); -- 2.24.0
Re: [PATCH] linux-user: fix translation of statx structures
On Fri, Nov 22, 2019 at 7:22 PM Ariadne Conill wrote: > > All timestamps were copied to atime instead of to their respective > fields. > > Signed-off-by: Ariadne Conill > --- What a bug. Laurent, perhaps a good candidate for 4.2? Thanks for submitting this, Ariadne Conill! Reviewed-by: Aleksandar Markovic > linux-user/syscall.c | 12 ++-- > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index ce399a55f0..171c0caef3 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -6743,12 +6743,12 @@ static inline abi_long host_to_target_statx(struct > target_statx *host_stx, > __put_user(host_stx->stx_attributes_mask, > &target_stx->stx_attributes_mask); > __put_user(host_stx->stx_atime.tv_sec, &target_stx->stx_atime.tv_sec); > __put_user(host_stx->stx_atime.tv_nsec, &target_stx->stx_atime.tv_nsec); > -__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_atime.tv_sec); > -__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_atime.tv_nsec); > -__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_atime.tv_sec); > -__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_atime.tv_nsec); > -__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_atime.tv_sec); > -__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_atime.tv_nsec); > +__put_user(host_stx->stx_btime.tv_sec, &target_stx->stx_btime.tv_sec); > +__put_user(host_stx->stx_btime.tv_nsec, &target_stx->stx_btime.tv_nsec); > +__put_user(host_stx->stx_ctime.tv_sec, &target_stx->stx_ctime.tv_sec); > +__put_user(host_stx->stx_ctime.tv_nsec, &target_stx->stx_ctime.tv_nsec); > +__put_user(host_stx->stx_mtime.tv_sec, &target_stx->stx_mtime.tv_sec); > +__put_user(host_stx->stx_mtime.tv_nsec, &target_stx->stx_mtime.tv_nsec); > __put_user(host_stx->stx_rdev_major, &target_stx->stx_rdev_major); > __put_user(host_stx->stx_rdev_minor, &target_stx->stx_rdev_minor); > __put_user(host_stx->stx_dev_major, &target_stx->stx_dev_major); > -- > 2.24.0 > >