• Linus Torvalds's avatar
    Merge tag 'vfs-6.9-rc3.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · fae02687
    Linus Torvalds authored
    Pull vfs fixes from Christian Brauner:
     "This contains a few small fixes. This comes with some delay because I
      wanted to wait on people running their reproducers and the Easter
      Holidays meant that those replies came in a little later than usual:
    
       - Fix handling of preventing writes to mounted block devices.
    
         Since last kernel we allow to prevent writing to mounted block
         devices provided CONFIG_BLK_DEV_WRITE_MOUNTED isn't set and the
         block device is opened with restricted writes. When we switched to
         opening block devices as files we altered the mechanism by which we
         recognize when a block device has been opened with write
         restrictions.
    
         The detection logic assumed that only read-write mounted
         filesystems would apply write restrictions to their block devices
         from other openers. That of course is not true since it also makes
         sense to apply write restrictions for filesystems that are
         read-only.
    
         Fix the detection logic using an FMODE_* bit. We still have a few
         left since we freed up a couple a while ago. I also picked up a
         patch to free up four additional FMODE_* bits scheduled for the
         next merge window.
    
       - Fix counting the number of writers to a block device. This just
         changes the logic to be consistent.
    
       - Fix a bug in aio causing a NULL pointer derefernce after we
         implemented batched processing in aio.
    
       - Finally, add the changes we discussed that allows to yield block
         devices early even though file closing itself is deferred.
    
         This also allows us to remove two holder operations to get and
         release the holder to align lifetime of file and holder of the
         block device"
    
    * tag 'vfs-6.9-rc3.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
      aio: Fix null ptr deref in aio_complete() wakeup
      fs,block: yield devices early
      block: count BLK_OPEN_RESTRICT_WRITES openers
      block: handle BLK_OPEN_RESTRICT_WRITES correctly
    fae02687
super-io.c 36 KB