On Tue, Mar 26, 2013 at 06:46:31PM +0100, Toralf Förster wrote: > On 03/26/2013 03:46 PM, J. Bruce Fields wrote: > > Can you run with test patches? > > > > This just makes nfsd's fput calls synchronous so that we see in the > > backtrace who called them. > > Well - the patched 3.8.4 host kernel now survives the stress test of the UML system. Bah, too bad. That patch was definitely not a fix, so there may be some race here. > What I get at the host is now : > > 2013-03-26T18:32:17.487+01:00 n22 kernel: ------------[ cut here ]------------ > 2013-03-26T18:32:17.487+01:00 n22 kernel: WARNING: at mm/page_alloc.c:2376 __alloc_pages_nodemask+0x262/0x7c0() ... > 2013-03-26T18:32:17.487+01:00 n22 kernel: [<c110f149>] __kmalloc+0x1b9/0x1e0 > 2013-03-26T18:32:17.487+01:00 n22 kernel: [<f85835bf>] ? cache_check+0x22f/0x340 [sunrpc] > 2013-03-26T18:32:17.487+01:00 n22 kernel: [<f90a0b1c>] nfs4_acl_new+0x1c/0x30 [nfsd] > 2013-03-26T18:32:17.488+01:00 n22 kernel: [<f9095482>] nfsd4_decode_fattr+0x302/0x6c0 [nfsd] ... A different bug, but thanks for catching it, I suspect the following is all we need. --b. commit 814d9d4f9164c3d778dadd093a54bb55d9a0c576 Author: J. Bruce Fields <bfields@xxxxxxxxxx> Date: Tue Mar 26 14:11:13 2013 -0400 nfsd4: reject "negative" acl lengths Since we only enforce an upper bound, not a lower bound, a "negative" length can get through here. The symptom seen was a warning when we attempt to a kmalloc with an excessive size. Reported-by: Toralf Förster <toralf.foerster@xxxxxx> Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c index 0dc1158..d1dd710 100644 --- a/fs/nfsd/nfs4xdr.c +++ b/fs/nfsd/nfs4xdr.c @@ -264,7 +264,7 @@ nfsd4_decode_fattr(struct nfsd4_compoundargs *argp, u32 *bmval, iattr->ia_valid |= ATTR_SIZE; } if (bmval[0] & FATTR4_WORD0_ACL) { - int nace; + u32 nace; struct nfs4_ace *ace; READ_BUF(4); len += 4; -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html