On Sat, Apr 05, 2008 at 11:35:34PM +0100, Vincent Sanders wrote:
> OABI/EABI compatability issue with fstatat64 and mixed ABI
> kernels. Patch fixes this, seems to be important on debian arm with
> EABI capable kernels.
This patch is identical to mine:
http://lists.debian.org/debian-arm/2008/03/msg00104.html
I guess this confirms the patch is correct ;)
> Will fix #472982
actually the bug is #462677 (against linux-2.6). #472982
is against coreutils and correctly set as being blocked by
the linux-2.6 bug.
> Signed-off-by: Vincent Sanders <vince@simtec.co.uk>
>
> --
> Regards Vincent
> http://www.kyllikki.org/
>
> --- linux-2.6.24/arch/arm/kernel/calls.S 2008-01-24 22:58:37.000000000 +0000
> +++ linux-2.6.24-fstatat64/arch/arm/kernel/calls.S 2008-04-05 20:01:11.000000000 +0100
> @@ -336,7 +336,7 @@
> CALL(sys_mknodat)
> /* 325 */ CALL(sys_fchownat)
> CALL(sys_futimesat)
> - CALL(sys_fstatat64)
> + CALL(ABI(sys_fstatat64, sys_oabi_fstatat64))
> CALL(sys_unlinkat)
> CALL(sys_renameat)
> /* 330 */ CALL(sys_linkat)
> --- linux-2.6.24/arch/arm/kernel/sys_oabi-compat.c 2008-01-24 22:58:37.000000000 +0000
> +++ linux-2.6.24-fstatat64/arch/arm/kernel/sys_oabi-compat.c 2008-04-05 21:24:56.000000000 +0100
> @@ -169,6 +169,28 @@
> return error;
> }
>
> +asmlinkage long sys_oabi_fstatat64(int dfd, char __user *filename,
> + struct oldabi_stat64 __user *statbuf, int flag)
> +{
> + struct kstat stat;
> + int error = -EINVAL;
> +
> + if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0)
> + goto out;
> +
> + if (flag & AT_SYMLINK_NOFOLLOW)
> + error = vfs_lstat_fd(dfd, filename, &stat);
> + else
> + error = vfs_stat_fd(dfd, filename, &stat);
> +
> + if (!error)
> + error = cp_oldabi_stat64(&stat, statbuf);
> +
> +out:
> + return error;
> +}
> +
> +
> struct oabi_flock64 {
> short l_type;
> short l_whence;
>
>
>
>
Attachment:
signature.asc
Description: Digital signature