1. 12 4月, 2006 2 次提交
    • M
      [fuse] Fix accounting the number of waiting requests · 9bc5ddda
      Miklos Szeredi 提交于
      Properly accounting the number of waiting requests was forgotten in
      "clean up request accounting" patch.
      Signed-off-by: NMiklos Szeredi <miklos@szeredi.hu>
      9bc5ddda
    • M
      [fuse] fix deadlock between fuse_put_super() and request_end() · 73ce8355
      Miklos Szeredi 提交于
      A deadlock was possible, when the last reference to the superblock was
      held due to a background request containing a file reference.
      
      Releasing the file would release the vfsmount which in turn would
      release the superblock.  Since sbput_sem is held during the fput() and
      fuse_put_super() tries to acquire this same semaphore, a deadlock
      results.
      
      The chosen soltuion is to get rid of sbput_sem, and instead use the
      spinlock to ensure the referenced inodes/file are released only once.
      Since the actual release may sleep, defer these outside the locked
      region, but using local variables instead of the structure members.
      
      This is a much more rubust solution.
      Signed-off-by: NMiklos Szeredi <miklos@szeredi.hu>
      73ce8355
  2. 11 4月, 2006 38 次提交