Forums before death by AOL, social media and spammers... "We can't have nice things"
|    linux.debian.kernel    |    Debian kernel discussions    |    2,884 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 2,874 of 2,884    |
|    Tj to All    |
|    Bug#1128861: Regression: Missing check i    |
|    24 Feb 26 03:20:01    |
   
   XPost: linux.debian.bugs.dist   
   From: tj.iam.tj@proton.me   
      
   Upstream commit 4cc9b9f2bf4dfe13fe573 "nfsd: refine and rename    
   NFSD_MAY_LOCK" and   
    stable v6.12.54 commit 18744bc56b0ec (re)moves checks from    
   fs/nfsd/vfs.c::nfsd_permission().   
      
    This causes NFS clients to see   
      
   $ flock -e -w 4 /srv/NAS/test/debian-13.3.0-amd64-netinst.iso sleep 1   
   flock: /srv/NAS/test/debian-13.3.0-amd64-netinst.iso: No locks available   
      
   Keeping the check in nfsd_permission() whilst also copying it to    
   fs/nfsd/nfsfh.c::__fh_verify() resolves the issue.   
      
   This was discovered on the Debian openQA infrastructure server when    
   upgrading kernel from v6.12.48 to later v6.12.y where worker hosts (with    
   any earlier or later kernel version) pass NFSv3 mounted ISO images to    
   qemu-system-x86_64 and it reports:   
      
   !!! : qemu-system-x86_64: -device    
   scsi-cd,id=cd0-device,drive=cd0-overlay0,serial=cd0: Failed to get    
   "consistent read" lock: No locks available   
   QEMU: Is another process using the image    
   [/var/lib/openqa/pool/2/20260223-1-debian-testing-amd64-netinst.iso]?   
      
   A simple reproducer with the server using:   
      
   # cat /etc/exports.d/test.exports   
   /srv/NAS/test    
   fdff::/64(fsid=0,rw,no_root_squash,sync,no_subtree_check,auth_nlm)   
      
   and clients using:   
      
   # mount -t nfs [fdff::2]:/srv/NAS/test /srv/NAS/test -o    
   proto=tcp6,ro,fsc,soft   
      
   will trigger the error as shown above:   
      
   $ flock -e -w 4 /srv/NAS/test/debian-13.3.0-amd64-netinst.iso sleep 1   
   flock: /srv/NAS/test/debian-13.3.0-amd64-netinst.iso: No locks available   
      
   A simple test program calling fcntl() with the same arguments QEMU uses    
   also fails in the same way.   
      
   $ ./nfs3_range_lock_test    
   /srv/NAS/test/debian-13.3.0-amd64-netinst.{iso,overlay}   
   Opened base file: /srv/NAS/test/debian-13.3.0-amd64-netinst.iso   
   Opened overlay file: /srv/NAS/test/debian-13.3.0-amd64-netinst.overlay   
   Attempting lock at 4 on /srv/NAS/test/debian-13.3.0-amd64-netinst.iso   
   fcntl(fd, F_GETLK, &fl) failed on base: No locks available   
   Attempting lock at 8 on /srv/NAS/test/debian-13.3.0-amd64-netinst.overlay   
   fcntl(fd, F_GETLK, &fl) failed on overlay: No locks available   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca