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