diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2012-06-10 17:13:09 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-07-14 08:34:32 -0400 |
| commit | 00cd8dd3bf95f2cc8435b4cac01d9995635c6d0b (patch) | |
| tree | d44be476ced0317ae79f28853734ebe2210ad38e | |
| parent | 201f956e43d4542723514e024d948011dd766d43 (diff) | |
stop passing nameidata to ->lookup()
Just the flags; only NFS cares even about that, but there are
legitimate uses for such argument. And getting rid of that
completely would require splitting ->lookup() into a couple
of methods (at least), so let's leave that alone for now...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
79 files changed, 115 insertions, 114 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 52a057367f6f..33f2c8f1db81 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
| @@ -38,8 +38,7 @@ d_manage: no no yes (ref-walk) maybe | |||
| 38 | --------------------------- inode_operations --------------------------- | 38 | --------------------------- inode_operations --------------------------- |
| 39 | prototypes: | 39 | prototypes: |
| 40 | int (*create) (struct inode *,struct dentry *,umode_t, struct nameidata *); | 40 | int (*create) (struct inode *,struct dentry *,umode_t, struct nameidata *); |
| 41 | struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameid | 41 | struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int); |
| 42 | ata *); | ||
| 43 | int (*link) (struct dentry *,struct inode *,struct dentry *); | 42 | int (*link) (struct dentry *,struct inode *,struct dentry *); |
| 44 | int (*unlink) (struct inode *,struct dentry *); | 43 | int (*unlink) (struct inode *,struct dentry *); |
| 45 | int (*symlink) (struct inode *,struct dentry *,const char *); | 44 | int (*symlink) (struct inode *,struct dentry *,const char *); |
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting index 56750b714d1e..690f573928b9 100644 --- a/Documentation/filesystems/porting +++ b/Documentation/filesystems/porting | |||
| @@ -434,5 +434,5 @@ d_make_root() drops the reference to inode if dentry allocation fails. | |||
| 434 | 434 | ||
| 435 | -- | 435 | -- |
| 436 | [mandatory] | 436 | [mandatory] |
| 437 | The witch is dead! Well, 1/3 of it, anyway. ->d_revalidate() does *not* | 437 | The witch is dead! Well, 2/3 of it, anyway. ->d_revalidate() and |
| 438 | take struct nameidata anymore; just the flags. | 438 | ->lookup() do *not* take struct nameidata anymore; just the flags. |
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index b9a406b2ed0f..ee786354946c 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
| @@ -342,7 +342,7 @@ filesystem. As of kernel 2.6.22, the following members are defined: | |||
| 342 | 342 | ||
| 343 | struct inode_operations { | 343 | struct inode_operations { |
| 344 | int (*create) (struct inode *,struct dentry *, umode_t, struct nameidata *); | 344 | int (*create) (struct inode *,struct dentry *, umode_t, struct nameidata *); |
| 345 | struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *); | 345 | struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int); |
| 346 | int (*link) (struct dentry *,struct inode *,struct dentry *); | 346 | int (*link) (struct dentry *,struct inode *,struct dentry *); |
| 347 | int (*unlink) (struct inode *,struct dentry *); | 347 | int (*unlink) (struct inode *,struct dentry *); |
| 348 | int (*symlink) (struct inode *,struct dentry *,const char *); | 348 | int (*symlink) (struct inode *,struct dentry *,const char *); |
diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h index e78956cbd702..34c59f14a1c9 100644 --- a/fs/9p/v9fs.h +++ b/fs/9p/v9fs.h | |||
| @@ -144,7 +144,7 @@ extern void v9fs_session_close(struct v9fs_session_info *v9ses); | |||
| 144 | extern void v9fs_session_cancel(struct v9fs_session_info *v9ses); | 144 | extern void v9fs_session_cancel(struct v9fs_session_info *v9ses); |
| 145 | extern void v9fs_session_begin_cancel(struct v9fs_session_info *v9ses); | 145 | extern void v9fs_session_begin_cancel(struct v9fs_session_info *v9ses); |
| 146 | extern struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry, | 146 | extern struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry, |
| 147 | struct nameidata *nameidata); | 147 | unsigned int flags); |
| 148 | extern int v9fs_vfs_unlink(struct inode *i, struct dentry *d); | 148 | extern int v9fs_vfs_unlink(struct inode *i, struct dentry *d); |
| 149 | extern int v9fs_vfs_rmdir(struct inode *i, struct dentry *d); | 149 | extern int v9fs_vfs_rmdir(struct inode *i, struct dentry *d); |
| 150 | extern int v9fs_vfs_rename(struct inode *old_dir, struct dentry *old_dentry, | 150 | extern int v9fs_vfs_rename(struct inode *old_dir, struct dentry *old_dentry, |
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index eae476fb401c..bb0d7627f95b 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c | |||
| @@ -785,7 +785,7 @@ static int v9fs_vfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode | |||
| 785 | */ | 785 | */ |
| 786 | 786 | ||
| 787 | struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry, | 787 | struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry, |
| 788 | struct nameidata *nameidata) | 788 | unsigned int flags) |
| 789 | { | 789 | { |
| 790 | struct dentry *res; | 790 | struct dentry *res; |
| 791 | struct super_block *sb; | 791 | struct super_block *sb; |
| @@ -795,8 +795,8 @@ struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry, | |||
| 795 | char *name; | 795 | char *name; |
| 796 | int result = 0; | 796 | int result = 0; |
| 797 | 797 | ||
| 798 | p9_debug(P9_DEBUG_VFS, "dir: %p dentry: (%s) %p nameidata: %p\n", | 798 | p9_debug(P9_DEBUG_VFS, "dir: %p dentry: (%s) %p flags: %x\n", |
| 799 | dir, dentry->d_name.name, dentry, nameidata); | 799 | dir, dentry->d_name.name, dentry, flags); |
| 800 | 800 | ||
| 801 | if (dentry->d_name.len > NAME_MAX) | 801 | if (dentry->d_name.len > NAME_MAX) |
| 802 | return ERR_PTR(-ENAMETOOLONG); | 802 | return ERR_PTR(-ENAMETOOLONG); |
| @@ -869,7 +869,7 @@ v9fs_vfs_atomic_open(struct inode *dir, struct dentry *dentry, | |||
| 869 | struct dentry *res = NULL; | 869 | struct dentry *res = NULL; |
| 870 | 870 | ||
| 871 | if (d_unhashed(dentry)) { | 871 | if (d_unhashed(dentry)) { |
| 872 | res = v9fs_vfs_lookup(dir, dentry, NULL); | 872 | res = v9fs_vfs_lookup(dir, dentry, 0); |
| 873 | if (IS_ERR(res)) | 873 | if (IS_ERR(res)) |
| 874 | return PTR_ERR(res); | 874 | return PTR_ERR(res); |
| 875 | 875 | ||
diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c index 1ee10c89df97..b97619fed196 100644 --- a/fs/9p/vfs_inode_dotl.c +++ b/fs/9p/vfs_inode_dotl.c | |||
| @@ -259,7 +259,7 @@ v9fs_vfs_atomic_open_dotl(struct inode *dir, struct dentry *dentry, | |||
| 259 | struct dentry *res = NULL; | 259 | struct dentry *res = NULL; |
| 260 | 260 | ||
| 261 | if (d_unhashed(dentry)) { | 261 | if (d_unhashed(dentry)) { |
| 262 | res = v9fs_vfs_lookup(dir, dentry, NULL); | 262 | res = v9fs_vfs_lookup(dir, dentry, 0); |
| 263 | if (IS_ERR(res)) | 263 | if (IS_ERR(res)) |
| 264 | return PTR_ERR(res); | 264 | return PTR_ERR(res); |
| 265 | 265 | ||
diff --git a/fs/adfs/dir.c b/fs/adfs/dir.c index 3d83075aaa2e..b3be2e7c5643 100644 --- a/fs/adfs/dir.c +++ b/fs/adfs/dir.c | |||
| @@ -266,7 +266,7 @@ const struct dentry_operations adfs_dentry_operations = { | |||
| 266 | }; | 266 | }; |
| 267 | 267 | ||
| 268 | static struct dentry * | 268 | static struct dentry * |
| 269 | adfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 269 | adfs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 270 | { | 270 | { |
| 271 | struct inode *inode = NULL; | 271 | struct inode *inode = NULL; |
| 272 | struct object_info obj; | 272 | struct object_info obj; |
diff --git a/fs/affs/affs.h b/fs/affs/affs.h index 3a130e27eb15..49e4e3457bfd 100644 --- a/fs/affs/affs.h +++ b/fs/affs/affs.h | |||
| @@ -153,7 +153,7 @@ extern void affs_free_bitmap(struct super_block *sb); | |||
| 153 | /* namei.c */ | 153 | /* namei.c */ |
| 154 | 154 | ||
| 155 | extern int affs_hash_name(struct super_block *sb, const u8 *name, unsigned int len); | 155 | extern int affs_hash_name(struct super_block *sb, const u8 *name, unsigned int len); |
| 156 | extern struct dentry *affs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *); | 156 | extern struct dentry *affs_lookup(struct inode *dir, struct dentry *dentry, unsigned int); |
| 157 | extern int affs_unlink(struct inode *dir, struct dentry *dentry); | 157 | extern int affs_unlink(struct inode *dir, struct dentry *dentry); |
| 158 | extern int affs_create(struct inode *dir, struct dentry *dentry, umode_t mode, struct nameidata *); | 158 | extern int affs_create(struct inode *dir, struct dentry *dentry, umode_t mode, struct nameidata *); |
| 159 | extern int affs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode); | 159 | extern int affs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode); |
diff --git a/fs/affs/namei.c b/fs/affs/namei.c index 47806940aac0..7f9721be709f 100644 --- a/fs/affs/namei.c +++ b/fs/affs/namei.c | |||
| @@ -211,7 +211,7 @@ affs_find_entry(struct inode *dir, struct dentry *dentry) | |||
| 211 | } | 211 | } |
| 212 | 212 | ||
| 213 | struct dentry * | 213 | struct dentry * |
| 214 | affs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 214 | affs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 215 | { | 215 | { |
| 216 | struct super_block *sb = dir->i_sb; | 216 | struct super_block *sb = dir->i_sb; |
| 217 | struct buffer_head *bh; | 217 | struct buffer_head *bh; |
diff --git a/fs/afs/dir.c b/fs/afs/dir.c index 65c54ab04733..ffb33e36ea72 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c | |||
| @@ -20,7 +20,7 @@ | |||
| 20 | #include "internal.h" | 20 | #include "internal.h" |
| 21 | 21 | ||
| 22 | static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry, | 22 | static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry, |
| 23 | struct nameidata *nd); | 23 | unsigned int flags); |
| 24 | static int afs_dir_open(struct inode *inode, struct file *file); | 24 | static int afs_dir_open(struct inode *inode, struct file *file); |
| 25 | static int afs_readdir(struct file *file, void *dirent, filldir_t filldir); | 25 | static int afs_readdir(struct file *file, void *dirent, filldir_t filldir); |
| 26 | static int afs_d_revalidate(struct dentry *dentry, unsigned int flags); | 26 | static int afs_d_revalidate(struct dentry *dentry, unsigned int flags); |
| @@ -516,7 +516,7 @@ out: | |||
| 516 | * look up an entry in a directory | 516 | * look up an entry in a directory |
| 517 | */ | 517 | */ |
| 518 | static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry, | 518 | static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry, |
| 519 | struct nameidata *nd) | 519 | unsigned int flags) |
| 520 | { | 520 | { |
| 521 | struct afs_vnode *vnode; | 521 | struct afs_vnode *vnode; |
| 522 | struct afs_fid fid; | 522 | struct afs_fid fid; |
diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c index 298cf8919ec7..9682c33d5daf 100644 --- a/fs/afs/mntpt.c +++ b/fs/afs/mntpt.c | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | 22 | ||
| 23 | static struct dentry *afs_mntpt_lookup(struct inode *dir, | 23 | static struct dentry *afs_mntpt_lookup(struct inode *dir, |
| 24 | struct dentry *dentry, | 24 | struct dentry *dentry, |
| 25 | struct nameidata *nd); | 25 | unsigned int flags); |
| 26 | static int afs_mntpt_open(struct inode *inode, struct file *file); | 26 | static int afs_mntpt_open(struct inode *inode, struct file *file); |
| 27 | static void afs_mntpt_expiry_timed_out(struct work_struct *work); | 27 | static void afs_mntpt_expiry_timed_out(struct work_struct *work); |
| 28 | 28 | ||
| @@ -104,7 +104,7 @@ out: | |||
| 104 | */ | 104 | */ |
| 105 | static struct dentry *afs_mntpt_lookup(struct inode *dir, | 105 | static struct dentry *afs_mntpt_lookup(struct inode *dir, |
| 106 | struct dentry *dentry, | 106 | struct dentry *dentry, |
| 107 | struct nameidata *nd) | 107 | unsigned int flags) |
| 108 | { | 108 | { |
| 109 | _enter("%p,%p{%p{%s},%s}", | 109 | _enter("%p,%p{%p{%s},%s}", |
| 110 | dir, | 110 | dir, |
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c index 75e5f1c8e028..e7396cfdb109 100644 --- a/fs/autofs4/root.c +++ b/fs/autofs4/root.c | |||
| @@ -32,7 +32,7 @@ static long autofs4_root_ioctl(struct file *,unsigned int,unsigned long); | |||
| 32 | static long autofs4_root_compat_ioctl(struct file *,unsigned int,unsigned long); | 32 | static long autofs4_root_compat_ioctl(struct file *,unsigned int,unsigned long); |
| 33 | #endif | 33 | #endif |
| 34 | static int autofs4_dir_open(struct inode *inode, struct file *file); | 34 | static int autofs4_dir_open(struct inode *inode, struct file *file); |
| 35 | static struct dentry *autofs4_lookup(struct inode *,struct dentry *, struct nameidata *); | 35 | static struct dentry *autofs4_lookup(struct inode *,struct dentry *, unsigned int); |
| 36 | static struct vfsmount *autofs4_d_automount(struct path *); | 36 | static struct vfsmount *autofs4_d_automount(struct path *); |
| 37 | static int autofs4_d_manage(struct dentry *, bool); | 37 | static int autofs4_d_manage(struct dentry *, bool); |
| 38 | static void autofs4_dentry_release(struct dentry *); | 38 | static void autofs4_dentry_release(struct dentry *); |
| @@ -458,7 +458,7 @@ int autofs4_d_manage(struct dentry *dentry, bool rcu_walk) | |||
| 458 | } | 458 | } |
| 459 | 459 | ||
| 460 | /* Lookups in the root directory */ | 460 | /* Lookups in the root directory */ |
| 461 | static struct dentry *autofs4_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 461 | static struct dentry *autofs4_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 462 | { | 462 | { |
| 463 | struct autofs_sb_info *sbi; | 463 | struct autofs_sb_info *sbi; |
| 464 | struct autofs_info *ino; | 464 | struct autofs_info *ino; |
diff --git a/fs/bad_inode.c b/fs/bad_inode.c index 1b35d6bd06b0..d27e73c69ba4 100644 --- a/fs/bad_inode.c +++ b/fs/bad_inode.c | |||
| @@ -179,7 +179,7 @@ static int bad_inode_create (struct inode *dir, struct dentry *dentry, | |||
| 179 | } | 179 | } |
| 180 | 180 | ||
| 181 | static struct dentry *bad_inode_lookup(struct inode *dir, | 181 | static struct dentry *bad_inode_lookup(struct inode *dir, |
| 182 | struct dentry *dentry, struct nameidata *nd) | 182 | struct dentry *dentry, unsigned int flags) |
| 183 | { | 183 | { |
| 184 | return ERR_PTR(-EIO); | 184 | return ERR_PTR(-EIO); |
| 185 | } | 185 | } |
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c index e18da23d42b5..cf7f3c67c8b7 100644 --- a/fs/befs/linuxvfs.c +++ b/fs/befs/linuxvfs.c | |||
| @@ -34,7 +34,7 @@ static int befs_readdir(struct file *, void *, filldir_t); | |||
| 34 | static int befs_get_block(struct inode *, sector_t, struct buffer_head *, int); | 34 | static int befs_get_block(struct inode *, sector_t, struct buffer_head *, int); |
| 35 | static int befs_readpage(struct file *file, struct page *page); | 35 | static int befs_readpage(struct file *file, struct page *page); |
| 36 | static sector_t befs_bmap(struct address_space *mapping, sector_t block); | 36 | static sector_t befs_bmap(struct address_space *mapping, sector_t block); |
| 37 | static struct dentry *befs_lookup(struct inode *, struct dentry *, struct nameidata *); | 37 | static struct dentry *befs_lookup(struct inode *, struct dentry *, unsigned int); |
| 38 | static struct inode *befs_iget(struct super_block *, unsigned long); | 38 | static struct inode *befs_iget(struct super_block *, unsigned long); |
| 39 | static struct inode *befs_alloc_inode(struct super_block *sb); | 39 | static struct inode *befs_alloc_inode(struct super_block *sb); |
| 40 | static void befs_destroy_inode(struct inode *inode); | 40 | static void befs_destroy_inode(struct inode *inode); |
| @@ -159,7 +159,7 @@ befs_get_block(struct inode *inode, sector_t block, | |||
| 159 | } | 159 | } |
| 160 | 160 | ||
| 161 | static struct dentry * | 161 | static struct dentry * |
| 162 | befs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 162 | befs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 163 | { | 163 | { |
| 164 | struct inode *inode = NULL; | 164 | struct inode *inode = NULL; |
| 165 | struct super_block *sb = dir->i_sb; | 165 | struct super_block *sb = dir->i_sb; |
diff --git a/fs/bfs/dir.c b/fs/bfs/dir.c index d12c7966db27..3f1cd3b71681 100644 --- a/fs/bfs/dir.c +++ b/fs/bfs/dir.c | |||
| @@ -133,7 +133,7 @@ static int bfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, | |||
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | static struct dentry *bfs_lookup(struct inode *dir, struct dentry *dentry, | 135 | static struct dentry *bfs_lookup(struct inode *dir, struct dentry *dentry, |
| 136 | struct nameidata *nd) | 136 | unsigned int flags) |
| 137 | { | 137 | { |
| 138 | struct inode *inode = NULL; | 138 | struct inode *inode = NULL; |
| 139 | struct buffer_head *bh; | 139 | struct buffer_head *bh; |
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index a101572f1cea..e5f1f81b2d65 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
| @@ -4247,7 +4247,7 @@ static void btrfs_dentry_release(struct dentry *dentry) | |||
| 4247 | } | 4247 | } |
| 4248 | 4248 | ||
| 4249 | static struct dentry *btrfs_lookup(struct inode *dir, struct dentry *dentry, | 4249 | static struct dentry *btrfs_lookup(struct inode *dir, struct dentry *dentry, |
| 4250 | struct nameidata *nd) | 4250 | unsigned int flags) |
| 4251 | { | 4251 | { |
| 4252 | struct dentry *ret; | 4252 | struct dentry *ret; |
| 4253 | 4253 | ||
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c index 8898eef8bca9..74b2f3c54fe7 100644 --- a/fs/ceph/dir.c +++ b/fs/ceph/dir.c | |||
| @@ -576,7 +576,7 @@ static int is_root_ceph_dentry(struct inode *inode, struct dentry *dentry) | |||
| 576 | * the MDS so that it gets our 'caps wanted' value in a single op. | 576 | * the MDS so that it gets our 'caps wanted' value in a single op. |
| 577 | */ | 577 | */ |
| 578 | static struct dentry *ceph_lookup(struct inode *dir, struct dentry *dentry, | 578 | static struct dentry *ceph_lookup(struct inode *dir, struct dentry *dentry, |
| 579 | struct nameidata *nd) | 579 | unsigned int flags) |
| 580 | { | 580 | { |
| 581 | struct ceph_fs_client *fsc = ceph_sb_to_client(dir->i_sb); | 581 | struct ceph_fs_client *fsc = ceph_sb_to_client(dir->i_sb); |
| 582 | struct ceph_mds_client *mdsc = fsc->mdsc; | 582 | struct ceph_mds_client *mdsc = fsc->mdsc; |
| @@ -653,7 +653,7 @@ int ceph_atomic_open(struct inode *dir, struct dentry *dentry, | |||
| 653 | } | 653 | } |
| 654 | 654 | ||
| 655 | if (d_unhashed(dentry)) { | 655 | if (d_unhashed(dentry)) { |
| 656 | res = ceph_lookup(dir, dentry, NULL); | 656 | res = ceph_lookup(dir, dentry, 0); |
| 657 | if (IS_ERR(res)) | 657 | if (IS_ERR(res)) |
| 658 | return PTR_ERR(res); | 658 | return PTR_ERR(res); |
| 659 | 659 | ||
| @@ -678,7 +678,7 @@ int ceph_atomic_open(struct inode *dir, struct dentry *dentry, | |||
| 678 | */ | 678 | */ |
| 679 | int ceph_handle_notrace_create(struct inode *dir, struct dentry *dentry) | 679 | int ceph_handle_notrace_create(struct inode *dir, struct dentry *dentry) |
| 680 | { | 680 | { |
| 681 | struct dentry *result = ceph_lookup(dir, dentry, NULL); | 681 | struct dentry *result = ceph_lookup(dir, dentry, 0); |
| 682 | 682 | ||
| 683 | if (result && !IS_ERR(result)) { | 683 | if (result && !IS_ERR(result)) { |
| 684 | /* | 684 | /* |
diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h index 48bb474ce294..1abd31fd5bf0 100644 --- a/fs/cifs/cifsfs.h +++ b/fs/cifs/cifsfs.h | |||
| @@ -50,7 +50,7 @@ extern int cifs_atomic_open(struct inode *, struct dentry *, | |||
| 50 | struct file *, unsigned, umode_t, | 50 | struct file *, unsigned, umode_t, |
| 51 | int *); | 51 | int *); |
| 52 | extern struct dentry *cifs_lookup(struct inode *, struct dentry *, | 52 | extern struct dentry *cifs_lookup(struct inode *, struct dentry *, |
| 53 | struct nameidata *); | 53 | unsigned int); |
| 54 | extern int cifs_unlink(struct inode *dir, struct dentry *dentry); | 54 | extern int cifs_unlink(struct inode *dir, struct dentry *dentry); |
| 55 | extern int cifs_hardlink(struct dentry *, struct inode *, struct dentry *); | 55 | extern int cifs_hardlink(struct dentry *, struct inode *, struct dentry *); |
| 56 | extern int cifs_mknod(struct inode *, struct dentry *, umode_t, dev_t); | 56 | extern int cifs_mknod(struct inode *, struct dentry *, umode_t, dev_t); |
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c index b97ff48b7df6..2d732b9276ee 100644 --- a/fs/cifs/dir.c +++ b/fs/cifs/dir.c | |||
| @@ -401,7 +401,7 @@ cifs_atomic_open(struct inode *inode, struct dentry *direntry, | |||
| 401 | * in network traffic in the other paths. | 401 | * in network traffic in the other paths. |
| 402 | */ | 402 | */ |
| 403 | if (!(oflags & O_CREAT)) { | 403 | if (!(oflags & O_CREAT)) { |
| 404 | struct dentry *res = cifs_lookup(inode, direntry, NULL); | 404 | struct dentry *res = cifs_lookup(inode, direntry, 0); |
| 405 | if (IS_ERR(res)) | 405 | if (IS_ERR(res)) |
| 406 | return PTR_ERR(res); | 406 | return PTR_ERR(res); |
| 407 | 407 | ||
| @@ -621,7 +621,7 @@ mknod_out: | |||
| 621 | 621 | ||
| 622 | struct dentry * | 622 | struct dentry * |
| 623 | cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry, | 623 | cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry, |
| 624 | struct nameidata *nd) | 624 | unsigned int flags) |
| 625 | { | 625 | { |
| 626 | int xid; | 626 | int xid; |
| 627 | int rc = 0; /* to get around spurious gcc warning, set to zero here */ | 627 | int rc = 0; /* to get around spurious gcc warning, set to zero here */ |
diff --git a/fs/coda/dir.c b/fs/coda/dir.c index 7f8f1a7c6d87..da35e965861d 100644 --- a/fs/coda/dir.c +++ b/fs/coda/dir.c | |||
| @@ -31,7 +31,7 @@ | |||
| 31 | 31 | ||
| 32 | /* dir inode-ops */ | 32 | /* dir inode-ops */ |
| 33 | static int coda_create(struct inode *dir, struct dentry *new, umode_t mode, struct nameidata *nd); | 33 | static int coda_create(struct inode *dir, struct dentry *new, umode_t mode, struct nameidata *nd); |
| 34 | static struct dentry *coda_lookup(struct inode *dir, struct dentry *target, struct nameidata *nd); | 34 | static struct dentry *coda_lookup(struct inode *dir, struct dentry *target, unsigned int flags); |
| 35 | static int coda_link(struct dentry *old_dentry, struct inode *dir_inode, | 35 | static int coda_link(struct dentry *old_dentry, struct inode *dir_inode, |
| 36 | struct dentry *entry); | 36 | struct dentry *entry); |
| 37 | static int coda_unlink(struct inode *dir_inode, struct dentry *entry); | 37 | static int coda_unlink(struct inode *dir_inode, struct dentry *entry); |
| @@ -94,7 +94,7 @@ const struct file_operations coda_dir_operations = { | |||
| 94 | 94 | ||
| 95 | /* inode operations for directories */ | 95 | /* inode operations for directories */ |
| 96 | /* access routines: lookup, readlink, permission */ | 96 | /* access routines: lookup, readlink, permission */ |
| 97 | static struct dentry *coda_lookup(struct inode *dir, struct dentry *entry, struct nameidata *nd) | 97 | static struct dentry *coda_lookup(struct inode *dir, struct dentry *entry, unsigned int flags) |
| 98 | { | 98 | { |
| 99 | struct super_block *sb = dir->i_sb; | 99 | struct super_block *sb = dir->i_sb; |
| 100 | const char *name = entry->d_name.name; | 100 | const char *name = entry->d_name.name; |
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c index 7e6c52d8a207..7414ae24a79b 100644 --- a/fs/configfs/dir.c +++ b/fs/configfs/dir.c | |||
| @@ -442,7 +442,7 @@ static int configfs_attach_attr(struct configfs_dirent * sd, struct dentry * den | |||
| 442 | 442 | ||
| 443 | static struct dentry * configfs_lookup(struct inode *dir, | 443 | static struct dentry * configfs_lookup(struct inode *dir, |
| 444 | struct dentry *dentry, | 444 | struct dentry *dentry, |
| 445 | struct nameidata *nd) | 445 | unsigned int flags) |
| 446 | { | 446 | { |
| 447 | struct configfs_dirent * parent_sd = dentry->d_parent->d_fsdata; | 447 | struct configfs_dirent * parent_sd = dentry->d_parent->d_fsdata; |
| 448 | struct configfs_dirent * sd; | 448 | struct configfs_dirent * sd; |
diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c index d013c46402ed..28cca01ca9c9 100644 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c | |||
| @@ -417,7 +417,7 @@ static int cramfs_readdir(struct file *filp, void *dirent, filldir_t filldir) | |||
| 417 | /* | 417 | /* |
| 418 | * Lookup and fill in the inode data.. | 418 | * Lookup and fill in the inode data.. |
| 419 | */ | 419 | */ |
| 420 | static struct dentry * cramfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 420 | static struct dentry * cramfs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 421 | { | 421 | { |
| 422 | unsigned int offset = 0; | 422 | unsigned int offset = 0; |
| 423 | struct inode *inode = NULL; | 423 | struct inode *inode = NULL; |
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c index a07441a0a878..4ab50c3f5ab2 100644 --- a/fs/ecryptfs/inode.c +++ b/fs/ecryptfs/inode.c | |||
| @@ -374,7 +374,7 @@ static int ecryptfs_lookup_interpose(struct dentry *dentry, | |||
| 374 | */ | 374 | */ |
| 375 | static struct dentry *ecryptfs_lookup(struct inode *ecryptfs_dir_inode, | 375 | static struct dentry *ecryptfs_lookup(struct inode *ecryptfs_dir_inode, |
| 376 | struct dentry *ecryptfs_dentry, | 376 | struct dentry *ecryptfs_dentry, |
| 377 | struct nameidata *ecryptfs_nd) | 377 | unsigned int flags) |
| 378 | { | 378 | { |
| 379 | char *encrypted_and_encoded_name = NULL; | 379 | char *encrypted_and_encoded_name = NULL; |
| 380 | size_t encrypted_and_encoded_name_size; | 380 | size_t encrypted_and_encoded_name_size; |
diff --git a/fs/efs/efs.h b/fs/efs/efs.h index d8305b582ab0..5528926ac7f6 100644 --- a/fs/efs/efs.h +++ b/fs/efs/efs.h | |||
| @@ -129,7 +129,7 @@ extern struct inode *efs_iget(struct super_block *, unsigned long); | |||
| 129 | extern efs_block_t efs_map_block(struct inode *, efs_block_t); | 129 | extern efs_block_t efs_map_block(struct inode *, efs_block_t); |
| 130 | extern int efs_get_block(struct inode *, sector_t, struct buffer_head *, int); | 130 | extern int efs_get_block(struct inode *, sector_t, struct buffer_head *, int); |
| 131 | 131 | ||
| 132 | extern struct dentry *efs_lookup(struct inode *, struct dentry *, struct nameidata *); | 132 | extern struct dentry *efs_lookup(struct inode *, struct dentry *, unsigned int); |
| 133 | extern struct dentry *efs_fh_to_dentry(struct super_block *sb, struct fid *fid, | 133 | extern struct dentry *efs_fh_to_dentry(struct super_block *sb, struct fid *fid, |
| 134 | int fh_len, int fh_type); | 134 | int fh_len, int fh_type); |
| 135 | extern struct dentry *efs_fh_to_parent(struct super_block *sb, struct fid *fid, | 135 | extern struct dentry *efs_fh_to_parent(struct super_block *sb, struct fid *fid, |
diff --git a/fs/efs/namei.c b/fs/efs/namei.c index 832b10ded82f..96f66d213a19 100644 --- a/fs/efs/namei.c +++ b/fs/efs/namei.c | |||
| @@ -58,7 +58,8 @@ static efs_ino_t efs_find_entry(struct inode *inode, const char *name, int len) | |||
| 58 | return(0); | 58 | return(0); |
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | struct dentry *efs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) { | 61 | struct dentry *efs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 62 | { | ||
| 62 | efs_ino_t inodenum; | 63 | efs_ino_t inodenum; |
| 63 | struct inode *inode = NULL; | 64 | struct inode *inode = NULL; |
| 64 | 65 | ||
diff --git a/fs/exofs/namei.c b/fs/exofs/namei.c index fc7161d6bf6b..909ed6ea4cf6 100644 --- a/fs/exofs/namei.c +++ b/fs/exofs/namei.c | |||
| @@ -46,7 +46,7 @@ static inline int exofs_add_nondir(struct dentry *dentry, struct inode *inode) | |||
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | static struct dentry *exofs_lookup(struct inode *dir, struct dentry *dentry, | 48 | static struct dentry *exofs_lookup(struct inode *dir, struct dentry *dentry, |
| 49 | struct nameidata *nd) | 49 | unsigned int flags) |
| 50 | { | 50 | { |
| 51 | struct inode *inode; | 51 | struct inode *inode; |
| 52 | ino_t ino; | 52 | ino_t ino; |
diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c index f663a67d7bf0..b3e6778cd1e7 100644 --- a/fs/ext2/namei.c +++ b/fs/ext2/namei.c | |||
| @@ -55,7 +55,7 @@ static inline int ext2_add_nondir(struct dentry *dentry, struct inode *inode) | |||
| 55 | * Methods themselves. | 55 | * Methods themselves. |
| 56 | */ | 56 | */ |
| 57 | 57 | ||
| 58 | static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd) | 58 | static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags) |
| 59 | { | 59 | { |
| 60 | struct inode * inode; | 60 | struct inode * inode; |
| 61 | ino_t ino; | 61 | ino_t ino; |
diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c index eeb63dfc5d20..86d25f3f6043 100644 --- a/fs/ext3/namei.c +++ b/fs/ext3/namei.c | |||
| @@ -1011,7 +1011,7 @@ errout: | |||
| 1011 | return NULL; | 1011 | return NULL; |
| 1012 | } | 1012 | } |
| 1013 | 1013 | ||
| 1014 | static struct dentry *ext3_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd) | 1014 | static struct dentry *ext3_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags) |
| 1015 | { | 1015 | { |
| 1016 | struct inode * inode; | 1016 | struct inode * inode; |
| 1017 | struct ext3_dir_entry_2 * de; | 1017 | struct ext3_dir_entry_2 * de; |
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 5845cd97bf8b..4fba3cd42e2b 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c | |||
| @@ -1312,7 +1312,7 @@ errout: | |||
| 1312 | return NULL; | 1312 | return NULL; |
| 1313 | } | 1313 | } |
| 1314 | 1314 | ||
| 1315 | static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 1315 | static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 1316 | { | 1316 | { |
| 1317 | struct inode *inode; | 1317 | struct inode *inode; |
| 1318 | struct ext4_dir_entry_2 *de; | 1318 | struct ext4_dir_entry_2 *de; |
diff --git a/fs/fat/namei_msdos.c b/fs/fat/namei_msdos.c index c5938c9084b9..47c608b05294 100644 --- a/fs/fat/namei_msdos.c +++ b/fs/fat/namei_msdos.c | |||
| @@ -201,7 +201,7 @@ static const struct dentry_operations msdos_dentry_operations = { | |||
| 201 | 201 | ||
| 202 | /***** Get inode using directory and name */ | 202 | /***** Get inode using directory and name */ |
| 203 | static struct dentry *msdos_lookup(struct inode *dir, struct dentry *dentry, | 203 | static struct dentry *msdos_lookup(struct inode *dir, struct dentry *dentry, |
| 204 | struct nameidata *nd) | 204 | unsigned int flags) |
| 205 | { | 205 | { |
| 206 | struct super_block *sb = dir->i_sb; | 206 | struct super_block *sb = dir->i_sb; |
| 207 | struct fat_slot_info sinfo; | 207 | struct fat_slot_info sinfo; |
diff --git a/fs/fat/namei_vfat.c b/fs/fat/namei_vfat.c index 0bbdf3990060..44152571524e 100644 --- a/fs/fat/namei_vfat.c +++ b/fs/fat/namei_vfat.c | |||
| @@ -714,7 +714,7 @@ static int vfat_d_anon_disconn(struct dentry *dentry) | |||
| 714 | } | 714 | } |
| 715 | 715 | ||
| 716 | static struct dentry *vfat_lookup(struct inode *dir, struct dentry *dentry, | 716 | static struct dentry *vfat_lookup(struct inode *dir, struct dentry *dentry, |
| 717 | struct nameidata *nd) | 717 | unsigned int flags) |
| 718 | { | 718 | { |
| 719 | struct super_block *sb = dir->i_sb; | 719 | struct super_block *sb = dir->i_sb; |
| 720 | struct fat_slot_info sinfo; | 720 | struct fat_slot_info sinfo; |
diff --git a/fs/freevxfs/vxfs_lookup.c b/fs/freevxfs/vxfs_lookup.c index 3360f1e678ad..bd447e88f208 100644 --- a/fs/freevxfs/vxfs_lookup.c +++ b/fs/freevxfs/vxfs_lookup.c | |||
| @@ -48,7 +48,7 @@ | |||
| 48 | #define VXFS_BLOCK_PER_PAGE(sbp) ((PAGE_CACHE_SIZE / (sbp)->s_blocksize)) | 48 | #define VXFS_BLOCK_PER_PAGE(sbp) ((PAGE_CACHE_SIZE / (sbp)->s_blocksize)) |
| 49 | 49 | ||
| 50 | 50 | ||
| 51 | static struct dentry * vxfs_lookup(struct inode *, struct dentry *, struct nameidata *); | 51 | static struct dentry * vxfs_lookup(struct inode *, struct dentry *, unsigned int); |
| 52 | static int vxfs_readdir(struct file *, void *, filldir_t); | 52 | static int vxfs_readdir(struct file *, void *, filldir_t); |
| 53 | 53 | ||
| 54 | const struct inode_operations vxfs_dir_inode_ops = { | 54 | const struct inode_operations vxfs_dir_inode_ops = { |
| @@ -203,7 +203,7 @@ vxfs_inode_by_name(struct inode *dip, struct dentry *dp) | |||
| 203 | * in the return pointer. | 203 | * in the return pointer. |
| 204 | */ | 204 | */ |
| 205 | static struct dentry * | 205 | static struct dentry * |
| 206 | vxfs_lookup(struct inode *dip, struct dentry *dp, struct nameidata *nd) | 206 | vxfs_lookup(struct inode *dip, struct dentry *dp, unsigned int flags) |
| 207 | { | 207 | { |
| 208 | struct inode *ip = NULL; | 208 | struct inode *ip = NULL; |
| 209 | ino_t ino; | 209 | ino_t ino; |
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index eba30bd9ba2b..385235ac137d 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c | |||
| @@ -316,7 +316,7 @@ int fuse_lookup_name(struct super_block *sb, u64 nodeid, struct qstr *name, | |||
| 316 | } | 316 | } |
| 317 | 317 | ||
| 318 | static struct dentry *fuse_lookup(struct inode *dir, struct dentry *entry, | 318 | static struct dentry *fuse_lookup(struct inode *dir, struct dentry *entry, |
| 319 | struct nameidata *nd) | 319 | unsigned int flags) |
| 320 | { | 320 | { |
| 321 | int err; | 321 | int err; |
| 322 | struct fuse_entry_out outarg; | 322 | struct fuse_entry_out outarg; |
| @@ -478,7 +478,7 @@ static int fuse_atomic_open(struct inode *dir, struct dentry *entry, | |||
| 478 | struct dentry *res = NULL; | 478 | struct dentry *res = NULL; |
| 479 | 479 | ||
| 480 | if (d_unhashed(entry)) { | 480 | if (d_unhashed(entry)) { |
| 481 | res = fuse_lookup(dir, entry, NULL); | 481 | res = fuse_lookup(dir, entry, 0); |
| 482 | if (IS_ERR(res)) | 482 | if (IS_ERR(res)) |
| 483 | return PTR_ERR(res); | 483 | return PTR_ERR(res); |
| 484 | 484 | ||
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index a9ba2444e077..19e443b73354 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c | |||
| @@ -775,7 +775,7 @@ static int gfs2_create(struct inode *dir, struct dentry *dentry, | |||
| 775 | */ | 775 | */ |
| 776 | 776 | ||
| 777 | static struct dentry *gfs2_lookup(struct inode *dir, struct dentry *dentry, | 777 | static struct dentry *gfs2_lookup(struct inode *dir, struct dentry *dentry, |
| 778 | struct nameidata *nd) | 778 | unsigned int flags) |
| 779 | { | 779 | { |
| 780 | struct inode *inode = gfs2_lookupi(dir, &dentry->d_name, 0); | 780 | struct inode *inode = gfs2_lookupi(dir, &dentry->d_name, 0); |
| 781 | if (inode && !IS_ERR(inode)) { | 781 | if (inode && !IS_ERR(inode)) { |
diff --git a/fs/hfs/dir.c b/fs/hfs/dir.c index 62fc14ea4b73..617b1ed71f52 100644 --- a/fs/hfs/dir.c +++ b/fs/hfs/dir.c | |||
| @@ -18,7 +18,7 @@ | |||
| 18 | * hfs_lookup() | 18 | * hfs_lookup() |
| 19 | */ | 19 | */ |
| 20 | static struct dentry *hfs_lookup(struct inode *dir, struct dentry *dentry, | 20 | static struct dentry *hfs_lookup(struct inode *dir, struct dentry *dentry, |
| 21 | struct nameidata *nd) | 21 | unsigned int flags) |
| 22 | { | 22 | { |
| 23 | hfs_cat_rec rec; | 23 | hfs_cat_rec rec; |
| 24 | struct hfs_find_data fd; | 24 | struct hfs_find_data fd; |
diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c index 761ec06354b4..451c97281b83 100644 --- a/fs/hfs/inode.c +++ b/fs/hfs/inode.c | |||
| @@ -489,7 +489,7 @@ out: | |||
| 489 | } | 489 | } |
| 490 | 490 | ||
| 491 | static struct dentry *hfs_file_lookup(struct inode *dir, struct dentry *dentry, | 491 | static struct dentry *hfs_file_lookup(struct inode *dir, struct dentry *dentry, |
| 492 | struct nameidata *nd) | 492 | unsigned int flags) |
| 493 | { | 493 | { |
| 494 | struct inode *inode = NULL; | 494 | struct inode *inode = NULL; |
| 495 | hfs_cat_rec rec; | 495 | hfs_cat_rec rec; |
diff --git a/fs/hfsplus/dir.c b/fs/hfsplus/dir.c index 26b53fb09f68..90c2f78b2c79 100644 --- a/fs/hfsplus/dir.c +++ b/fs/hfsplus/dir.c | |||
| @@ -25,7 +25,7 @@ static inline void hfsplus_instantiate(struct dentry *dentry, | |||
| 25 | 25 | ||
| 26 | /* Find the entry inside dir named dentry->d_name */ | 26 | /* Find the entry inside dir named dentry->d_name */ |
| 27 | static struct dentry *hfsplus_lookup(struct inode *dir, struct dentry *dentry, | 27 | static struct dentry *hfsplus_lookup(struct inode *dir, struct dentry *dentry, |
| 28 | struct nameidata *nd) | 28 | unsigned int flags) |
| 29 | { | 29 | { |
| 30 | struct inode *inode = NULL; | 30 | struct inode *inode = NULL; |
| 31 | struct hfs_find_data fd; | 31 | struct hfs_find_data fd; |
diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c index 82b69ee4dacc..7009265b746f 100644 --- a/fs/hfsplus/inode.c +++ b/fs/hfsplus/inode.c | |||
| @@ -168,7 +168,7 @@ const struct dentry_operations hfsplus_dentry_operations = { | |||
| 168 | }; | 168 | }; |
| 169 | 169 | ||
| 170 | static struct dentry *hfsplus_file_lookup(struct inode *dir, | 170 | static struct dentry *hfsplus_file_lookup(struct inode *dir, |
| 171 | struct dentry *dentry, struct nameidata *nd) | 171 | struct dentry *dentry, unsigned int flags) |
| 172 | { | 172 | { |
| 173 | struct hfs_find_data fd; | 173 | struct hfs_find_data fd; |
| 174 | struct super_block *sb = dir->i_sb; | 174 | struct super_block *sb = dir->i_sb; |
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index 2afa5bbccf9b..0ea005228e1b 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c | |||
| @@ -595,7 +595,7 @@ int hostfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, | |||
| 595 | } | 595 | } |
| 596 | 596 | ||
| 597 | struct dentry *hostfs_lookup(struct inode *ino, struct dentry *dentry, | 597 | struct dentry *hostfs_lookup(struct inode *ino, struct dentry *dentry, |
| 598 | struct nameidata *nd) | 598 | unsigned int flags) |
| 599 | { | 599 | { |
| 600 | struct inode *inode; | 600 | struct inode *inode; |
| 601 | char *name; | 601 | char *name; |
diff --git a/fs/hpfs/dir.c b/fs/hpfs/dir.c index b8472f803f4e..78e12b2e0ea2 100644 --- a/fs/hpfs/dir.c +++ b/fs/hpfs/dir.c | |||
| @@ -189,7 +189,7 @@ out: | |||
| 189 | * to tell read_inode to read fnode or not. | 189 | * to tell read_inode to read fnode or not. |
| 190 | */ | 190 | */ |
| 191 | 191 | ||
| 192 | struct dentry *hpfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 192 | struct dentry *hpfs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 193 | { | 193 | { |
| 194 | const unsigned char *name = dentry->d_name.name; | 194 | const unsigned char *name = dentry->d_name.name; |
| 195 | unsigned len = dentry->d_name.len; | 195 | unsigned len = dentry->d_name.len; |
diff --git a/fs/hpfs/hpfs_fn.h b/fs/hpfs/hpfs_fn.h index c07ef1f1ced6..ac1ead194db5 100644 --- a/fs/hpfs/hpfs_fn.h +++ b/fs/hpfs/hpfs_fn.h | |||
| @@ -220,7 +220,7 @@ extern const struct dentry_operations hpfs_dentry_operations; | |||
| 220 | 220 | ||
| 221 | /* dir.c */ | 221 | /* dir.c */ |
| 222 | 222 | ||
| 223 | struct dentry *hpfs_lookup(struct inode *, struct dentry *, struct nameidata *); | 223 | struct dentry *hpfs_lookup(struct inode *, struct dentry *, unsigned int); |
| 224 | extern const struct file_operations hpfs_dir_ops; | 224 | extern const struct file_operations hpfs_dir_ops; |
| 225 | 225 | ||
| 226 | /* dnode.c */ | 226 | /* dnode.c */ |
diff --git a/fs/hppfs/hppfs.c b/fs/hppfs/hppfs.c index d4f93b52cec5..e5c06531dcc4 100644 --- a/fs/hppfs/hppfs.c +++ b/fs/hppfs/hppfs.c | |||
| @@ -138,7 +138,7 @@ static int file_removed(struct dentry *dentry, const char *file) | |||
| 138 | } | 138 | } |
| 139 | 139 | ||
| 140 | static struct dentry *hppfs_lookup(struct inode *ino, struct dentry *dentry, | 140 | static struct dentry *hppfs_lookup(struct inode *ino, struct dentry *dentry, |
| 141 | struct nameidata *nd) | 141 | unsigned int flags) |
| 142 | { | 142 | { |
| 143 | struct dentry *proc_dentry, *parent; | 143 | struct dentry *proc_dentry, *parent; |
| 144 | struct qstr *name = &dentry->d_name; | 144 | struct qstr *name = &dentry->d_name; |
diff --git a/fs/isofs/isofs.h b/fs/isofs/isofs.h index 0e73f63d9274..3620ad1ea9bc 100644 --- a/fs/isofs/isofs.h +++ b/fs/isofs/isofs.h | |||
| @@ -114,7 +114,7 @@ extern int isofs_name_translate(struct iso_directory_record *, char *, struct in | |||
| 114 | int get_joliet_filename(struct iso_directory_record *, unsigned char *, struct inode *); | 114 | int get_joliet_filename(struct iso_directory_record *, unsigned char *, struct inode *); |
| 115 | int get_acorn_filename(struct iso_directory_record *, char *, struct inode *); | 115 | int get_acorn_filename(struct iso_directory_record *, char *, struct inode *); |
| 116 | 116 | ||
| 117 | extern struct dentry *isofs_lookup(struct inode *, struct dentry *, struct nameidata *); | 117 | extern struct dentry *isofs_lookup(struct inode *, struct dentry *, unsigned int flags); |
| 118 | extern struct buffer_head *isofs_bread(struct inode *, sector_t); | 118 | extern struct buffer_head *isofs_bread(struct inode *, sector_t); |
| 119 | extern int isofs_get_blocks(struct inode *, sector_t, struct buffer_head **, unsigned long); | 119 | extern int isofs_get_blocks(struct inode *, sector_t, struct buffer_head **, unsigned long); |
| 120 | 120 | ||
diff --git a/fs/isofs/namei.c b/fs/isofs/namei.c index 1e2946f2a69e..c167028844ed 100644 --- a/fs/isofs/namei.c +++ b/fs/isofs/namei.c | |||
| @@ -163,7 +163,7 @@ isofs_find_entry(struct inode *dir, struct dentry *dentry, | |||
| 163 | return 0; | 163 | return 0; |
| 164 | } | 164 | } |
| 165 | 165 | ||
| 166 | struct dentry *isofs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 166 | struct dentry *isofs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 167 | { | 167 | { |
| 168 | int found; | 168 | int found; |
| 169 | unsigned long uninitialized_var(block); | 169 | unsigned long uninitialized_var(block); |
diff --git a/fs/jffs2/dir.c b/fs/jffs2/dir.c index b56018896d5e..6a601673f89f 100644 --- a/fs/jffs2/dir.c +++ b/fs/jffs2/dir.c | |||
| @@ -27,7 +27,7 @@ static int jffs2_readdir (struct file *, void *, filldir_t); | |||
| 27 | static int jffs2_create (struct inode *,struct dentry *,umode_t, | 27 | static int jffs2_create (struct inode *,struct dentry *,umode_t, |
| 28 | struct nameidata *); | 28 | struct nameidata *); |
| 29 | static struct dentry *jffs2_lookup (struct inode *,struct dentry *, | 29 | static struct dentry *jffs2_lookup (struct inode *,struct dentry *, |
| 30 | struct nameidata *); | 30 | unsigned int); |
| 31 | static int jffs2_link (struct dentry *,struct inode *,struct dentry *); | 31 | static int jffs2_link (struct dentry *,struct inode *,struct dentry *); |
| 32 | static int jffs2_unlink (struct inode *,struct dentry *); | 32 | static int jffs2_unlink (struct inode *,struct dentry *); |
| 33 | static int jffs2_symlink (struct inode *,struct dentry *,const char *); | 33 | static int jffs2_symlink (struct inode *,struct dentry *,const char *); |
| @@ -74,7 +74,7 @@ const struct inode_operations jffs2_dir_inode_operations = | |||
| 74 | nice and simple | 74 | nice and simple |
| 75 | */ | 75 | */ |
| 76 | static struct dentry *jffs2_lookup(struct inode *dir_i, struct dentry *target, | 76 | static struct dentry *jffs2_lookup(struct inode *dir_i, struct dentry *target, |
| 77 | struct nameidata *nd) | 77 | unsigned int flags) |
| 78 | { | 78 | { |
| 79 | struct jffs2_inode_info *dir_f; | 79 | struct jffs2_inode_info *dir_f; |
| 80 | struct jffs2_full_dirent *fd = NULL, *fd_list; | 80 | struct jffs2_full_dirent *fd = NULL, *fd_list; |
diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c index f37977fb0871..34fe85555caf 100644 --- a/fs/jfs/namei.c +++ b/fs/jfs/namei.c | |||
| @@ -1436,7 +1436,7 @@ static int jfs_mknod(struct inode *dir, struct dentry *dentry, | |||
| 1436 | return rc; | 1436 | return rc; |
| 1437 | } | 1437 | } |
| 1438 | 1438 | ||
| 1439 | static struct dentry *jfs_lookup(struct inode *dip, struct dentry *dentry, struct nameidata *nd) | 1439 | static struct dentry *jfs_lookup(struct inode *dip, struct dentry *dentry, unsigned int flags) |
| 1440 | { | 1440 | { |
| 1441 | struct btstack btstack; | 1441 | struct btstack btstack; |
| 1442 | ino_t inum; | 1442 | ino_t inum; |
diff --git a/fs/libfs.c b/fs/libfs.c index f86ec27a4230..ebd03f6910d5 100644 --- a/fs/libfs.c +++ b/fs/libfs.c | |||
| @@ -53,7 +53,7 @@ static int simple_delete_dentry(const struct dentry *dentry) | |||
| 53 | * Lookup the data. This is trivial - if the dentry didn't already | 53 | * Lookup the data. This is trivial - if the dentry didn't already |
| 54 | * exist, we know it is negative. Set d_op to delete negative dentries. | 54 | * exist, we know it is negative. Set d_op to delete negative dentries. |
| 55 | */ | 55 | */ |
| 56 | struct dentry *simple_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 56 | struct dentry *simple_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 57 | { | 57 | { |
| 58 | static const struct dentry_operations simple_dentry_operations = { | 58 | static const struct dentry_operations simple_dentry_operations = { |
| 59 | .d_delete = simple_delete_dentry, | 59 | .d_delete = simple_delete_dentry, |
diff --git a/fs/logfs/dir.c b/fs/logfs/dir.c index bea5d1b9954b..8a3dcc615b39 100644 --- a/fs/logfs/dir.c +++ b/fs/logfs/dir.c | |||
| @@ -349,7 +349,7 @@ static void logfs_set_name(struct logfs_disk_dentry *dd, struct qstr *name) | |||
| 349 | } | 349 | } |
| 350 | 350 | ||
| 351 | static struct dentry *logfs_lookup(struct inode *dir, struct dentry *dentry, | 351 | static struct dentry *logfs_lookup(struct inode *dir, struct dentry *dentry, |
| 352 | struct nameidata *nd) | 352 | unsigned int flags) |
| 353 | { | 353 | { |
| 354 | struct page *page; | 354 | struct page *page; |
| 355 | struct logfs_disk_dentry *dd; | 355 | struct logfs_disk_dentry *dd; |
diff --git a/fs/minix/namei.c b/fs/minix/namei.c index 2d0ee1786305..1f245240ea08 100644 --- a/fs/minix/namei.c +++ b/fs/minix/namei.c | |||
| @@ -18,7 +18,7 @@ static int add_nondir(struct dentry *dentry, struct inode *inode) | |||
| 18 | return err; | 18 | return err; |
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | static struct dentry *minix_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd) | 21 | static struct dentry *minix_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags) |
| 22 | { | 22 | { |
| 23 | struct inode * inode = NULL; | 23 | struct inode * inode = NULL; |
| 24 | ino_t ino; | 24 | ino_t ino; |
diff --git a/fs/namei.c b/fs/namei.c index 2e943ab04f32..175e81b8f261 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
| @@ -1090,7 +1090,7 @@ static struct dentry *lookup_real(struct inode *dir, struct dentry *dentry, | |||
| 1090 | return ERR_PTR(-ENOENT); | 1090 | return ERR_PTR(-ENOENT); |
| 1091 | } | 1091 | } |
| 1092 | 1092 | ||
| 1093 | old = dir->i_op->lookup(dir, dentry, nd); | 1093 | old = dir->i_op->lookup(dir, dentry, nd ? nd->flags : 0); |
| 1094 | if (unlikely(old)) { | 1094 | if (unlikely(old)) { |
| 1095 | dput(dentry); | 1095 | dput(dentry); |
| 1096 | dentry = old; | 1096 | dentry = old; |
diff --git a/fs/ncpfs/dir.c b/fs/ncpfs/dir.c index 32607f749588..a0cff22bfc9b 100644 --- a/fs/ncpfs/dir.c +++ b/fs/ncpfs/dir.c | |||
| @@ -31,7 +31,7 @@ static void ncp_do_readdir(struct file *, void *, filldir_t, | |||
| 31 | static int ncp_readdir(struct file *, void *, filldir_t); | 31 | static int ncp_readdir(struct file *, void *, filldir_t); |
| 32 | 32 | ||
| 33 | static int ncp_create(struct inode *, struct dentry *, umode_t, struct nameidata *); | 33 | static int ncp_create(struct inode *, struct dentry *, umode_t, struct nameidata *); |
| 34 | static struct dentry *ncp_lookup(struct inode *, struct dentry *, struct nameidata *); | 34 | static struct dentry *ncp_lookup(struct inode *, struct dentry *, unsigned int); |
| 35 | static int ncp_unlink(struct inode *, struct dentry *); | 35 | static int ncp_unlink(struct inode *, struct dentry *); |
| 36 | static int ncp_mkdir(struct inode *, struct dentry *, umode_t); | 36 | static int ncp_mkdir(struct inode *, struct dentry *, umode_t); |
| 37 | static int ncp_rmdir(struct inode *, struct dentry *); | 37 | static int ncp_rmdir(struct inode *, struct dentry *); |
| @@ -836,7 +836,7 @@ out: | |||
| 836 | return result; | 836 | return result; |
| 837 | } | 837 | } |
| 838 | 838 | ||
| 839 | static struct dentry *ncp_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 839 | static struct dentry *ncp_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 840 | { | 840 | { |
| 841 | struct ncp_server *server = NCP_SERVER(dir); | 841 | struct ncp_server *server = NCP_SERVER(dir); |
| 842 | struct inode *inode = NULL; | 842 | struct inode *inode = NULL; |
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 656f52e9aa2e..8f21205c5896 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
| @@ -46,7 +46,7 @@ | |||
| 46 | static int nfs_opendir(struct inode *, struct file *); | 46 | static int nfs_opendir(struct inode *, struct file *); |
| 47 | static int nfs_closedir(struct inode *, struct file *); | 47 | static int nfs_closedir(struct inode *, struct file *); |
| 48 | static int nfs_readdir(struct file *, void *, filldir_t); | 48 | static int nfs_readdir(struct file *, void *, filldir_t); |
| 49 | static struct dentry *nfs_lookup(struct inode *, struct dentry *, struct nameidata *); | 49 | static struct dentry *nfs_lookup(struct inode *, struct dentry *, unsigned int); |
| 50 | static int nfs_create(struct inode *, struct dentry *, umode_t, struct nameidata *); | 50 | static int nfs_create(struct inode *, struct dentry *, umode_t, struct nameidata *); |
| 51 | static int nfs_mkdir(struct inode *, struct dentry *, umode_t); | 51 | static int nfs_mkdir(struct inode *, struct dentry *, umode_t); |
| 52 | static int nfs_rmdir(struct inode *, struct dentry *); | 52 | static int nfs_rmdir(struct inode *, struct dentry *); |
| @@ -1270,7 +1270,7 @@ const struct dentry_operations nfs_dentry_operations = { | |||
| 1270 | .d_release = nfs_d_release, | 1270 | .d_release = nfs_d_release, |
| 1271 | }; | 1271 | }; |
| 1272 | 1272 | ||
| 1273 | static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *nd) | 1273 | static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, unsigned int flags) |
| 1274 | { | 1274 | { |
| 1275 | struct dentry *res; | 1275 | struct dentry *res; |
| 1276 | struct dentry *parent; | 1276 | struct dentry *parent; |
| @@ -1291,7 +1291,7 @@ static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, stru | |||
| 1291 | * If we're doing an exclusive create, optimize away the lookup | 1291 | * If we're doing an exclusive create, optimize away the lookup |
| 1292 | * but don't hash the dentry. | 1292 | * but don't hash the dentry. |
| 1293 | */ | 1293 | */ |
| 1294 | if (nd && nfs_is_exclusive_create(dir, nd->flags)) { | 1294 | if (nfs_is_exclusive_create(dir, flags)) { |
| 1295 | d_instantiate(dentry, NULL); | 1295 | d_instantiate(dentry, NULL); |
| 1296 | res = NULL; | 1296 | res = NULL; |
| 1297 | goto out; | 1297 | goto out; |
| @@ -1482,7 +1482,7 @@ out: | |||
| 1482 | return err; | 1482 | return err; |
| 1483 | 1483 | ||
| 1484 | no_open: | 1484 | no_open: |
| 1485 | res = nfs_lookup(dir, dentry, NULL); | 1485 | res = nfs_lookup(dir, dentry, 0); |
| 1486 | err = PTR_ERR(res); | 1486 | err = PTR_ERR(res); |
| 1487 | if (IS_ERR(res)) | 1487 | if (IS_ERR(res)) |
| 1488 | goto out; | 1488 | goto out; |
diff --git a/fs/nilfs2/namei.c b/fs/nilfs2/namei.c index b72847988b78..5e5f779db76f 100644 --- a/fs/nilfs2/namei.c +++ b/fs/nilfs2/namei.c | |||
| @@ -63,7 +63,7 @@ static inline int nilfs_add_nondir(struct dentry *dentry, struct inode *inode) | |||
| 63 | */ | 63 | */ |
| 64 | 64 | ||
| 65 | static struct dentry * | 65 | static struct dentry * |
| 66 | nilfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 66 | nilfs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 67 | { | 67 | { |
| 68 | struct inode *inode; | 68 | struct inode *inode; |
| 69 | ino_t ino; | 69 | ino_t ino; |
diff --git a/fs/ntfs/namei.c b/fs/ntfs/namei.c index 358273e59ade..436f36037e09 100644 --- a/fs/ntfs/namei.c +++ b/fs/ntfs/namei.c | |||
| @@ -101,7 +101,7 @@ | |||
| 101 | * Locking: Caller must hold i_mutex on the directory. | 101 | * Locking: Caller must hold i_mutex on the directory. |
| 102 | */ | 102 | */ |
| 103 | static struct dentry *ntfs_lookup(struct inode *dir_ino, struct dentry *dent, | 103 | static struct dentry *ntfs_lookup(struct inode *dir_ino, struct dentry *dent, |
| 104 | struct nameidata *nd) | 104 | unsigned int flags) |
| 105 | { | 105 | { |
| 106 | ntfs_volume *vol = NTFS_SB(dir_ino->i_sb); | 106 | ntfs_volume *vol = NTFS_SB(dir_ino->i_sb); |
| 107 | struct inode *dent_inode; | 107 | struct inode *dent_inode; |
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c index 9f39c640cddf..fd71f6e5841f 100644 --- a/fs/ocfs2/namei.c +++ b/fs/ocfs2/namei.c | |||
| @@ -98,7 +98,7 @@ static int ocfs2_create_symlink_data(struct ocfs2_super *osb, | |||
| 98 | #define OCFS2_ORPHAN_NAMELEN ((int)(2 * sizeof(u64))) | 98 | #define OCFS2_ORPHAN_NAMELEN ((int)(2 * sizeof(u64))) |
| 99 | 99 | ||
| 100 | static struct dentry *ocfs2_lookup(struct inode *dir, struct dentry *dentry, | 100 | static struct dentry *ocfs2_lookup(struct inode *dir, struct dentry *dentry, |
| 101 | struct nameidata *nd) | 101 | unsigned int flags) |
| 102 | { | 102 | { |
| 103 | int status; | 103 | int status; |
| 104 | u64 blkno; | 104 | u64 blkno; |
diff --git a/fs/omfs/dir.c b/fs/omfs/dir.c index f00576ec320f..3d254872e641 100644 --- a/fs/omfs/dir.c +++ b/fs/omfs/dir.c | |||
| @@ -291,7 +291,7 @@ static int omfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, | |||
| 291 | } | 291 | } |
| 292 | 292 | ||
| 293 | static struct dentry *omfs_lookup(struct inode *dir, struct dentry *dentry, | 293 | static struct dentry *omfs_lookup(struct inode *dir, struct dentry *dentry, |
| 294 | struct nameidata *nd) | 294 | unsigned int flags) |
| 295 | { | 295 | { |
| 296 | struct buffer_head *bh; | 296 | struct buffer_head *bh; |
| 297 | struct inode *inode = NULL; | 297 | struct inode *inode = NULL; |
diff --git a/fs/openpromfs/inode.c b/fs/openpromfs/inode.c index bc49c975d501..4a3477949bca 100644 --- a/fs/openpromfs/inode.c +++ b/fs/openpromfs/inode.c | |||
| @@ -170,13 +170,13 @@ static const struct file_operations openprom_operations = { | |||
| 170 | .llseek = generic_file_llseek, | 170 | .llseek = generic_file_llseek, |
| 171 | }; | 171 | }; |
| 172 | 172 | ||
| 173 | static struct dentry *openpromfs_lookup(struct inode *, struct dentry *, struct nameidata *); | 173 | static struct dentry *openpromfs_lookup(struct inode *, struct dentry *, unsigned int); |
| 174 | 174 | ||
| 175 | static const struct inode_operations openprom_inode_operations = { | 175 | static const struct inode_operations openprom_inode_operations = { |
| 176 | .lookup = openpromfs_lookup, | 176 | .lookup = openpromfs_lookup, |
| 177 | }; | 177 | }; |
| 178 | 178 | ||
| 179 | static struct dentry *openpromfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 179 | static struct dentry *openpromfs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 180 | { | 180 | { |
| 181 | struct op_inode_info *ent_oi, *oi = OP_I(dir); | 181 | struct op_inode_info *ent_oi, *oi = OP_I(dir); |
| 182 | struct device_node *dp, *child; | 182 | struct device_node *dp, *child; |
diff --git a/fs/proc/base.c b/fs/proc/base.c index bf749cca4cc6..8eaa5ea1c613 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
| @@ -1956,7 +1956,7 @@ out_no_task: | |||
| 1956 | } | 1956 | } |
| 1957 | 1957 | ||
| 1958 | static struct dentry *proc_lookupfd(struct inode *dir, struct dentry *dentry, | 1958 | static struct dentry *proc_lookupfd(struct inode *dir, struct dentry *dentry, |
| 1959 | struct nameidata *nd) | 1959 | unsigned int flags) |
| 1960 | { | 1960 | { |
| 1961 | return proc_lookupfd_common(dir, dentry, proc_fd_instantiate); | 1961 | return proc_lookupfd_common(dir, dentry, proc_fd_instantiate); |
| 1962 | } | 1962 | } |
| @@ -2145,7 +2145,7 @@ proc_map_files_instantiate(struct inode *dir, struct dentry *dentry, | |||
| 2145 | } | 2145 | } |
| 2146 | 2146 | ||
| 2147 | static struct dentry *proc_map_files_lookup(struct inode *dir, | 2147 | static struct dentry *proc_map_files_lookup(struct inode *dir, |
| 2148 | struct dentry *dentry, struct nameidata *nd) | 2148 | struct dentry *dentry, unsigned int flags) |
| 2149 | { | 2149 | { |
| 2150 | unsigned long vm_start, vm_end; | 2150 | unsigned long vm_start, vm_end; |
| 2151 | struct vm_area_struct *vma; | 2151 | struct vm_area_struct *vma; |
| @@ -2380,7 +2380,7 @@ static struct dentry *proc_fdinfo_instantiate(struct inode *dir, | |||
| 2380 | 2380 | ||
| 2381 | static struct dentry *proc_lookupfdinfo(struct inode *dir, | 2381 | static struct dentry *proc_lookupfdinfo(struct inode *dir, |
| 2382 | struct dentry *dentry, | 2382 | struct dentry *dentry, |
| 2383 | struct nameidata *nd) | 2383 | unsigned int flags) |
| 2384 | { | 2384 | { |
| 2385 | return proc_lookupfd_common(dir, dentry, proc_fdinfo_instantiate); | 2385 | return proc_lookupfd_common(dir, dentry, proc_fdinfo_instantiate); |
| 2386 | } | 2386 | } |
| @@ -2630,7 +2630,7 @@ static const struct file_operations proc_attr_dir_operations = { | |||
| 2630 | }; | 2630 | }; |
| 2631 | 2631 | ||
| 2632 | static struct dentry *proc_attr_dir_lookup(struct inode *dir, | 2632 | static struct dentry *proc_attr_dir_lookup(struct inode *dir, |
| 2633 | struct dentry *dentry, struct nameidata *nd) | 2633 | struct dentry *dentry, unsigned int flags) |
| 2634 | { | 2634 | { |
| 2635 | return proc_pident_lookup(dir, dentry, | 2635 | return proc_pident_lookup(dir, dentry, |
| 2636 | attr_dir_stuff, ARRAY_SIZE(attr_dir_stuff)); | 2636 | attr_dir_stuff, ARRAY_SIZE(attr_dir_stuff)); |
| @@ -3114,7 +3114,8 @@ static const struct file_operations proc_tgid_base_operations = { | |||
| 3114 | .llseek = default_llseek, | 3114 | .llseek = default_llseek, |
| 3115 | }; | 3115 | }; |
| 3116 | 3116 | ||
| 3117 | static struct dentry *proc_tgid_base_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd){ | 3117 | static struct dentry *proc_tgid_base_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 3118 | { | ||
| 3118 | return proc_pident_lookup(dir, dentry, | 3119 | return proc_pident_lookup(dir, dentry, |
| 3119 | tgid_base_stuff, ARRAY_SIZE(tgid_base_stuff)); | 3120 | tgid_base_stuff, ARRAY_SIZE(tgid_base_stuff)); |
| 3120 | } | 3121 | } |
| @@ -3243,7 +3244,7 @@ out: | |||
| 3243 | return error; | 3244 | return error; |
| 3244 | } | 3245 | } |
| 3245 | 3246 | ||
| 3246 | struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *nd) | 3247 | struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsigned int flags) |
| 3247 | { | 3248 | { |
| 3248 | struct dentry *result; | 3249 | struct dentry *result; |
| 3249 | struct task_struct *task; | 3250 | struct task_struct *task; |
| @@ -3470,7 +3471,8 @@ static int proc_tid_base_readdir(struct file * filp, | |||
| 3470 | tid_base_stuff,ARRAY_SIZE(tid_base_stuff)); | 3471 | tid_base_stuff,ARRAY_SIZE(tid_base_stuff)); |
| 3471 | } | 3472 | } |
| 3472 | 3473 | ||
| 3473 | static struct dentry *proc_tid_base_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd){ | 3474 | static struct dentry *proc_tid_base_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 3475 | { | ||
| 3474 | return proc_pident_lookup(dir, dentry, | 3476 | return proc_pident_lookup(dir, dentry, |
| 3475 | tid_base_stuff, ARRAY_SIZE(tid_base_stuff)); | 3477 | tid_base_stuff, ARRAY_SIZE(tid_base_stuff)); |
| 3476 | } | 3478 | } |
| @@ -3514,7 +3516,7 @@ out: | |||
| 3514 | return error; | 3516 | return error; |
| 3515 | } | 3517 | } |
| 3516 | 3518 | ||
| 3517 | static struct dentry *proc_task_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *nd) | 3519 | static struct dentry *proc_task_lookup(struct inode *dir, struct dentry * dentry, unsigned int flags) |
| 3518 | { | 3520 | { |
| 3519 | struct dentry *result = ERR_PTR(-ENOENT); | 3521 | struct dentry *result = ERR_PTR(-ENOENT); |
| 3520 | struct task_struct *task; | 3522 | struct task_struct *task; |
diff --git a/fs/proc/generic.c b/fs/proc/generic.c index 2edf34f2eb61..b3647fe6a608 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c | |||
| @@ -446,7 +446,7 @@ out_unlock: | |||
| 446 | } | 446 | } |
| 447 | 447 | ||
| 448 | struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry, | 448 | struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry, |
| 449 | struct nameidata *nd) | 449 | unsigned int flags) |
| 450 | { | 450 | { |
| 451 | return proc_lookup_de(PDE(dir), dir, dentry); | 451 | return proc_lookup_de(PDE(dir), dir, dentry); |
| 452 | } | 452 | } |
diff --git a/fs/proc/internal.h b/fs/proc/internal.h index e0c2a48dab73..e1167a1c9126 100644 --- a/fs/proc/internal.h +++ b/fs/proc/internal.h | |||
| @@ -106,7 +106,7 @@ void pde_users_dec(struct proc_dir_entry *pde); | |||
| 106 | 106 | ||
| 107 | extern spinlock_t proc_subdir_lock; | 107 | extern spinlock_t proc_subdir_lock; |
| 108 | 108 | ||
| 109 | struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *); | 109 | struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsigned int); |
| 110 | int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir); | 110 | int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir); |
| 111 | unsigned long task_vsize(struct mm_struct *); | 111 | unsigned long task_vsize(struct mm_struct *); |
| 112 | unsigned long task_statm(struct mm_struct *, | 112 | unsigned long task_statm(struct mm_struct *, |
| @@ -132,7 +132,7 @@ int proc_remount(struct super_block *sb, int *flags, char *data); | |||
| 132 | * of the /proc/<pid> subdirectories. | 132 | * of the /proc/<pid> subdirectories. |
| 133 | */ | 133 | */ |
| 134 | int proc_readdir(struct file *, void *, filldir_t); | 134 | int proc_readdir(struct file *, void *, filldir_t); |
| 135 | struct dentry *proc_lookup(struct inode *, struct dentry *, struct nameidata *); | 135 | struct dentry *proc_lookup(struct inode *, struct dentry *, unsigned int); |
| 136 | 136 | ||
| 137 | 137 | ||
| 138 | 138 | ||
diff --git a/fs/proc/namespaces.c b/fs/proc/namespaces.c index 40ceb40f9853..b178ed733c36 100644 --- a/fs/proc/namespaces.c +++ b/fs/proc/namespaces.c | |||
| @@ -140,7 +140,7 @@ const struct file_operations proc_ns_dir_operations = { | |||
| 140 | }; | 140 | }; |
| 141 | 141 | ||
| 142 | static struct dentry *proc_ns_dir_lookup(struct inode *dir, | 142 | static struct dentry *proc_ns_dir_lookup(struct inode *dir, |
| 143 | struct dentry *dentry, struct nameidata *nd) | 143 | struct dentry *dentry, unsigned int flags) |
| 144 | { | 144 | { |
| 145 | struct dentry *error; | 145 | struct dentry *error; |
| 146 | struct task_struct *task = get_proc_task(dir); | 146 | struct task_struct *task = get_proc_task(dir); |
diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c index 06e1cc17caf6..fe72cd073dea 100644 --- a/fs/proc/proc_net.c +++ b/fs/proc/proc_net.c | |||
| @@ -119,7 +119,7 @@ static struct net *get_proc_task_net(struct inode *dir) | |||
| 119 | } | 119 | } |
| 120 | 120 | ||
| 121 | static struct dentry *proc_tgid_net_lookup(struct inode *dir, | 121 | static struct dentry *proc_tgid_net_lookup(struct inode *dir, |
| 122 | struct dentry *dentry, struct nameidata *nd) | 122 | struct dentry *dentry, unsigned int flags) |
| 123 | { | 123 | { |
| 124 | struct dentry *de; | 124 | struct dentry *de; |
| 125 | struct net *net; | 125 | struct net *net; |
diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c index fda69fa39099..dfafeb2b05a0 100644 --- a/fs/proc/proc_sysctl.c +++ b/fs/proc/proc_sysctl.c | |||
| @@ -433,7 +433,7 @@ static struct ctl_table_header *grab_header(struct inode *inode) | |||
| 433 | } | 433 | } |
| 434 | 434 | ||
| 435 | static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry, | 435 | static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry, |
| 436 | struct nameidata *nd) | 436 | unsigned int flags) |
| 437 | { | 437 | { |
| 438 | struct ctl_table_header *head = grab_header(dir); | 438 | struct ctl_table_header *head = grab_header(dir); |
| 439 | struct ctl_table_header *h = NULL; | 439 | struct ctl_table_header *h = NULL; |
diff --git a/fs/proc/root.c b/fs/proc/root.c index 7c30fce037c0..568b20290c75 100644 --- a/fs/proc/root.c +++ b/fs/proc/root.c | |||
| @@ -200,13 +200,12 @@ static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct | |||
| 200 | return 0; | 200 | return 0; |
| 201 | } | 201 | } |
| 202 | 202 | ||
| 203 | static struct dentry *proc_root_lookup(struct inode * dir, struct dentry * dentry, struct nameidata *nd) | 203 | static struct dentry *proc_root_lookup(struct inode * dir, struct dentry * dentry, unsigned int flags) |
| 204 | { | 204 | { |
| 205 | if (!proc_lookup(dir, dentry, nd)) { | 205 | if (!proc_lookup(dir, dentry, flags)) |
| 206 | return NULL; | 206 | return NULL; |
| 207 | } | ||
| 208 | 207 | ||
| 209 | return proc_pid_lookup(dir, dentry, nd); | 208 | return proc_pid_lookup(dir, dentry, flags); |
| 210 | } | 209 | } |
| 211 | 210 | ||
| 212 | static int proc_root_readdir(struct file * filp, | 211 | static int proc_root_readdir(struct file * filp, |
diff --git a/fs/qnx4/namei.c b/fs/qnx4/namei.c index a512c0b30e8e..d024505ba007 100644 --- a/fs/qnx4/namei.c +++ b/fs/qnx4/namei.c | |||
| @@ -95,7 +95,7 @@ static struct buffer_head *qnx4_find_entry(int len, struct inode *dir, | |||
| 95 | return NULL; | 95 | return NULL; |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | struct dentry * qnx4_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 98 | struct dentry * qnx4_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 99 | { | 99 | { |
| 100 | int ino; | 100 | int ino; |
| 101 | struct qnx4_inode_entry *de; | 101 | struct qnx4_inode_entry *de; |
diff --git a/fs/qnx4/qnx4.h b/fs/qnx4/qnx4.h index 244d4620189b..34e2d329c97e 100644 --- a/fs/qnx4/qnx4.h +++ b/fs/qnx4/qnx4.h | |||
| @@ -23,7 +23,7 @@ struct qnx4_inode_info { | |||
| 23 | }; | 23 | }; |
| 24 | 24 | ||
| 25 | extern struct inode *qnx4_iget(struct super_block *, unsigned long); | 25 | extern struct inode *qnx4_iget(struct super_block *, unsigned long); |
| 26 | extern struct dentry *qnx4_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd); | 26 | extern struct dentry *qnx4_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags); |
| 27 | extern unsigned long qnx4_count_free_blocks(struct super_block *sb); | 27 | extern unsigned long qnx4_count_free_blocks(struct super_block *sb); |
| 28 | extern unsigned long qnx4_block_map(struct inode *inode, long iblock); | 28 | extern unsigned long qnx4_block_map(struct inode *inode, long iblock); |
| 29 | 29 | ||
diff --git a/fs/qnx6/namei.c b/fs/qnx6/namei.c index 8a97289e04ad..0561326a94f5 100644 --- a/fs/qnx6/namei.c +++ b/fs/qnx6/namei.c | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | #include "qnx6.h" | 13 | #include "qnx6.h" |
| 14 | 14 | ||
| 15 | struct dentry *qnx6_lookup(struct inode *dir, struct dentry *dentry, | 15 | struct dentry *qnx6_lookup(struct inode *dir, struct dentry *dentry, |
| 16 | struct nameidata *nd) | 16 | unsigned int flags) |
| 17 | { | 17 | { |
| 18 | unsigned ino; | 18 | unsigned ino; |
| 19 | struct page *page; | 19 | struct page *page; |
diff --git a/fs/qnx6/qnx6.h b/fs/qnx6/qnx6.h index 6c5e02a0b6a8..b00fcc960d37 100644 --- a/fs/qnx6/qnx6.h +++ b/fs/qnx6/qnx6.h | |||
| @@ -45,7 +45,7 @@ struct qnx6_inode_info { | |||
| 45 | 45 | ||
| 46 | extern struct inode *qnx6_iget(struct super_block *sb, unsigned ino); | 46 | extern struct inode *qnx6_iget(struct super_block *sb, unsigned ino); |
| 47 | extern struct dentry *qnx6_lookup(struct inode *dir, struct dentry *dentry, | 47 | extern struct dentry *qnx6_lookup(struct inode *dir, struct dentry *dentry, |
| 48 | struct nameidata *nd); | 48 | unsigned int flags); |
| 49 | 49 | ||
| 50 | #ifdef CONFIG_QNX6FS_DEBUG | 50 | #ifdef CONFIG_QNX6FS_DEBUG |
| 51 | extern void qnx6_superblock_debug(struct qnx6_super_block *, | 51 | extern void qnx6_superblock_debug(struct qnx6_super_block *, |
diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c index 84e8a69cee9d..1d9cf248c471 100644 --- a/fs/reiserfs/namei.c +++ b/fs/reiserfs/namei.c | |||
| @@ -322,7 +322,7 @@ static int reiserfs_find_entry(struct inode *dir, const char *name, int namelen, | |||
| 322 | } | 322 | } |
| 323 | 323 | ||
| 324 | static struct dentry *reiserfs_lookup(struct inode *dir, struct dentry *dentry, | 324 | static struct dentry *reiserfs_lookup(struct inode *dir, struct dentry *dentry, |
| 325 | struct nameidata *nd) | 325 | unsigned int flags) |
| 326 | { | 326 | { |
| 327 | int retval; | 327 | int retval; |
| 328 | int lock_depth; | 328 | int lock_depth; |
diff --git a/fs/romfs/super.c b/fs/romfs/super.c index e64f6b5f7ae5..77c5f2173983 100644 --- a/fs/romfs/super.c +++ b/fs/romfs/super.c | |||
| @@ -210,7 +210,7 @@ out: | |||
| 210 | * look up an entry in a directory | 210 | * look up an entry in a directory |
| 211 | */ | 211 | */ |
| 212 | static struct dentry *romfs_lookup(struct inode *dir, struct dentry *dentry, | 212 | static struct dentry *romfs_lookup(struct inode *dir, struct dentry *dentry, |
| 213 | struct nameidata *nd) | 213 | unsigned int flags) |
| 214 | { | 214 | { |
| 215 | unsigned long offset, maxoff; | 215 | unsigned long offset, maxoff; |
| 216 | struct inode *inode; | 216 | struct inode *inode; |
diff --git a/fs/squashfs/namei.c b/fs/squashfs/namei.c index abcc58f3c152..7834a517f7f4 100644 --- a/fs/squashfs/namei.c +++ b/fs/squashfs/namei.c | |||
| @@ -134,7 +134,7 @@ out: | |||
| 134 | 134 | ||
| 135 | 135 | ||
| 136 | static struct dentry *squashfs_lookup(struct inode *dir, struct dentry *dentry, | 136 | static struct dentry *squashfs_lookup(struct inode *dir, struct dentry *dentry, |
| 137 | struct nameidata *nd) | 137 | unsigned int flags) |
| 138 | { | 138 | { |
| 139 | const unsigned char *name = dentry->d_name.name; | 139 | const unsigned char *name = dentry->d_name.name; |
| 140 | int len = dentry->d_name.len; | 140 | int len = dentry->d_name.len; |
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c index 038e74b3af87..efd373e3e0aa 100644 --- a/fs/sysfs/dir.c +++ b/fs/sysfs/dir.c | |||
| @@ -764,7 +764,7 @@ int sysfs_create_dir(struct kobject * kobj) | |||
| 764 | } | 764 | } |
| 765 | 765 | ||
| 766 | static struct dentry * sysfs_lookup(struct inode *dir, struct dentry *dentry, | 766 | static struct dentry * sysfs_lookup(struct inode *dir, struct dentry *dentry, |
| 767 | struct nameidata *nd) | 767 | unsigned int flags) |
| 768 | { | 768 | { |
| 769 | struct dentry *ret = NULL; | 769 | struct dentry *ret = NULL; |
| 770 | struct dentry *parent = dentry->d_parent; | 770 | struct dentry *parent = dentry->d_parent; |
diff --git a/fs/sysv/namei.c b/fs/sysv/namei.c index d7466e293614..a8c4359cd0e1 100644 --- a/fs/sysv/namei.c +++ b/fs/sysv/namei.c | |||
| @@ -43,7 +43,7 @@ const struct dentry_operations sysv_dentry_operations = { | |||
| 43 | .d_hash = sysv_hash, | 43 | .d_hash = sysv_hash, |
| 44 | }; | 44 | }; |
| 45 | 45 | ||
| 46 | static struct dentry *sysv_lookup(struct inode * dir, struct dentry * dentry, struct nameidata *nd) | 46 | static struct dentry *sysv_lookup(struct inode * dir, struct dentry * dentry, unsigned int flags) |
| 47 | { | 47 | { |
| 48 | struct inode * inode = NULL; | 48 | struct inode * inode = NULL; |
| 49 | ino_t ino; | 49 | ino_t ino; |
diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c index a6d42efc76d2..845b2df08317 100644 --- a/fs/ubifs/dir.c +++ b/fs/ubifs/dir.c | |||
| @@ -184,7 +184,7 @@ static int dbg_check_name(const struct ubifs_info *c, | |||
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | static struct dentry *ubifs_lookup(struct inode *dir, struct dentry *dentry, | 186 | static struct dentry *ubifs_lookup(struct inode *dir, struct dentry *dentry, |
| 187 | struct nameidata *nd) | 187 | unsigned int flags) |
| 188 | { | 188 | { |
| 189 | int err; | 189 | int err; |
| 190 | union ubifs_key key; | 190 | union ubifs_key key; |
diff --git a/fs/udf/namei.c b/fs/udf/namei.c index 18024178ac4c..929cc205985a 100644 --- a/fs/udf/namei.c +++ b/fs/udf/namei.c | |||
| @@ -251,7 +251,7 @@ out_ok: | |||
| 251 | } | 251 | } |
| 252 | 252 | ||
| 253 | static struct dentry *udf_lookup(struct inode *dir, struct dentry *dentry, | 253 | static struct dentry *udf_lookup(struct inode *dir, struct dentry *dentry, |
| 254 | struct nameidata *nd) | 254 | unsigned int flags) |
| 255 | { | 255 | { |
| 256 | struct inode *inode = NULL; | 256 | struct inode *inode = NULL; |
| 257 | struct fileIdentDesc cfi; | 257 | struct fileIdentDesc cfi; |
diff --git a/fs/ufs/namei.c b/fs/ufs/namei.c index a2281cadefa1..bc77fa170b9d 100644 --- a/fs/ufs/namei.c +++ b/fs/ufs/namei.c | |||
| @@ -46,7 +46,7 @@ static inline int ufs_add_nondir(struct dentry *dentry, struct inode *inode) | |||
| 46 | return err; | 46 | return err; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | static struct dentry *ufs_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd) | 49 | static struct dentry *ufs_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags) |
| 50 | { | 50 | { |
| 51 | struct inode * inode = NULL; | 51 | struct inode * inode = NULL; |
| 52 | ino_t ino; | 52 | ino_t ino; |
diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index 1a25fd802798..b41cfba14faf 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c | |||
| @@ -197,7 +197,7 @@ STATIC struct dentry * | |||
| 197 | xfs_vn_lookup( | 197 | xfs_vn_lookup( |
| 198 | struct inode *dir, | 198 | struct inode *dir, |
| 199 | struct dentry *dentry, | 199 | struct dentry *dentry, |
| 200 | struct nameidata *nd) | 200 | unsigned int flags) |
| 201 | { | 201 | { |
| 202 | struct xfs_inode *cip; | 202 | struct xfs_inode *cip; |
| 203 | struct xfs_name name; | 203 | struct xfs_name name; |
| @@ -222,7 +222,7 @@ STATIC struct dentry * | |||
| 222 | xfs_vn_ci_lookup( | 222 | xfs_vn_ci_lookup( |
| 223 | struct inode *dir, | 223 | struct inode *dir, |
| 224 | struct dentry *dentry, | 224 | struct dentry *dentry, |
| 225 | struct nameidata *nd) | 225 | unsigned int flags) |
| 226 | { | 226 | { |
| 227 | struct xfs_inode *ip; | 227 | struct xfs_inode *ip; |
| 228 | struct xfs_name xname; | 228 | struct xfs_name xname; |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 17ee20dba86c..7a71709b7fa7 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -1666,7 +1666,7 @@ struct file_operations { | |||
| 1666 | }; | 1666 | }; |
| 1667 | 1667 | ||
| 1668 | struct inode_operations { | 1668 | struct inode_operations { |
| 1669 | struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *); | 1669 | struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int); |
| 1670 | void * (*follow_link) (struct dentry *, struct nameidata *); | 1670 | void * (*follow_link) (struct dentry *, struct nameidata *); |
| 1671 | int (*permission) (struct inode *, int); | 1671 | int (*permission) (struct inode *, int); |
| 1672 | struct posix_acl * (*get_acl)(struct inode *, int); | 1672 | struct posix_acl * (*get_acl)(struct inode *, int); |
| @@ -2571,7 +2571,7 @@ extern int simple_write_end(struct file *file, struct address_space *mapping, | |||
| 2571 | loff_t pos, unsigned len, unsigned copied, | 2571 | loff_t pos, unsigned len, unsigned copied, |
| 2572 | struct page *page, void *fsdata); | 2572 | struct page *page, void *fsdata); |
| 2573 | 2573 | ||
| 2574 | extern struct dentry *simple_lookup(struct inode *, struct dentry *, struct nameidata *); | 2574 | extern struct dentry *simple_lookup(struct inode *, struct dentry *, unsigned int flags); |
| 2575 | extern ssize_t generic_read_dir(struct file *, char __user *, size_t, loff_t *); | 2575 | extern ssize_t generic_read_dir(struct file *, char __user *, size_t, loff_t *); |
| 2576 | extern const struct file_operations simple_dir_operations; | 2576 | extern const struct file_operations simple_dir_operations; |
| 2577 | extern const struct inode_operations simple_dir_inode_operations; | 2577 | extern const struct inode_operations simple_dir_inode_operations; |
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index b303dfc7dce0..0cd1314acdaf 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c | |||
| @@ -822,7 +822,7 @@ EXPORT_SYMBOL_GPL(cgroup_unlock); | |||
| 822 | */ | 822 | */ |
| 823 | 823 | ||
| 824 | static int cgroup_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode); | 824 | static int cgroup_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode); |
| 825 | static struct dentry *cgroup_lookup(struct inode *, struct dentry *, struct nameidata *); | 825 | static struct dentry *cgroup_lookup(struct inode *, struct dentry *, unsigned int); |
| 826 | static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry); | 826 | static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry); |
| 827 | static int cgroup_populate_dir(struct cgroup *cgrp); | 827 | static int cgroup_populate_dir(struct cgroup *cgrp); |
| 828 | static const struct inode_operations cgroup_dir_inode_operations; | 828 | static const struct inode_operations cgroup_dir_inode_operations; |
| @@ -2570,7 +2570,7 @@ static const struct inode_operations cgroup_dir_inode_operations = { | |||
| 2570 | .rename = cgroup_rename, | 2570 | .rename = cgroup_rename, |
| 2571 | }; | 2571 | }; |
| 2572 | 2572 | ||
| 2573 | static struct dentry *cgroup_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 2573 | static struct dentry *cgroup_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) |
| 2574 | { | 2574 | { |
| 2575 | if (dentry->d_name.len > NAME_MAX) | 2575 | if (dentry->d_name.len > NAME_MAX) |
| 2576 | return ERR_PTR(-ENAMETOOLONG); | 2576 | return ERR_PTR(-ENAMETOOLONG); |
