[PATCH] x86: i8253/i8259A lock cleanup
[pandora-kernel.git] / fs / dquot.c
index 343c036..b973233 100644 (file)
@@ -409,13 +409,10 @@ out_dqlock:
  * for this sb+type at all. */
 static void invalidate_dquots(struct super_block *sb, int type)
 {
-       struct dquot *dquot;
-       struct list_head *head;
+       struct dquot *dquot, *tmp;
 
        spin_lock(&dq_list_lock);
-       for (head = inuse_list.next; head != &inuse_list;) {
-               dquot = list_entry(head, struct dquot, dq_inuse);
-               head = head->next;
+       list_for_each_entry_safe(dquot, tmp, &inuse_list, dq_inuse) {
                if (dquot->dq_sb != sb)
                        continue;
                if (dquot->dq_type != type)
@@ -1522,11 +1519,10 @@ out_path:
 int vfs_quota_on_mount(struct super_block *sb, char *qf_name,
                int format_id, int type)
 {
-       struct qstr name = {.name = qf_name, .len = 0, .len = strlen(qf_name)};
        struct dentry *dentry;
        int error;
 
-       dentry = lookup_hash(&name, sb->s_root);
+       dentry = lookup_one_len(qf_name, sb->s_root, strlen(qf_name));
        if (IS_ERR(dentry))
                return PTR_ERR(dentry);
 
@@ -1534,12 +1530,6 @@ int vfs_quota_on_mount(struct super_block *sb, char *qf_name,
        if (!error)
                error = vfs_quota_on_inode(dentry->d_inode, type, format_id);
 
-       /*
-        * Now invalidate and put the dentry - quota got its own reference
-        * to inode and dentry has at least wrong hash so we had better
-        * throw it away.
-        */
-       d_invalidate(dentry);
        dput(dentry);
        return error;
 }