Skip to content
  1. Aug 11, 2009
    • Jan Kara's avatar
      ocfs2: Fix possible deadlock when extending quota file · b409d7a0
      Jan Kara authored
      
      
      In OCFS2, allocator locks rank above transaction start. Thus we
      cannot extend quota file from inside a transaction less we could
      deadlock.
      
      We solve the problem by starting transaction not already in
      ocfs2_acquire_dquot() but only in ocfs2_local_read_dquot() and
      ocfs2_global_read_dquot() and we allocate blocks to quota files before starting
      the transaction.  In case we crash, quota files will just have a few blocks
      more but that's no problem since we just use them next time we extend the
      quota file.
      
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
      b409d7a0
  2. Aug 08, 2009
  3. Aug 01, 2009
  4. Jul 31, 2009
  5. Jul 24, 2009
  6. Jul 22, 2009
    • Jan Kara's avatar
      ocfs2: Fix deadlock on umount · f7b1aa69
      Jan Kara authored
      In commit ea455f8a
      
      , we moved the dentry lock
      put process into ocfs2_wq. This causes problems during umount because ocfs2_wq
      can drop references to inodes while they are being invalidated by
      invalidate_inodes() causing all sorts of nasty things (invalidate_inodes()
      ending in an infinite loop, "Busy inodes after umount" messages etc.).
      
      We fix the problem by stopping ocfs2_wq from doing any further releasing of
      inode references on the superblock being unmounted, wait until it finishes
      the current round of releasing and finally cleaning up all the references in
      dentry_lock_list from ocfs2_put_super().
      
      The issue was tracked down by Tao Ma <tao.ma@oracle.com>.
      
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
      f7b1aa69
    • Tao Ma's avatar
      ocfs2: Add extra credits and access the modified bh in update_edge_lengths. · 3c5e1068
      Tao Ma authored
      
      
      In normal tree rotation left process, we will never touch the tree
      branch above subtree_index and ocfs2_extend_rotate_transaction doesn't
      reserve the credits for them either.
      
      But when we want to delete the rightmost extent block, we have to update
      the rightmost records for all the rightmost branch(See
      ocfs2_update_edge_lengths), so we have to allocate extra credits for them.
      What's more, we have to access them also.
      
      Signed-off-by: default avatarTao Ma <tao.ma@oracle.com>
      Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
      3c5e1068
  7. Jul 21, 2009
  8. Jul 11, 2009
  9. Jul 09, 2009