Chuck Lever
ee5dc7732b
NFS: Fix "kernel BUG at fs/nfs/nfs3xdr.c:1338!"
Milan Broz <mbroz@redhat.com> reports:
> on today Linus' tree I get OOps if using nfs.
>
> server (2.6.36) exports dir:
> /dir 172.16.1.0/24(rw,async,all_squash,no_subtree_check,anonuid=500,anongid=500)
>
> on client it is mounted in fstab
> server:/dir /mnt/tst nfs rw,soft 0 0
>
> and these commands OOpses it (simplified from a configure script):
>
> cd /dir
> touch x
> install x y
>
> [ 105.327701] ------------[ cut here ]------------
> [ 105.327979] kernel BUG at fs/nfs/nfs3xdr.c:1338!
> [ 105.328075] invalid opcode: 0000 [#1] PREEMPT SMP
> [ 105.328223] last sysfs file: /sys/devices/virtual/bdi/0:16/uevent
> [ 105.328349] Modules linked in: usbcore dm_mod
> [ 105.328553]
> [ 105.328678] Pid: 3710, comm: install Not tainted 2.6.37+ #423 440BX Desktop Reference Platform/VMware Virtual Platform
> [ 105.328853] EIP: 0060:[<c116c06c>] EFLAGS: 00010282 CPU: 0
> [ 105.329152] EIP is at nfs3_xdr_enc_setacl3args+0x61/0x98
> [ 105.329249] EAX: ffffffea EBX: ce941d98 ECX: 00000000 EDX: 00000004
> [ 105.329340] ESI: ce941cd0 EDI: 000000a4 EBP: ce941cc0 ESP: ce941cb4
> [ 105.329431] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
> [ 105.329525] Process install (pid: 3710, ti=ce940000 task=ced36f20 task.ti=ce940000)
> [ 105.336600] Stack:
> [ 105.336693] ce941cd0 ce9dc000 00000000 ce941cf8 c12ecd02 c12f43e0 c116c00b cf754158
> [ 105.336982] ce9dc004 cf754284 ce9dc004 cf7ffee8 ceff9978 ce9dc000 cf7ffee8 ce9dc000
> [ 105.337182] ce9dc000 ce941d14 c12e698d cf75412c ce941d98 cf7ffee8 cf7fff20 00000000
> [ 105.337405] Call Trace:
> [ 105.337695] [<c12ecd02>] rpcauth_wrap_req+0x75/0x7f
> [ 105.337806] [<c12f43e0>] ? xdr_encode_opaque+0x12/0x15
> [ 105.337898] [<c116c00b>] ? nfs3_xdr_enc_setacl3args+0x0/0x98
> [ 105.337988] [<c12e698d>] call_transmit+0x17e/0x1e8
> [ 105.338072] [<c12ec307>] __rpc_execute+0x6d/0x1a6
> [ 105.338155] [<c12ec474>] rpc_execute+0x34/0x37
> [ 105.338235] [<c12e738d>] rpc_run_task+0xb5/0xbd
> [ 105.338316] [<c12e7474>] rpc_call_sync+0x3d/0x58
> [ 105.338402] [<c116d0c6>] nfs3_proc_setacls+0x18e/0x24f
> [ 105.338493] [<c10b3f76>] ? __kmalloc+0x148/0x1c4
> [ 105.338579] [<c10ecd01>] ? posix_acl_alloc+0x12/0x22
> [ 105.338665] [<c116d5c8>] nfs3_proc_setacl+0xa0/0xca
> [ 105.338748] [<c116d69c>] nfs3_setxattr+0x62/0x88
> [ 105.338834] [<c1317042>] ? sub_preempt_count+0x7c/0x89
> [ 105.338926] [<c116d63a>] ? nfs3_setxattr+0x0/0x88
> [ 105.339026] [<c10cfa79>] __vfs_setxattr_noperm+0x26/0x95
> [ 105.339114] [<c10cfb43>] vfs_setxattr+0x5b/0x76
> [ 105.339211] [<c10cfbfb>] setxattr+0x9d/0xc3
> [ 105.339298] [<c10a2ea8>] ? handle_pte_fault+0x258/0x5cb
> [ 105.339428] [<c1091ff6>] ? __free_pages+0x1a/0x23
> [ 105.339517] [<c10498ea>] ? up_read+0x16/0x2c
> [ 105.339599] [<c10b8365>] ? fget+0x0/0xa3
> [ 105.339677] [<c10b8365>] ? fget+0x0/0xa3
> [ 105.339760] [<c1025d23>] ? get_parent_ip+0xb/0x31
> [ 105.339843] [<c1317042>] ? sub_preempt_count+0x7c/0x89
> [ 105.339931] [<c10cfc72>] sys_fsetxattr+0x51/0x79
> [ 105.340014] [<c1002853>] sysenter_do_call+0x12/0x32
> [ 105.340133] Code: 2e 76 18 00 58 31 d2 8b 7f 28 f6 43 04 01 74 03 8b 53 08 6a 00 8b 46 04 6a 01 8b 0b 52 89 fa e8 85 10 f8 ff 83 c4 0c 85 c0 79 04 <0f> 0b eb fe 31 c9 f6 43 04 04 74 03 8b 4b 0c 68 00 10 00 00 8d
> [ 105.350321] EIP: [<c116c06c>] nfs3_xdr_enc_setacl3args+0x61/0x98 SS:ESP 0068:ce941cb4
> [ 105.364385] ---[ end trace 01fcfe7f0f7f6e4a ]---
nfs3_xdr_enc_setacl3args() is not properly setting up the target
buffer before nfsacl_encode() attempts to encode the ACL.
Introduced by commit d9c407b1 "NFS: Introduce new-style XDR encoding
functions for NFSv3."
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2011-01-25 15:24:47 -05:00
..
2011-01-12 20:03:43 -05:00
2011-01-12 20:02:45 -05:00
2011-01-12 20:03:42 -05:00
2011-01-15 20:07:48 -05:00
2011-01-18 01:21:29 -05:00
2011-01-13 08:03:15 -08:00
2011-01-07 17:50:26 +11:00
2011-01-17 14:43:43 -08:00
2010-10-15 15:53:27 +02:00
2011-01-13 10:25:24 -08:00
2011-01-17 11:17:51 -08:00
2011-01-13 10:27:28 -08:00
2011-01-16 21:22:29 +00:00
2011-01-13 08:03:23 -08:00
2010-10-29 04:16:28 -04:00
2010-10-29 04:16:28 -04:00
2011-01-16 21:22:37 +00:00
2011-01-17 13:01:25 -06:00
2011-01-07 17:50:26 +11:00
2011-01-07 17:50:26 +11:00
2011-01-07 17:50:31 +11:00
2011-01-11 14:37:31 -08:00
2011-01-13 10:45:01 -08:00
2011-01-17 02:25:31 -05:00
2011-01-12 20:02:43 -05:00
2011-01-07 17:50:26 +11:00
2011-01-14 09:23:36 -08:00
2011-01-12 20:02:44 -05:00
2011-01-17 02:25:31 -05:00
2011-01-12 20:02:45 -05:00
2011-01-12 20:02:45 -05:00
2011-01-12 20:03:42 -05:00
2011-01-17 05:11:37 -05:00
2011-01-07 17:50:26 +11:00
2011-01-07 17:50:26 +11:00
2011-01-12 20:02:43 -05:00
2010-12-10 16:04:28 +01:00
2011-01-13 10:05:56 -08:00
2011-01-17 11:15:30 -08:00
2011-01-13 10:45:01 -08:00
2011-01-04 13:10:37 -05:00
2011-01-13 10:45:01 -08:00
2011-01-12 20:02:44 -05:00
2011-01-12 20:03:43 -05:00
2011-01-25 15:24:47 -05:00
2011-01-16 11:31:50 -08:00
2011-01-13 10:45:01 -08:00
2011-01-13 10:05:56 -08:00
2011-01-12 08:35:53 -08:00
2011-01-17 02:25:31 -05:00
2010-10-29 04:16:13 -04:00
2011-01-07 17:50:26 +11:00
2011-01-13 14:47:54 +01:00
2011-01-13 17:32:43 -08:00
2011-01-07 17:50:26 +11:00
2011-01-10 19:04:05 +01:00
2010-10-29 04:16:31 -04:00
2011-01-13 10:45:01 -08:00
2011-01-07 17:50:26 +11:00
2011-01-13 21:38:46 +00:00
2011-01-10 16:10:33 -08:00
2011-01-12 20:02:44 -05:00
2011-01-07 17:50:26 +11:00
2011-01-11 14:45:52 -08:00
2011-01-07 17:50:26 +11:00
2011-01-17 12:39:07 -08:00
2011-01-17 05:12:44 -05:00
2011-01-16 13:47:07 -05:00
2010-08-09 16:47:39 -04:00
2011-01-07 17:50:29 +11:00
2010-10-14 10:57:40 -07:00
2011-01-13 08:03:12 -08:00
2010-10-29 04:16:28 -04:00
2010-08-17 18:07:43 -07:00
2011-01-03 15:01:48 +01:00
2010-11-10 14:40:43 +01:00
2011-01-14 18:44:22 +01:00
2010-12-17 15:18:05 +01:00
2011-01-13 10:45:01 -08:00
2011-01-07 14:39:20 -08:00
2011-01-17 04:54:38 -05:00
2011-01-16 11:31:50 -08:00
2010-10-26 16:52:13 -07:00
2010-08-09 16:47:44 -04:00
2010-10-15 15:53:27 +02:00
2011-01-13 08:03:12 -08:00
2010-12-15 12:30:36 -08:00
2010-10-27 18:17:02 -07:00
2010-10-15 15:53:27 +02:00
2011-01-17 03:26:27 -05:00
2010-08-11 08:59:02 -07:00
2011-01-07 17:50:27 +11:00
2011-01-16 13:47:07 -05:00
2011-01-13 17:32:48 -08:00
2011-01-07 17:50:29 +11:00
2011-01-07 17:50:26 +11:00
2011-01-17 01:47:59 -05:00
2011-01-17 08:21:42 -05:00
2010-11-15 10:23:31 +01:00
2011-01-17 03:30:37 -05:00
2010-10-27 18:03:12 -07:00
2011-01-12 20:03:43 -05:00
2011-01-14 13:17:26 -08:00
2010-10-28 09:44:56 -07:00
2011-01-10 19:04:08 +01:00
2011-01-13 17:32:32 -08:00
2011-01-18 01:21:26 -05:00
2011-01-17 01:47:59 -05:00
2010-10-15 15:53:27 +02:00
2011-01-17 02:25:31 -05:00
2011-01-16 13:47:07 -05:00
2011-01-07 17:50:33 +11:00
2011-01-12 20:06:58 -05:00
2010-08-09 20:45:05 -07:00
2011-01-13 08:03:12 -08:00
2010-10-25 21:26:12 -04:00
2010-10-26 10:13:10 -07:00
2011-01-13 10:45:01 -08:00
2011-01-15 20:07:33 -05:00
2010-08-09 16:48:44 -04:00
2011-01-16 13:47:07 -05:00
2010-08-09 16:47:43 -04:00
2010-10-15 15:53:27 +02:00
2010-08-13 16:53:13 -07:00