NFS client broken in 4.1.0-rc2
From: Chuck Lever <hidden>
Date: 2015-05-21 01:16:18
Also in:
linux-fsdevel, linux-nfs, lkml
On May 20, 2015, at 7:22 PM, Russell King - ARM Linux [off-list ref] wrote:
On Fri, May 15, 2015 at 03:50:14PM +0100, Russell King - ARM Linux wrote:quoted
On Fri, May 15, 2015 at 10:26:48AM -0400, Chuck Lever wrote:quoted
On May 15, 2015, at 10:24 AM, Russell King - ARM Linux [off-list ref] wrote:quoted
While trying to update a kernel and modules on one of my test systems, I was greeted by these errors: tar: lib/modules/4.1.0-rc2+/kernel/drivers/media/platform/coda/coda.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/kernel/drivers/media/dvb-frontends/drx39xyj/drx39xyj.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/kernel/drivers/media/usb/em28xx/em28xx.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/kernel/drivers/usb/serial/option.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/kernel/drivers/usb/serial/ftdi_sio.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/kernel/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/kernel/drivers/input/mouse/psmouse.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/kernel/fs/udf/udf.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/kernel/fs/fuse/fuse.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/kernel/fs/nfsd/nfsd.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/kernel/sound/soc/codecs/snd-soc-wm8962.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/kernel/net/bluetooth/bluetooth.ko: Cannot utime tar: lib/modules/4.1.0-rc2+/modules.alias.bin: Cannot utime tar: lib/modules/4.1.0-rc2+/modules.alias: Cannot utime tar: Exiting with failure status due to previous errors Searching google wasn't helpful, as all the "Cannot utime" errors that google could find are followed by an errno string. stracing at first sight didn't seem to be helpful, as no syscalls (apart from openat() with a pre-existing file) were failing. Having recently updated to fc21 tar generating the archive, I thought maybe it was a tar format bug between fc21 tar and the target's tar. That was until I tried to "apt-get source tar" on the target, and was greeted by the same error. So I then tried untaring the tar source archive onto a ramfs, which worked without complaint. The difference being that it's a root NFS box, and so I was untaring onto NFS. Here's the entry from /proc/mounts: x.y.z.221:/var/boot/ci on / type nfs (rw,nolock,vers=4,addr=x.y.z.221,clientaddr=a.b.c.55) Looking closer at the strace reveals this: openat(AT_FDCWD, "lib/modules/4.1.0-rc2+/kernel/drivers/media/platform/coda/coda.ko", O_WRONLY|O_CREAT|O_EXCL|O_NOCTTY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC, 0600) = -1 EEXIST (File exists) unlinkat(AT_FDCWD, "lib/modules/4.1.0-rc2+/kernel/drivers/media/platform/coda/coda.ko", 0) = 0 openat(AT_FDCWD, "lib/modules/4.1.0-rc2+/kernel/drivers/media/platform/coda/coda.ko", O_WRONLY|O_CREAT|O_EXCL|O_NOCTTY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC, 0600) = 4 write(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\1\0(\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 ... write(4, "\300H\0\0\34\345\1\0\314H\0\0\34\345\1\0\330H\0\0\34\345\1\0<I\0\0\34\370\1\0"..., 7312) = 7312 dup2(4, 4) = 4 fstat64(4, {st_mode=0757221, st_size=13181880119170311768, ...}) = 21 write(2, "tar: ", 5) = 5 write(2, "lib/modules/4.1.0-rc2+/kernel/dr"..., 79) = 79 write(2, "\n", 1) = 1 fchown32(4, 0, 0) = 0 fchmod(4, 0664) = 0 close(4) = 0 Look closely at that fstat64, and you'll notice that it's returning crap.This is likely fixed by: http://marc.info/?l=linux-nfs&m=143095122604344&w=2Yes, it appears to be fixed by that change. I'll add it to my tree so my test systems work.I notice NFS patches were merged by Linus recently, but this patch was not in the set. Is this patch scheduled to go in for 4.1?
Trond sent Linus a pull request yesterday for 2 patches, including the one you are asking about. See: http://marc.info/?l=linux-nfs&m=143205093309624&w=2 -- Chuck Lever chuck[dot]lever[at]oracle[dot]com