diff options
author | Christoph Hellwig <hch@lst.de> | 2005-06-23 00:09:16 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-23 09:45:20 -0700 |
commit | 2fa389c5eb8c97d621653184d2adf5fdbd4a3167 (patch) | |
tree | a958e6ab570003e81b91df986492ca60fd247006 | |
parent | 84de856ed30c568c2bb7b9ac0679772bd2737d9b (diff) | |
download | linux-2fa389c5eb8c97d621653184d2adf5fdbd4a3167.tar.gz linux-2fa389c5eb8c97d621653184d2adf5fdbd4a3167.tar.bz2 linux-2fa389c5eb8c97d621653184d2adf5fdbd4a3167.zip |
[PATCH] quota: sanitize dentry handling in vfs_quota_on_mount
Use lookup_one_len instead of opencoding a simplified lookup using
lookup_hash with a fake hash.
Also there's no need anymore for the d_invalidate as we have a completely
valid dentry now.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | fs/dquot.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/fs/dquot.c b/fs/dquot.c index 343c03655619..37212b039a4a 100644 --- a/fs/dquot.c +++ b/fs/dquot.c @@ -1522,11 +1522,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 +1533,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; } |