diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2009-12-15 16:46:50 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 07:20:06 -0800 |
commit | 080497079c0bad05133fb8d1dee300bd9e6354ec (patch) | |
tree | bec38a12cc12558255b540d471f5a83489e72898 /fs/ufs | |
parent | 48bde86df0acb9f53c4fd0908d023ecae962762f (diff) | |
download | op-kernel-dev-080497079c0bad05133fb8d1dee300bd9e6354ec.zip op-kernel-dev-080497079c0bad05133fb8d1dee300bd9e6354ec.tar.gz |
ufs: pass qstr instead of dentry where necessary for NFS
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Evgeniy Dushistov <dushistov@mail.ru>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/ufs')
-rw-r--r-- | fs/ufs/dir.c | 10 | ||||
-rw-r--r-- | fs/ufs/namei.c | 8 | ||||
-rw-r--r-- | fs/ufs/ufs.h | 4 |
3 files changed, 11 insertions, 11 deletions
diff --git a/fs/ufs/dir.c b/fs/ufs/dir.c index 6f671f1..22af68f 100644 --- a/fs/ufs/dir.c +++ b/fs/ufs/dir.c @@ -70,13 +70,13 @@ static inline unsigned long ufs_dir_pages(struct inode *inode) return (inode->i_size+PAGE_CACHE_SIZE-1)>>PAGE_CACHE_SHIFT; } -ino_t ufs_inode_by_name(struct inode *dir, struct dentry *dentry) +ino_t ufs_inode_by_name(struct inode *dir, struct qstr *qstr) { ino_t res = 0; struct ufs_dir_entry *de; struct page *page; - de = ufs_find_entry(dir, dentry, &page); + de = ufs_find_entry(dir, qstr, &page); if (de) { res = fs32_to_cpu(dir->i_sb, de->d_ino); ufs_put_page(page); @@ -249,12 +249,12 @@ struct ufs_dir_entry *ufs_dotdot(struct inode *dir, struct page **p) * (as a parameter - res_dir). Page is returned mapped and unlocked. * Entry is guaranteed to be valid. */ -struct ufs_dir_entry *ufs_find_entry(struct inode *dir, struct dentry *dentry, +struct ufs_dir_entry *ufs_find_entry(struct inode *dir, struct qstr *qstr, struct page **res_page) { struct super_block *sb = dir->i_sb; - const char *name = dentry->d_name.name; - int namelen = dentry->d_name.len; + const char *name = qstr->name; + int namelen = qstr->len; unsigned reclen = UFS_DIR_REC_LEN(namelen); unsigned long start, n; unsigned long npages = ufs_dir_pages(dir); diff --git a/fs/ufs/namei.c b/fs/ufs/namei.c index 23119fe..4c26d9e 100644 --- a/fs/ufs/namei.c +++ b/fs/ufs/namei.c @@ -56,7 +56,7 @@ static struct dentry *ufs_lookup(struct inode * dir, struct dentry *dentry, stru return ERR_PTR(-ENAMETOOLONG); lock_kernel(); - ino = ufs_inode_by_name(dir, dentry); + ino = ufs_inode_by_name(dir, &dentry->d_name); if (ino) { inode = ufs_iget(dir->i_sb, ino); if (IS_ERR(inode)) { @@ -237,7 +237,7 @@ static int ufs_unlink(struct inode *dir, struct dentry *dentry) struct page *page; int err = -ENOENT; - de = ufs_find_entry(dir, dentry, &page); + de = ufs_find_entry(dir, &dentry->d_name, &page); if (!de) goto out; @@ -281,7 +281,7 @@ static int ufs_rename(struct inode *old_dir, struct dentry *old_dentry, struct ufs_dir_entry *old_de; int err = -ENOENT; - old_de = ufs_find_entry(old_dir, old_dentry, &old_page); + old_de = ufs_find_entry(old_dir, &old_dentry->d_name, &old_page); if (!old_de) goto out; @@ -301,7 +301,7 @@ static int ufs_rename(struct inode *old_dir, struct dentry *old_dentry, goto out_dir; err = -ENOENT; - new_de = ufs_find_entry(new_dir, new_dentry, &new_page); + new_de = ufs_find_entry(new_dir, &new_dentry->d_name, &new_page); if (!new_de) goto out_dir; inode_inc_link_count(old_inode); diff --git a/fs/ufs/ufs.h b/fs/ufs/ufs.h index 644e77e..0b4c39b 100644 --- a/fs/ufs/ufs.h +++ b/fs/ufs/ufs.h @@ -86,9 +86,9 @@ extern void ufs_put_cylinder (struct super_block *, unsigned); /* dir.c */ extern const struct inode_operations ufs_dir_inode_operations; extern int ufs_add_link (struct dentry *, struct inode *); -extern ino_t ufs_inode_by_name(struct inode *, struct dentry *); +extern ino_t ufs_inode_by_name(struct inode *, struct qstr *); extern int ufs_make_empty(struct inode *, struct inode *); -extern struct ufs_dir_entry *ufs_find_entry(struct inode *, struct dentry *, struct page **); +extern struct ufs_dir_entry *ufs_find_entry(struct inode *, struct qstr *, struct page **); extern int ufs_delete_entry(struct inode *, struct ufs_dir_entry *, struct page *); extern int ufs_empty_dir (struct inode *); extern struct ufs_dir_entry *ufs_dotdot(struct inode *, struct page **); |