Latest working kernel version: 2.6.28-rc9 Earliest failing kernel version: 2.6.29-rc1 Distribution: Debian Hardware Environment: IBM Thinkpad T42 Software Environment: Problem Description: xfs_fsr -v fails with: XFS_IOC_SWAPEXT failed: ino=XXXXXXX: Invalid argument Steps to reproduce: Run xfs_fsr on a moderately fragmented filesystem. Have git-bisected this to the following patch: commit 743bb4650da9e2595d6cedd01c680b5b9398c74a Author: sandeen@sandeen.net <sandeen@sandeen.net> Date: Tue Nov 25 21:20:06 2008 -0600 [XFS] Move copy_from_user calls out of ioctl helpers into ioctl switch. Moving the copy_from_user out of some of the ioctl helpers will make it easier for the compat ioctl switch to copy in the right struct, then just pass to the underlying helper. Also, move common access checks into the helpers themselves, and out of the native ioctl switch code, to reduce code duplication between native & compat ioctl callers. Signed-off-by: Eric Sandeen <sandeen@sandeen.net> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Thanks for doing the bisecting. Which arch is this on, and if a 64-bit arch, is it 32 bit or 64 bit userspace?
32-bit i686. processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 13 model name : Intel(R) Pentium(R) M processor 1.70GHz stepping : 6
Created attachment 19986 [details] potential fix Wow, that was an incredibly dumb mistake on my part, not sure how it ever worked at all. Does this help?
Yes, it fixes it.
thanks so much for finding, bisecting, and testing. Patch sent to the list, cc'd akpm, should get upstream soon if all goes well. :)
Handled-By : Eric Sandeen <sandeen@sandeen.net Patch : http://bugzilla.kernel.org/attachment.cgi?id=19986&action=view First-Bad-Commit : 743bb4650da9e2595d6cedd01c680b5b9398c74a
Fixed by commit f0e0059b9c18426cffdcc04161062251a8f9741e .