mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	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>
This commit is contained in:
		
							parent
							
								
									201f956e43
								
							
						
					
					
						commit
						00cd8dd3bf
					
				
					 79 changed files with 115 additions and 114 deletions
				
			
		| 
						 | 
				
			
			@ -38,8 +38,7 @@ d_manage:	no		no		yes (ref-walk)	maybe
 | 
			
		|||
--------------------------- inode_operations --------------------------- 
 | 
			
		||||
prototypes:
 | 
			
		||||
	int (*create) (struct inode *,struct dentry *,umode_t, struct nameidata *);
 | 
			
		||||
	struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameid
 | 
			
		||||
ata *);
 | 
			
		||||
	struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
 | 
			
		||||
	int (*link) (struct dentry *,struct inode *,struct dentry *);
 | 
			
		||||
	int (*unlink) (struct inode *,struct dentry *);
 | 
			
		||||
	int (*symlink) (struct inode *,struct dentry *,const char *);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -434,5 +434,5 @@ d_make_root() drops the reference to inode if dentry allocation fails.
 | 
			
		|||
 | 
			
		||||
--
 | 
			
		||||
[mandatory]
 | 
			
		||||
	The witch is dead!  Well, 1/3 of it, anyway.  ->d_revalidate() does *not*
 | 
			
		||||
take struct nameidata anymore; just the flags.
 | 
			
		||||
	The witch is dead!  Well, 2/3 of it, anyway.  ->d_revalidate() and
 | 
			
		||||
->lookup() do *not* take struct nameidata anymore; just the flags.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -342,7 +342,7 @@ filesystem. As of kernel 2.6.22, the following members are defined:
 | 
			
		|||
 | 
			
		||||
struct inode_operations {
 | 
			
		||||
	int (*create) (struct inode *,struct dentry *, umode_t, struct nameidata *);
 | 
			
		||||
	struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);
 | 
			
		||||
	struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
 | 
			
		||||
	int (*link) (struct dentry *,struct inode *,struct dentry *);
 | 
			
		||||
	int (*unlink) (struct inode *,struct dentry *);
 | 
			
		||||
	int (*symlink) (struct inode *,struct dentry *,const char *);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -144,7 +144,7 @@ extern void v9fs_session_close(struct v9fs_session_info *v9ses);
 | 
			
		|||
extern void v9fs_session_cancel(struct v9fs_session_info *v9ses);
 | 
			
		||||
extern void v9fs_session_begin_cancel(struct v9fs_session_info *v9ses);
 | 
			
		||||
extern struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
			struct nameidata *nameidata);
 | 
			
		||||
			unsigned int flags);
 | 
			
		||||
extern int v9fs_vfs_unlink(struct inode *i, struct dentry *d);
 | 
			
		||||
extern int v9fs_vfs_rmdir(struct inode *i, struct dentry *d);
 | 
			
		||||
extern int v9fs_vfs_rename(struct inode *old_dir, struct dentry *old_dentry,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -785,7 +785,7 @@ static int v9fs_vfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				      struct nameidata *nameidata)
 | 
			
		||||
				      unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct dentry *res;
 | 
			
		||||
	struct super_block *sb;
 | 
			
		||||
| 
						 | 
				
			
			@ -795,8 +795,8 @@ struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		|||
	char *name;
 | 
			
		||||
	int result = 0;
 | 
			
		||||
 | 
			
		||||
	p9_debug(P9_DEBUG_VFS, "dir: %p dentry: (%s) %p nameidata: %p\n",
 | 
			
		||||
		 dir, dentry->d_name.name, dentry, nameidata);
 | 
			
		||||
	p9_debug(P9_DEBUG_VFS, "dir: %p dentry: (%s) %p flags: %x\n",
 | 
			
		||||
		 dir, dentry->d_name.name, dentry, flags);
 | 
			
		||||
 | 
			
		||||
	if (dentry->d_name.len > NAME_MAX)
 | 
			
		||||
		return ERR_PTR(-ENAMETOOLONG);
 | 
			
		||||
| 
						 | 
				
			
			@ -869,7 +869,7 @@ v9fs_vfs_atomic_open(struct inode *dir, struct dentry *dentry,
 | 
			
		|||
	struct dentry *res = NULL;
 | 
			
		||||
 | 
			
		||||
	if (d_unhashed(dentry)) {
 | 
			
		||||
		res = v9fs_vfs_lookup(dir, dentry, NULL);
 | 
			
		||||
		res = v9fs_vfs_lookup(dir, dentry, 0);
 | 
			
		||||
		if (IS_ERR(res))
 | 
			
		||||
			return PTR_ERR(res);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -259,7 +259,7 @@ v9fs_vfs_atomic_open_dotl(struct inode *dir, struct dentry *dentry,
 | 
			
		|||
	struct dentry *res = NULL;
 | 
			
		||||
 | 
			
		||||
	if (d_unhashed(dentry)) {
 | 
			
		||||
		res = v9fs_vfs_lookup(dir, dentry, NULL);
 | 
			
		||||
		res = v9fs_vfs_lookup(dir, dentry, 0);
 | 
			
		||||
		if (IS_ERR(res))
 | 
			
		||||
			return PTR_ERR(res);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -266,7 +266,7 @@ const struct dentry_operations adfs_dentry_operations = {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
static struct dentry *
 | 
			
		||||
adfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
adfs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode *inode = NULL;
 | 
			
		||||
	struct object_info obj;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -153,7 +153,7 @@ extern void	affs_free_bitmap(struct super_block *sb);
 | 
			
		|||
/* namei.c */
 | 
			
		||||
 | 
			
		||||
extern int	affs_hash_name(struct super_block *sb, const u8 *name, unsigned int len);
 | 
			
		||||
extern struct dentry *affs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *);
 | 
			
		||||
extern struct dentry *affs_lookup(struct inode *dir, struct dentry *dentry, unsigned int);
 | 
			
		||||
extern int	affs_unlink(struct inode *dir, struct dentry *dentry);
 | 
			
		||||
extern int	affs_create(struct inode *dir, struct dentry *dentry, umode_t mode, struct nameidata *);
 | 
			
		||||
extern int	affs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -211,7 +211,7 @@ affs_find_entry(struct inode *dir, struct dentry *dentry)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
struct dentry *
 | 
			
		||||
affs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
affs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct super_block *sb = dir->i_sb;
 | 
			
		||||
	struct buffer_head *bh;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,7 +20,7 @@
 | 
			
		|||
#include "internal.h"
 | 
			
		||||
 | 
			
		||||
static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				 struct nameidata *nd);
 | 
			
		||||
				 unsigned int flags);
 | 
			
		||||
static int afs_dir_open(struct inode *inode, struct file *file);
 | 
			
		||||
static int afs_readdir(struct file *file, void *dirent, filldir_t filldir);
 | 
			
		||||
static int afs_d_revalidate(struct dentry *dentry, unsigned int flags);
 | 
			
		||||
| 
						 | 
				
			
			@ -516,7 +516,7 @@ static struct inode *afs_try_auto_mntpt(
 | 
			
		|||
 * look up an entry in a directory
 | 
			
		||||
 */
 | 
			
		||||
static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				 struct nameidata *nd)
 | 
			
		||||
				 unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct afs_vnode *vnode;
 | 
			
		||||
	struct afs_fid fid;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,7 +22,7 @@
 | 
			
		|||
 | 
			
		||||
static struct dentry *afs_mntpt_lookup(struct inode *dir,
 | 
			
		||||
				       struct dentry *dentry,
 | 
			
		||||
				       struct nameidata *nd);
 | 
			
		||||
				       unsigned int flags);
 | 
			
		||||
static int afs_mntpt_open(struct inode *inode, struct file *file);
 | 
			
		||||
static void afs_mntpt_expiry_timed_out(struct work_struct *work);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -104,7 +104,7 @@ int afs_mntpt_check_symlink(struct afs_vnode *vnode, struct key *key)
 | 
			
		|||
 */
 | 
			
		||||
static struct dentry *afs_mntpt_lookup(struct inode *dir,
 | 
			
		||||
				       struct dentry *dentry,
 | 
			
		||||
				       struct nameidata *nd)
 | 
			
		||||
				       unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	_enter("%p,%p{%p{%s},%s}",
 | 
			
		||||
	       dir,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@ static long autofs4_root_ioctl(struct file *,unsigned int,unsigned long);
 | 
			
		|||
static long autofs4_root_compat_ioctl(struct file *,unsigned int,unsigned long);
 | 
			
		||||
#endif
 | 
			
		||||
static int autofs4_dir_open(struct inode *inode, struct file *file);
 | 
			
		||||
static struct dentry *autofs4_lookup(struct inode *,struct dentry *, struct nameidata *);
 | 
			
		||||
static struct dentry *autofs4_lookup(struct inode *,struct dentry *, unsigned int);
 | 
			
		||||
static struct vfsmount *autofs4_d_automount(struct path *);
 | 
			
		||||
static int autofs4_d_manage(struct dentry *, bool);
 | 
			
		||||
static void autofs4_dentry_release(struct dentry *);
 | 
			
		||||
| 
						 | 
				
			
			@ -458,7 +458,7 @@ int autofs4_d_manage(struct dentry *dentry, bool rcu_walk)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
/* Lookups in the root directory */
 | 
			
		||||
static struct dentry *autofs4_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *autofs4_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct autofs_sb_info *sbi;
 | 
			
		||||
	struct autofs_info *ino;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -179,7 +179,7 @@ static int bad_inode_create (struct inode *dir, struct dentry *dentry,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *bad_inode_lookup(struct inode *dir,
 | 
			
		||||
			struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
			struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	return ERR_PTR(-EIO);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,7 @@ static int befs_readdir(struct file *, void *, filldir_t);
 | 
			
		|||
static int befs_get_block(struct inode *, sector_t, struct buffer_head *, int);
 | 
			
		||||
static int befs_readpage(struct file *file, struct page *page);
 | 
			
		||||
static sector_t befs_bmap(struct address_space *mapping, sector_t block);
 | 
			
		||||
static struct dentry *befs_lookup(struct inode *, struct dentry *, struct nameidata *);
 | 
			
		||||
static struct dentry *befs_lookup(struct inode *, struct dentry *, unsigned int);
 | 
			
		||||
static struct inode *befs_iget(struct super_block *, unsigned long);
 | 
			
		||||
static struct inode *befs_alloc_inode(struct super_block *sb);
 | 
			
		||||
static void befs_destroy_inode(struct inode *inode);
 | 
			
		||||
| 
						 | 
				
			
			@ -159,7 +159,7 @@ befs_get_block(struct inode *inode, sector_t block,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *
 | 
			
		||||
befs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
befs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode *inode = NULL;
 | 
			
		||||
	struct super_block *sb = dir->i_sb;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -133,7 +133,7 @@ static int bfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *bfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
						struct nameidata *nd)
 | 
			
		||||
						unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode *inode = NULL;
 | 
			
		||||
	struct buffer_head *bh;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4247,7 +4247,7 @@ static void btrfs_dentry_release(struct dentry *dentry)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *btrfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				   struct nameidata *nd)
 | 
			
		||||
				   unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct dentry *ret;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -576,7 +576,7 @@ static int is_root_ceph_dentry(struct inode *inode, struct dentry *dentry)
 | 
			
		|||
 * the MDS so that it gets our 'caps wanted' value in a single op.
 | 
			
		||||
 */
 | 
			
		||||
static struct dentry *ceph_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				  struct nameidata *nd)
 | 
			
		||||
				  unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct ceph_fs_client *fsc = ceph_sb_to_client(dir->i_sb);
 | 
			
		||||
	struct ceph_mds_client *mdsc = fsc->mdsc;
 | 
			
		||||
| 
						 | 
				
			
			@ -653,7 +653,7 @@ int ceph_atomic_open(struct inode *dir, struct dentry *dentry,
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	if (d_unhashed(dentry)) {
 | 
			
		||||
		res = ceph_lookup(dir, dentry, NULL);
 | 
			
		||||
		res = ceph_lookup(dir, dentry, 0);
 | 
			
		||||
		if (IS_ERR(res))
 | 
			
		||||
			return PTR_ERR(res);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -678,7 +678,7 @@ int ceph_atomic_open(struct inode *dir, struct dentry *dentry,
 | 
			
		|||
 */
 | 
			
		||||
int ceph_handle_notrace_create(struct inode *dir, struct dentry *dentry)
 | 
			
		||||
{
 | 
			
		||||
	struct dentry *result = ceph_lookup(dir, dentry, NULL);
 | 
			
		||||
	struct dentry *result = ceph_lookup(dir, dentry, 0);
 | 
			
		||||
 | 
			
		||||
	if (result && !IS_ERR(result)) {
 | 
			
		||||
		/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,7 +50,7 @@ extern int cifs_atomic_open(struct inode *, struct dentry *,
 | 
			
		|||
			    struct file *, unsigned, umode_t,
 | 
			
		||||
			    int *);
 | 
			
		||||
extern struct dentry *cifs_lookup(struct inode *, struct dentry *,
 | 
			
		||||
				  struct nameidata *);
 | 
			
		||||
				  unsigned int);
 | 
			
		||||
extern int cifs_unlink(struct inode *dir, struct dentry *dentry);
 | 
			
		||||
extern int cifs_hardlink(struct dentry *, struct inode *, struct dentry *);
 | 
			
		||||
extern int cifs_mknod(struct inode *, struct dentry *, umode_t, dev_t);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -401,7 +401,7 @@ cifs_atomic_open(struct inode *inode, struct dentry *direntry,
 | 
			
		|||
	 * in network traffic in the other paths.
 | 
			
		||||
	 */
 | 
			
		||||
	if (!(oflags & O_CREAT)) {
 | 
			
		||||
		struct dentry *res = cifs_lookup(inode, direntry, NULL);
 | 
			
		||||
		struct dentry *res = cifs_lookup(inode, direntry, 0);
 | 
			
		||||
		if (IS_ERR(res))
 | 
			
		||||
			return PTR_ERR(res);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -621,7 +621,7 @@ int cifs_mknod(struct inode *inode, struct dentry *direntry, umode_t mode,
 | 
			
		|||
 | 
			
		||||
struct dentry *
 | 
			
		||||
cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
 | 
			
		||||
	    struct nameidata *nd)
 | 
			
		||||
	    unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	int xid;
 | 
			
		||||
	int rc = 0; /* to get around spurious gcc warning, set to zero here */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,7 +31,7 @@
 | 
			
		|||
 | 
			
		||||
/* dir inode-ops */
 | 
			
		||||
static int coda_create(struct inode *dir, struct dentry *new, umode_t mode, struct nameidata *nd);
 | 
			
		||||
static struct dentry *coda_lookup(struct inode *dir, struct dentry *target, struct nameidata *nd);
 | 
			
		||||
static struct dentry *coda_lookup(struct inode *dir, struct dentry *target, unsigned int flags);
 | 
			
		||||
static int coda_link(struct dentry *old_dentry, struct inode *dir_inode, 
 | 
			
		||||
		     struct dentry *entry);
 | 
			
		||||
static int coda_unlink(struct inode *dir_inode, struct dentry *entry);
 | 
			
		||||
| 
						 | 
				
			
			@ -94,7 +94,7 @@ const struct file_operations coda_dir_operations = {
 | 
			
		|||
 | 
			
		||||
/* inode operations for directories */
 | 
			
		||||
/* access routines: lookup, readlink, permission */
 | 
			
		||||
static struct dentry *coda_lookup(struct inode *dir, struct dentry *entry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *coda_lookup(struct inode *dir, struct dentry *entry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct super_block *sb = dir->i_sb;
 | 
			
		||||
	const char *name = entry->d_name.name;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -442,7 +442,7 @@ static int configfs_attach_attr(struct configfs_dirent * sd, struct dentry * den
 | 
			
		|||
 | 
			
		||||
static struct dentry * configfs_lookup(struct inode *dir,
 | 
			
		||||
				       struct dentry *dentry,
 | 
			
		||||
				       struct nameidata *nd)
 | 
			
		||||
				       unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct configfs_dirent * parent_sd = dentry->d_parent->d_fsdata;
 | 
			
		||||
	struct configfs_dirent * sd;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -417,7 +417,7 @@ static int cramfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
 | 
			
		|||
/*
 | 
			
		||||
 * Lookup and fill in the inode data..
 | 
			
		||||
 */
 | 
			
		||||
static struct dentry * cramfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry * cramfs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	unsigned int offset = 0;
 | 
			
		||||
	struct inode *inode = NULL;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -374,7 +374,7 @@ static int ecryptfs_lookup_interpose(struct dentry *dentry,
 | 
			
		|||
 */
 | 
			
		||||
static struct dentry *ecryptfs_lookup(struct inode *ecryptfs_dir_inode,
 | 
			
		||||
				      struct dentry *ecryptfs_dentry,
 | 
			
		||||
				      struct nameidata *ecryptfs_nd)
 | 
			
		||||
				      unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	char *encrypted_and_encoded_name = NULL;
 | 
			
		||||
	size_t encrypted_and_encoded_name_size;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -129,7 +129,7 @@ extern struct inode *efs_iget(struct super_block *, unsigned long);
 | 
			
		|||
extern efs_block_t efs_map_block(struct inode *, efs_block_t);
 | 
			
		||||
extern int efs_get_block(struct inode *, sector_t, struct buffer_head *, int);
 | 
			
		||||
 | 
			
		||||
extern struct dentry *efs_lookup(struct inode *, struct dentry *, struct nameidata *);
 | 
			
		||||
extern struct dentry *efs_lookup(struct inode *, struct dentry *, unsigned int);
 | 
			
		||||
extern struct dentry *efs_fh_to_dentry(struct super_block *sb, struct fid *fid,
 | 
			
		||||
		int fh_len, int fh_type);
 | 
			
		||||
extern struct dentry *efs_fh_to_parent(struct super_block *sb, struct fid *fid,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,7 +58,8 @@ static efs_ino_t efs_find_entry(struct inode *inode, const char *name, int len)
 | 
			
		|||
	return(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct dentry *efs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) {
 | 
			
		||||
struct dentry *efs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	efs_ino_t inodenum;
 | 
			
		||||
	struct inode *inode = NULL;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,7 +46,7 @@ static inline int exofs_add_nondir(struct dentry *dentry, struct inode *inode)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *exofs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				   struct nameidata *nd)
 | 
			
		||||
				   unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode *inode;
 | 
			
		||||
	ino_t ino;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,7 +55,7 @@ static inline int ext2_add_nondir(struct dentry *dentry, struct inode *inode)
 | 
			
		|||
 * Methods themselves.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *ext2_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode * inode;
 | 
			
		||||
	ino_t ino;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1011,7 +1011,7 @@ static struct buffer_head * ext3_dx_find_entry(struct inode *dir,
 | 
			
		|||
	return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *ext3_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *ext3_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode * inode;
 | 
			
		||||
	struct ext3_dir_entry_2 * de;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1312,7 +1312,7 @@ static struct buffer_head * ext4_dx_find_entry(struct inode *dir, const struct q
 | 
			
		|||
	return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode *inode;
 | 
			
		||||
	struct ext4_dir_entry_2 *de;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -201,7 +201,7 @@ static const struct dentry_operations msdos_dentry_operations = {
 | 
			
		|||
 | 
			
		||||
/***** Get inode using directory and name */
 | 
			
		||||
static struct dentry *msdos_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				   struct nameidata *nd)
 | 
			
		||||
				   unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct super_block *sb = dir->i_sb;
 | 
			
		||||
	struct fat_slot_info sinfo;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -714,7 +714,7 @@ static int vfat_d_anon_disconn(struct dentry *dentry)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *vfat_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				  struct nameidata *nd)
 | 
			
		||||
				  unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct super_block *sb = dir->i_sb;
 | 
			
		||||
	struct fat_slot_info sinfo;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,7 +48,7 @@
 | 
			
		|||
#define VXFS_BLOCK_PER_PAGE(sbp)  ((PAGE_CACHE_SIZE / (sbp)->s_blocksize))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static struct dentry *	vxfs_lookup(struct inode *, struct dentry *, struct nameidata *);
 | 
			
		||||
static struct dentry *	vxfs_lookup(struct inode *, struct dentry *, unsigned int);
 | 
			
		||||
static int		vxfs_readdir(struct file *, void *, filldir_t);
 | 
			
		||||
 | 
			
		||||
const struct inode_operations vxfs_dir_inode_ops = {
 | 
			
		||||
| 
						 | 
				
			
			@ -203,7 +203,7 @@ vxfs_inode_by_name(struct inode *dip, struct dentry *dp)
 | 
			
		|||
 *   in the return pointer.
 | 
			
		||||
 */
 | 
			
		||||
static struct dentry *
 | 
			
		||||
vxfs_lookup(struct inode *dip, struct dentry *dp, struct nameidata *nd)
 | 
			
		||||
vxfs_lookup(struct inode *dip, struct dentry *dp, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode		*ip = NULL;
 | 
			
		||||
	ino_t			ino;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -316,7 +316,7 @@ int fuse_lookup_name(struct super_block *sb, u64 nodeid, struct qstr *name,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *fuse_lookup(struct inode *dir, struct dentry *entry,
 | 
			
		||||
				  struct nameidata *nd)
 | 
			
		||||
				  unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	int err;
 | 
			
		||||
	struct fuse_entry_out outarg;
 | 
			
		||||
| 
						 | 
				
			
			@ -478,7 +478,7 @@ static int fuse_atomic_open(struct inode *dir, struct dentry *entry,
 | 
			
		|||
	struct dentry *res = NULL;
 | 
			
		||||
 | 
			
		||||
	if (d_unhashed(entry)) {
 | 
			
		||||
		res = fuse_lookup(dir, entry, NULL);
 | 
			
		||||
		res = fuse_lookup(dir, entry, 0);
 | 
			
		||||
		if (IS_ERR(res))
 | 
			
		||||
			return PTR_ERR(res);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -775,7 +775,7 @@ static int gfs2_create(struct inode *dir, struct dentry *dentry,
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
static struct dentry *gfs2_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				  struct nameidata *nd)
 | 
			
		||||
				  unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode *inode = gfs2_lookupi(dir, &dentry->d_name, 0);
 | 
			
		||||
	if (inode && !IS_ERR(inode)) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,7 +18,7 @@
 | 
			
		|||
 * hfs_lookup()
 | 
			
		||||
 */
 | 
			
		||||
static struct dentry *hfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				 struct nameidata *nd)
 | 
			
		||||
				 unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	hfs_cat_rec rec;
 | 
			
		||||
	struct hfs_find_data fd;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -489,7 +489,7 @@ int hfs_write_inode(struct inode *inode, struct writeback_control *wbc)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *hfs_file_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				      struct nameidata *nd)
 | 
			
		||||
				      unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode *inode = NULL;
 | 
			
		||||
	hfs_cat_rec rec;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,7 +25,7 @@ static inline void hfsplus_instantiate(struct dentry *dentry,
 | 
			
		|||
 | 
			
		||||
/* Find the entry inside dir named dentry->d_name */
 | 
			
		||||
static struct dentry *hfsplus_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				     struct nameidata *nd)
 | 
			
		||||
				     unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode *inode = NULL;
 | 
			
		||||
	struct hfs_find_data fd;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -168,7 +168,7 @@ const struct dentry_operations hfsplus_dentry_operations = {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
static struct dentry *hfsplus_file_lookup(struct inode *dir,
 | 
			
		||||
		struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
		struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct hfs_find_data fd;
 | 
			
		||||
	struct super_block *sb = dir->i_sb;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -595,7 +595,7 @@ int hostfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
struct dentry *hostfs_lookup(struct inode *ino, struct dentry *dentry,
 | 
			
		||||
			     struct nameidata *nd)
 | 
			
		||||
			     unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode *inode;
 | 
			
		||||
	char *name;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -189,7 +189,7 @@ static int hpfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
 | 
			
		|||
 *	      to tell read_inode to read fnode or not.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
struct dentry *hpfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
struct dentry *hpfs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	const unsigned char *name = dentry->d_name.name;
 | 
			
		||||
	unsigned len = dentry->d_name.len;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -220,7 +220,7 @@ extern const struct dentry_operations hpfs_dentry_operations;
 | 
			
		|||
 | 
			
		||||
/* dir.c */
 | 
			
		||||
 | 
			
		||||
struct dentry *hpfs_lookup(struct inode *, struct dentry *, struct nameidata *);
 | 
			
		||||
struct dentry *hpfs_lookup(struct inode *, struct dentry *, unsigned int);
 | 
			
		||||
extern const struct file_operations hpfs_dir_ops;
 | 
			
		||||
 | 
			
		||||
/* dnode.c */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -138,7 +138,7 @@ static int file_removed(struct dentry *dentry, const char *file)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *hppfs_lookup(struct inode *ino, struct dentry *dentry,
 | 
			
		||||
				   struct nameidata *nd)
 | 
			
		||||
				   unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct dentry *proc_dentry, *parent;
 | 
			
		||||
	struct qstr *name = &dentry->d_name;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,7 +114,7 @@ extern int isofs_name_translate(struct iso_directory_record *, char *, struct in
 | 
			
		|||
int get_joliet_filename(struct iso_directory_record *, unsigned char *, struct inode *);
 | 
			
		||||
int get_acorn_filename(struct iso_directory_record *, char *, struct inode *);
 | 
			
		||||
 | 
			
		||||
extern struct dentry *isofs_lookup(struct inode *, struct dentry *, struct nameidata *);
 | 
			
		||||
extern struct dentry *isofs_lookup(struct inode *, struct dentry *, unsigned int flags);
 | 
			
		||||
extern struct buffer_head *isofs_bread(struct inode *, sector_t);
 | 
			
		||||
extern int isofs_get_blocks(struct inode *, sector_t, struct buffer_head **, unsigned long);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -163,7 +163,7 @@ isofs_find_entry(struct inode *dir, struct dentry *dentry,
 | 
			
		|||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct dentry *isofs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
struct dentry *isofs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	int found;
 | 
			
		||||
	unsigned long uninitialized_var(block);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,7 +27,7 @@ static int jffs2_readdir (struct file *, void *, filldir_t);
 | 
			
		|||
static int jffs2_create (struct inode *,struct dentry *,umode_t,
 | 
			
		||||
			 struct nameidata *);
 | 
			
		||||
static struct dentry *jffs2_lookup (struct inode *,struct dentry *,
 | 
			
		||||
				    struct nameidata *);
 | 
			
		||||
				    unsigned int);
 | 
			
		||||
static int jffs2_link (struct dentry *,struct inode *,struct dentry *);
 | 
			
		||||
static int jffs2_unlink (struct inode *,struct dentry *);
 | 
			
		||||
static int jffs2_symlink (struct inode *,struct dentry *,const char *);
 | 
			
		||||
| 
						 | 
				
			
			@ -74,7 +74,7 @@ const struct inode_operations jffs2_dir_inode_operations =
 | 
			
		|||
   nice and simple
 | 
			
		||||
*/
 | 
			
		||||
static struct dentry *jffs2_lookup(struct inode *dir_i, struct dentry *target,
 | 
			
		||||
				   struct nameidata *nd)
 | 
			
		||||
				   unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct jffs2_inode_info *dir_f;
 | 
			
		||||
	struct jffs2_full_dirent *fd = NULL, *fd_list;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1436,7 +1436,7 @@ static int jfs_mknod(struct inode *dir, struct dentry *dentry,
 | 
			
		|||
	return rc;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *jfs_lookup(struct inode *dip, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *jfs_lookup(struct inode *dip, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct btstack btstack;
 | 
			
		||||
	ino_t inum;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,7 +53,7 @@ static int simple_delete_dentry(const struct dentry *dentry)
 | 
			
		|||
 * Lookup the data. This is trivial - if the dentry didn't already
 | 
			
		||||
 * exist, we know it is negative.  Set d_op to delete negative dentries.
 | 
			
		||||
 */
 | 
			
		||||
struct dentry *simple_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
struct dentry *simple_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	static const struct dentry_operations simple_dentry_operations = {
 | 
			
		||||
		.d_delete = simple_delete_dentry,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -349,7 +349,7 @@ static void logfs_set_name(struct logfs_disk_dentry *dd, struct qstr *name)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *logfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
		struct nameidata *nd)
 | 
			
		||||
		unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct page *page;
 | 
			
		||||
	struct logfs_disk_dentry *dd;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,7 +18,7 @@ static int add_nondir(struct dentry *dentry, struct inode *inode)
 | 
			
		|||
	return err;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *minix_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *minix_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode * inode = NULL;
 | 
			
		||||
	ino_t ino;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1090,7 +1090,7 @@ static struct dentry *lookup_real(struct inode *dir, struct dentry *dentry,
 | 
			
		|||
		return ERR_PTR(-ENOENT);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	old = dir->i_op->lookup(dir, dentry, nd);
 | 
			
		||||
	old = dir->i_op->lookup(dir, dentry, nd ? nd->flags : 0);
 | 
			
		||||
	if (unlikely(old)) {
 | 
			
		||||
		dput(dentry);
 | 
			
		||||
		dentry = old;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,7 +31,7 @@ static void ncp_do_readdir(struct file *, void *, filldir_t,
 | 
			
		|||
static int ncp_readdir(struct file *, void *, filldir_t);
 | 
			
		||||
 | 
			
		||||
static int ncp_create(struct inode *, struct dentry *, umode_t, struct nameidata *);
 | 
			
		||||
static struct dentry *ncp_lookup(struct inode *, struct dentry *, struct nameidata *);
 | 
			
		||||
static struct dentry *ncp_lookup(struct inode *, struct dentry *, unsigned int);
 | 
			
		||||
static int ncp_unlink(struct inode *, struct dentry *);
 | 
			
		||||
static int ncp_mkdir(struct inode *, struct dentry *, umode_t);
 | 
			
		||||
static int ncp_rmdir(struct inode *, struct dentry *);
 | 
			
		||||
| 
						 | 
				
			
			@ -836,7 +836,7 @@ int ncp_conn_logged_in(struct super_block *sb)
 | 
			
		|||
	return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *ncp_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *ncp_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct ncp_server *server = NCP_SERVER(dir);
 | 
			
		||||
	struct inode *inode = NULL;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,7 +46,7 @@
 | 
			
		|||
static int nfs_opendir(struct inode *, struct file *);
 | 
			
		||||
static int nfs_closedir(struct inode *, struct file *);
 | 
			
		||||
static int nfs_readdir(struct file *, void *, filldir_t);
 | 
			
		||||
static struct dentry *nfs_lookup(struct inode *, struct dentry *, struct nameidata *);
 | 
			
		||||
static struct dentry *nfs_lookup(struct inode *, struct dentry *, unsigned int);
 | 
			
		||||
static int nfs_create(struct inode *, struct dentry *, umode_t, struct nameidata *);
 | 
			
		||||
static int nfs_mkdir(struct inode *, struct dentry *, umode_t);
 | 
			
		||||
static int nfs_rmdir(struct inode *, struct dentry *);
 | 
			
		||||
| 
						 | 
				
			
			@ -1270,7 +1270,7 @@ const struct dentry_operations nfs_dentry_operations = {
 | 
			
		|||
	.d_release	= nfs_d_release,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct dentry *res;
 | 
			
		||||
	struct dentry *parent;
 | 
			
		||||
| 
						 | 
				
			
			@ -1291,7 +1291,7 @@ static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, stru
 | 
			
		|||
	 * If we're doing an exclusive create, optimize away the lookup
 | 
			
		||||
	 * but don't hash the dentry.
 | 
			
		||||
	 */
 | 
			
		||||
	if (nd && nfs_is_exclusive_create(dir, nd->flags)) {
 | 
			
		||||
	if (nfs_is_exclusive_create(dir, flags)) {
 | 
			
		||||
		d_instantiate(dentry, NULL);
 | 
			
		||||
		res = NULL;
 | 
			
		||||
		goto out;
 | 
			
		||||
| 
						 | 
				
			
			@ -1482,7 +1482,7 @@ static int nfs_atomic_open(struct inode *dir, struct dentry *dentry,
 | 
			
		|||
	return err;
 | 
			
		||||
 | 
			
		||||
no_open:
 | 
			
		||||
	res = nfs_lookup(dir, dentry, NULL);
 | 
			
		||||
	res = nfs_lookup(dir, dentry, 0);
 | 
			
		||||
	err = PTR_ERR(res);
 | 
			
		||||
	if (IS_ERR(res))
 | 
			
		||||
		goto out;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,7 +63,7 @@ static inline int nilfs_add_nondir(struct dentry *dentry, struct inode *inode)
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
static struct dentry *
 | 
			
		||||
nilfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
nilfs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode *inode;
 | 
			
		||||
	ino_t ino;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -101,7 +101,7 @@
 | 
			
		|||
 * Locking: Caller must hold i_mutex on the directory.
 | 
			
		||||
 */
 | 
			
		||||
static struct dentry *ntfs_lookup(struct inode *dir_ino, struct dentry *dent,
 | 
			
		||||
		struct nameidata *nd)
 | 
			
		||||
		unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	ntfs_volume *vol = NTFS_SB(dir_ino->i_sb);
 | 
			
		||||
	struct inode *dent_inode;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -98,7 +98,7 @@ static int ocfs2_create_symlink_data(struct ocfs2_super *osb,
 | 
			
		|||
#define OCFS2_ORPHAN_NAMELEN ((int)(2 * sizeof(u64)))
 | 
			
		||||
 | 
			
		||||
static struct dentry *ocfs2_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				   struct nameidata *nd)
 | 
			
		||||
				   unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	int status;
 | 
			
		||||
	u64 blkno;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -291,7 +291,7 @@ static int omfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *omfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				  struct nameidata *nd)
 | 
			
		||||
				  unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct buffer_head *bh;
 | 
			
		||||
	struct inode *inode = NULL;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -170,13 +170,13 @@ static const struct file_operations openprom_operations = {
 | 
			
		|||
	.llseek		= generic_file_llseek,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct dentry *openpromfs_lookup(struct inode *, struct dentry *, struct nameidata *);
 | 
			
		||||
static struct dentry *openpromfs_lookup(struct inode *, struct dentry *, unsigned int);
 | 
			
		||||
 | 
			
		||||
static const struct inode_operations openprom_inode_operations = {
 | 
			
		||||
	.lookup		= openpromfs_lookup,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct dentry *openpromfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *openpromfs_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct op_inode_info *ent_oi, *oi = OP_I(dir);
 | 
			
		||||
	struct device_node *dp, *child;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1956,7 +1956,7 @@ static int proc_readfd_common(struct file * filp, void * dirent,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *proc_lookupfd(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				    struct nameidata *nd)
 | 
			
		||||
				    unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	return proc_lookupfd_common(dir, dentry, proc_fd_instantiate);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -2145,7 +2145,7 @@ proc_map_files_instantiate(struct inode *dir, struct dentry *dentry,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *proc_map_files_lookup(struct inode *dir,
 | 
			
		||||
		struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
		struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	unsigned long vm_start, vm_end;
 | 
			
		||||
	struct vm_area_struct *vma;
 | 
			
		||||
| 
						 | 
				
			
			@ -2380,7 +2380,7 @@ static struct dentry *proc_fdinfo_instantiate(struct inode *dir,
 | 
			
		|||
 | 
			
		||||
static struct dentry *proc_lookupfdinfo(struct inode *dir,
 | 
			
		||||
					struct dentry *dentry,
 | 
			
		||||
					struct nameidata *nd)
 | 
			
		||||
					unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	return proc_lookupfd_common(dir, dentry, proc_fdinfo_instantiate);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -2630,7 +2630,7 @@ static const struct file_operations proc_attr_dir_operations = {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
static struct dentry *proc_attr_dir_lookup(struct inode *dir,
 | 
			
		||||
				struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
				struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	return proc_pident_lookup(dir, dentry,
 | 
			
		||||
				  attr_dir_stuff, ARRAY_SIZE(attr_dir_stuff));
 | 
			
		||||
| 
						 | 
				
			
			@ -3114,7 +3114,8 @@ static const struct file_operations proc_tgid_base_operations = {
 | 
			
		|||
	.llseek		= default_llseek,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct dentry *proc_tgid_base_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd){
 | 
			
		||||
static struct dentry *proc_tgid_base_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	return proc_pident_lookup(dir, dentry,
 | 
			
		||||
				  tgid_base_stuff, ARRAY_SIZE(tgid_base_stuff));
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -3243,7 +3244,7 @@ static struct dentry *proc_pid_instantiate(struct inode *dir,
 | 
			
		|||
	return error;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *nd)
 | 
			
		||||
struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct dentry *result;
 | 
			
		||||
	struct task_struct *task;
 | 
			
		||||
| 
						 | 
				
			
			@ -3470,7 +3471,8 @@ static int proc_tid_base_readdir(struct file * filp,
 | 
			
		|||
				   tid_base_stuff,ARRAY_SIZE(tid_base_stuff));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *proc_tid_base_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd){
 | 
			
		||||
static struct dentry *proc_tid_base_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	return proc_pident_lookup(dir, dentry,
 | 
			
		||||
				  tid_base_stuff, ARRAY_SIZE(tid_base_stuff));
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -3514,7 +3516,7 @@ static struct dentry *proc_task_instantiate(struct inode *dir,
 | 
			
		|||
	return error;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *proc_task_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *proc_task_lookup(struct inode *dir, struct dentry * dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct dentry *result = ERR_PTR(-ENOENT);
 | 
			
		||||
	struct task_struct *task;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -446,7 +446,7 @@ struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
		struct nameidata *nd)
 | 
			
		||||
		unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	return proc_lookup_de(PDE(dir), dir, dentry);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -106,7 +106,7 @@ void pde_users_dec(struct proc_dir_entry *pde);
 | 
			
		|||
 | 
			
		||||
extern spinlock_t proc_subdir_lock;
 | 
			
		||||
 | 
			
		||||
struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *);
 | 
			
		||||
struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsigned int);
 | 
			
		||||
int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir);
 | 
			
		||||
unsigned long task_vsize(struct mm_struct *);
 | 
			
		||||
unsigned long task_statm(struct mm_struct *,
 | 
			
		||||
| 
						 | 
				
			
			@ -132,7 +132,7 @@ int proc_remount(struct super_block *sb, int *flags, char *data);
 | 
			
		|||
 * of the /proc/<pid> subdirectories.
 | 
			
		||||
 */
 | 
			
		||||
int proc_readdir(struct file *, void *, filldir_t);
 | 
			
		||||
struct dentry *proc_lookup(struct inode *, struct dentry *, struct nameidata *);
 | 
			
		||||
struct dentry *proc_lookup(struct inode *, struct dentry *, unsigned int);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -140,7 +140,7 @@ const struct file_operations proc_ns_dir_operations = {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
static struct dentry *proc_ns_dir_lookup(struct inode *dir,
 | 
			
		||||
				struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
				struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct dentry *error;
 | 
			
		||||
	struct task_struct *task = get_proc_task(dir);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -119,7 +119,7 @@ static struct net *get_proc_task_net(struct inode *dir)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *proc_tgid_net_lookup(struct inode *dir,
 | 
			
		||||
		struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
		struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct dentry *de;
 | 
			
		||||
	struct net *net;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -433,7 +433,7 @@ static struct ctl_table_header *grab_header(struct inode *inode)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
					struct nameidata *nd)
 | 
			
		||||
					unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct ctl_table_header *head = grab_header(dir);
 | 
			
		||||
	struct ctl_table_header *h = NULL;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -200,13 +200,12 @@ static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
 | 
			
		|||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *proc_root_lookup(struct inode * dir, struct dentry * dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *proc_root_lookup(struct inode * dir, struct dentry * dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	if (!proc_lookup(dir, dentry, nd)) {
 | 
			
		||||
	if (!proc_lookup(dir, dentry, flags))
 | 
			
		||||
		return NULL;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	return proc_pid_lookup(dir, dentry, nd);
 | 
			
		||||
	return proc_pid_lookup(dir, dentry, flags);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int proc_root_readdir(struct file * filp,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -95,7 +95,7 @@ static struct buffer_head *qnx4_find_entry(int len, struct inode *dir,
 | 
			
		|||
	return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct dentry * qnx4_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
struct dentry * qnx4_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	int ino;
 | 
			
		||||
	struct qnx4_inode_entry *de;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,7 +23,7 @@ struct qnx4_inode_info {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
extern struct inode *qnx4_iget(struct super_block *, unsigned long);
 | 
			
		||||
extern struct dentry *qnx4_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd);
 | 
			
		||||
extern struct dentry *qnx4_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags);
 | 
			
		||||
extern unsigned long qnx4_count_free_blocks(struct super_block *sb);
 | 
			
		||||
extern unsigned long qnx4_block_map(struct inode *inode, long iblock);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,7 +13,7 @@
 | 
			
		|||
#include "qnx6.h"
 | 
			
		||||
 | 
			
		||||
struct dentry *qnx6_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				struct nameidata *nd)
 | 
			
		||||
				unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	unsigned ino;
 | 
			
		||||
	struct page *page;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,7 +45,7 @@ struct qnx6_inode_info {
 | 
			
		|||
 | 
			
		||||
extern struct inode *qnx6_iget(struct super_block *sb, unsigned ino);
 | 
			
		||||
extern struct dentry *qnx6_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
					struct nameidata *nd);
 | 
			
		||||
					unsigned int flags);
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_QNX6FS_DEBUG
 | 
			
		||||
extern void qnx6_superblock_debug(struct qnx6_super_block *,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -322,7 +322,7 @@ static int reiserfs_find_entry(struct inode *dir, const char *name, int namelen,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *reiserfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				      struct nameidata *nd)
 | 
			
		||||
				      unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	int retval;
 | 
			
		||||
	int lock_depth;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -210,7 +210,7 @@ static int romfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
 | 
			
		|||
 * look up an entry in a directory
 | 
			
		||||
 */
 | 
			
		||||
static struct dentry *romfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				   struct nameidata *nd)
 | 
			
		||||
				   unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	unsigned long offset, maxoff;
 | 
			
		||||
	struct inode *inode;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -134,7 +134,7 @@ static int get_dir_index_using_name(struct super_block *sb,
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
static struct dentry *squashfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				 struct nameidata *nd)
 | 
			
		||||
				 unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	const unsigned char *name = dentry->d_name.name;
 | 
			
		||||
	int len = dentry->d_name.len;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -764,7 +764,7 @@ int sysfs_create_dir(struct kobject * kobj)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry * sysfs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				struct nameidata *nd)
 | 
			
		||||
				unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct dentry *ret = NULL;
 | 
			
		||||
	struct dentry *parent = dentry->d_parent;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,7 @@ const struct dentry_operations sysv_dentry_operations = {
 | 
			
		|||
	.d_hash		= sysv_hash,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct dentry *sysv_lookup(struct inode * dir, struct dentry * dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *sysv_lookup(struct inode * dir, struct dentry * dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode * inode = NULL;
 | 
			
		||||
	ino_t ino;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -184,7 +184,7 @@ static int dbg_check_name(const struct ubifs_info *c,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *ubifs_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				   struct nameidata *nd)
 | 
			
		||||
				   unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	int err;
 | 
			
		||||
	union ubifs_key key;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -251,7 +251,7 @@ static struct fileIdentDesc *udf_find_entry(struct inode *dir,
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *udf_lookup(struct inode *dir, struct dentry *dentry,
 | 
			
		||||
				 struct nameidata *nd)
 | 
			
		||||
				 unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode *inode = NULL;
 | 
			
		||||
	struct fileIdentDesc cfi;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,7 +46,7 @@ static inline int ufs_add_nondir(struct dentry *dentry, struct inode *inode)
 | 
			
		|||
	return err;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct dentry *ufs_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *ufs_lookup(struct inode * dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct inode * inode = NULL;
 | 
			
		||||
	ino_t ino;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -197,7 +197,7 @@ STATIC struct dentry *
 | 
			
		|||
xfs_vn_lookup(
 | 
			
		||||
	struct inode	*dir,
 | 
			
		||||
	struct dentry	*dentry,
 | 
			
		||||
	struct nameidata *nd)
 | 
			
		||||
	unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct xfs_inode *cip;
 | 
			
		||||
	struct xfs_name	name;
 | 
			
		||||
| 
						 | 
				
			
			@ -222,7 +222,7 @@ STATIC struct dentry *
 | 
			
		|||
xfs_vn_ci_lookup(
 | 
			
		||||
	struct inode	*dir,
 | 
			
		||||
	struct dentry	*dentry,
 | 
			
		||||
	struct nameidata *nd)
 | 
			
		||||
	unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	struct xfs_inode *ip;
 | 
			
		||||
	struct xfs_name	xname;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1666,7 +1666,7 @@ struct file_operations {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
struct inode_operations {
 | 
			
		||||
	struct dentry * (*lookup) (struct inode *,struct dentry *, struct nameidata *);
 | 
			
		||||
	struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
 | 
			
		||||
	void * (*follow_link) (struct dentry *, struct nameidata *);
 | 
			
		||||
	int (*permission) (struct inode *, int);
 | 
			
		||||
	struct posix_acl * (*get_acl)(struct inode *, int);
 | 
			
		||||
| 
						 | 
				
			
			@ -2571,7 +2571,7 @@ extern int simple_write_end(struct file *file, struct address_space *mapping,
 | 
			
		|||
			loff_t pos, unsigned len, unsigned copied,
 | 
			
		||||
			struct page *page, void *fsdata);
 | 
			
		||||
 | 
			
		||||
extern struct dentry *simple_lookup(struct inode *, struct dentry *, struct nameidata *);
 | 
			
		||||
extern struct dentry *simple_lookup(struct inode *, struct dentry *, unsigned int flags);
 | 
			
		||||
extern ssize_t generic_read_dir(struct file *, char __user *, size_t, loff_t *);
 | 
			
		||||
extern const struct file_operations simple_dir_operations;
 | 
			
		||||
extern const struct inode_operations simple_dir_inode_operations;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -822,7 +822,7 @@ EXPORT_SYMBOL_GPL(cgroup_unlock);
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
static int cgroup_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode);
 | 
			
		||||
static struct dentry *cgroup_lookup(struct inode *, struct dentry *, struct nameidata *);
 | 
			
		||||
static struct dentry *cgroup_lookup(struct inode *, struct dentry *, unsigned int);
 | 
			
		||||
static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry);
 | 
			
		||||
static int cgroup_populate_dir(struct cgroup *cgrp);
 | 
			
		||||
static const struct inode_operations cgroup_dir_inode_operations;
 | 
			
		||||
| 
						 | 
				
			
			@ -2570,7 +2570,7 @@ static const struct inode_operations cgroup_dir_inode_operations = {
 | 
			
		|||
	.rename = cgroup_rename,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct dentry *cgroup_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd)
 | 
			
		||||
static struct dentry *cgroup_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
 | 
			
		||||
{
 | 
			
		||||
	if (dentry->d_name.len > NAME_MAX)
 | 
			
		||||
		return ERR_PTR(-ENAMETOOLONG);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue