# git rev-parse -q --verify 66d9282523b3228183b14d9f812872dd2620704d^{commit} 66d9282523b3228183b14d9f812872dd2620704d already have revision, skipping fetch # git checkout -q -f -B kisskb 66d9282523b3228183b14d9f812872dd2620704d # git clean -qxdf # < git log -1 # commit 66d9282523b3228183b14d9f812872dd2620704d # Author: Mel Gorman # Date: Mon Jun 28 16:02:19 2021 +0100 # # mm/page_alloc: Correct return value of populated elements if bulk array is populated # # Dave Jones reported the following # # This made it into 5.13 final, and completely breaks NFSD for me # (Serving tcp v3 mounts). Existing mounts on clients hang, as do # new mounts from new clients. Rebooting the server back to rc7 # everything recovers. # # The commit b3b64ebd3822 ("mm/page_alloc: do bulk array bounds check after # checking populated elements") returns the wrong value if the array is # already populated which is interpreted as an allocation failure. Dave # reported this fixes his problem and it also passed a test running dbench # over NFS. # # Fixes: b3b64ebd3822 ("mm/page_alloc: do bulk array bounds check after checking populated elements") # Reported-and-tested-by: Dave Jones # Signed-off-by: Mel Gorman # Cc: [5.13+] # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 66d9282523b3228183b14d9f812872dd2620704d # < make -s -j 32 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- allnoconfig # < make -s -j 32 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- help # make -s -j 32 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- olddefconfig # make -s -j 32 ARCH=x86_64 O=/kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/x86_64-linux/bin/x86_64-linux- Completed OK # rm -rf /kisskb/build/linus_x86_64-allnoconfig_x86_64-gcc8 # Build took: 0:00:38.129306