1. 26 3月, 2009 6 次提交
  2. 17 1月, 2009 1 次提交
    • J
      quota: Improve locking · cc33412f
      Jan Kara 提交于
      We implement dqget() and dqput() that need neither dqonoff_mutex nor dqptr_sem.
      Then move dqget() and dqput() calls so that they are not called from under
      dqptr_sem. This is important because filesystem callbacks aren't called from
      under dqptr_sem which used to cause *lots* of problems with lock ranking
      (and with OCFS2 they became close to unsolvable).
      
      The patch also removes two functions which were introduced solely because OCFS2
      needed them to cope with the old locking scheme. As time showed, they were not
      enough for OCFS2 anyway and it would be unnecessary work to adapt them to the
      new locking scheme in which they aren't needed.  As a result OCFS2 needs the
      following patch to compile properly with quotas.  Sorry to any bisecters which
      hit this in advance.
      Signed-off-by: NJan Kara <jack@suse.cz>
      cc33412f
  3. 09 1月, 2009 1 次提交
  4. 06 1月, 2009 11 次提交
  5. 14 11月, 2008 1 次提交
  6. 23 10月, 2008 1 次提交
  7. 17 10月, 2008 1 次提交
  8. 14 10月, 2008 2 次提交
  9. 01 8月, 2008 1 次提交
    • A
      [PATCH] fix races and leaks in vfs_quota_on() users · 77e69dac
      Al Viro 提交于
      * new helper: vfs_quota_on_path(); equivalent of vfs_quota_on() sans the
        pathname resolution.
      * callers of vfs_quota_on() that do their own pathname resolution and
        checks based on it are switched to vfs_quota_on_path(); that way we
        avoid the races.
      * reiserfs leaked dentry/vfsmount references on several failure exits.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      77e69dac
  10. 26 7月, 2008 3 次提交
  11. 13 5月, 2008 1 次提交
  12. 28 4月, 2008 3 次提交
  13. 20 3月, 2008 1 次提交
  14. 15 2月, 2008 2 次提交
  15. 07 2月, 2008 1 次提交
    • J
      quota: improve inode list scanning in add_dquot_ref() · 941d2380
      Jan Kara 提交于
      We restarted scan of sb->s_inodes list whenever we had to drop inode_lock
      in add_dquot_ref().  This leads to overall quadratic running time and thus
      add_dquot_ref() can take several minutes when called on a life filesystem.
      We fix the problem by using the fact that inode cannot be removed from
      s_inodes list while we hold a reference to it and thus we can safely
      restart the scan if we don't drop the reference.  Here we use the fact that
      inodes freshly added to s_inodes list are already guaranteed to have quotas
      properly initialized and the ordering of inodes on s_inodes list does not
      change so we cannot skip any inode.
      
      Thanks goes to Nick <gentuu@gmail.com> for analyzing the problem and
      testing the fix.
      
      [akpm@linux-foundation.org: iput(NULL) is legal]
      Signed-off-by: NJan Kara <jack@suse.cz>
      Cc: Nick <gentuu@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      941d2380
  16. 24 12月, 2007 2 次提交
  17. 18 12月, 2007 1 次提交
  18. 17 10月, 2007 1 次提交