compat: sync compat_stats with statfs.
authorEric W. Biederman <ebiederm@xmission.com>
Mon, 17 Oct 2011 20:40:02 +0000 (13:40 -0700)
committerroot <root@serles.lst.de>
Fri, 28 Oct 2011 12:58:53 +0000 (14:58 +0200)
commit1448c721e4fa2faf742029a0403b4b787fccb7fa
treef79332dccc85550b4c16510840850e11115cfff0
parenta877ee03ac010ded434b77f7831f43cbb1fcc60f
compat: sync compat_stats with statfs.

This was found by inspection while tracking a similar
bug in compat_statfs64, that has been fixed in mainline
since decemeber.

- This fixes a bug where not all of the f_spare fields
  were cleared on mips and s390.
- Add the f_flags field to struct compat_statfs
- Copy f_flags to userspace in case someone cares.
- Use __clear_user to copy the f_spare field to userspace
  to ensure that all of the elements of f_spare are cleared.
  On some architectures f_spare is has 5 ints and on some
  architectures f_spare only has 4 ints.  Which makes
  the previous technique of clearing each int individually
  broken.

I don't expect anyone actually uses the old statfs system
call anymore but if they do let them benefit from having
the compat and the native version working the same.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
arch/mips/include/asm/compat.h
arch/parisc/include/asm/compat.h
arch/powerpc/include/asm/compat.h
arch/s390/include/asm/compat.h
arch/sparc/include/asm/compat.h
arch/x86/include/asm/compat.h
fs/compat.c