mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
namei.c: move EXPORT_SYMBOL to corresponding definitions
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
0018d8bfc4
commit
4d35950734
55
fs/namei.c
55
fs/namei.c
@ -358,6 +358,7 @@ int generic_permission(struct inode *inode, int mask)
|
||||
|
||||
return -EACCES;
|
||||
}
|
||||
EXPORT_SYMBOL(generic_permission);
|
||||
|
||||
/*
|
||||
* We _really_ want to just do "generic_permission()" without
|
||||
@ -455,6 +456,7 @@ int inode_permission(struct inode *inode, int mask)
|
||||
return retval;
|
||||
return __inode_permission(inode, mask);
|
||||
}
|
||||
EXPORT_SYMBOL(inode_permission);
|
||||
|
||||
/**
|
||||
* path_get - get a reference to a path
|
||||
@ -924,6 +926,7 @@ int follow_up(struct path *path)
|
||||
path->mnt = &parent->mnt;
|
||||
return 1;
|
||||
}
|
||||
EXPORT_SYMBOL(follow_up);
|
||||
|
||||
/*
|
||||
* Perform an automount
|
||||
@ -1085,6 +1088,7 @@ int follow_down_one(struct path *path)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(follow_down_one);
|
||||
|
||||
static inline bool managed_dentry_might_block(struct dentry *dentry)
|
||||
{
|
||||
@ -1223,6 +1227,7 @@ int follow_down(struct path *path)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(follow_down);
|
||||
|
||||
/*
|
||||
* Skip to top of mountpoint pile in refwalk mode for follow_dotdot()
|
||||
@ -2025,6 +2030,7 @@ int kern_path(const char *name, unsigned int flags, struct path *path)
|
||||
*path = nd.path;
|
||||
return res;
|
||||
}
|
||||
EXPORT_SYMBOL(kern_path);
|
||||
|
||||
/**
|
||||
* vfs_path_lookup - lookup a file path relative to a dentry-vfsmount pair
|
||||
@ -2049,6 +2055,7 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt,
|
||||
*path = nd.path;
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL(vfs_path_lookup);
|
||||
|
||||
/*
|
||||
* Restricted form of lookup. Doesn't follow links, single-component only,
|
||||
@ -2111,6 +2118,7 @@ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len)
|
||||
|
||||
return __lookup_hash(&this, base, 0);
|
||||
}
|
||||
EXPORT_SYMBOL(lookup_one_len);
|
||||
|
||||
int user_path_at_empty(int dfd, const char __user *name, unsigned flags,
|
||||
struct path *path, int *empty)
|
||||
@ -2135,6 +2143,7 @@ int user_path_at(int dfd, const char __user *name, unsigned flags,
|
||||
{
|
||||
return user_path_at_empty(dfd, name, flags, path, NULL);
|
||||
}
|
||||
EXPORT_SYMBOL(user_path_at);
|
||||
|
||||
/*
|
||||
* NB: most callers don't do anything directly with the reference to the
|
||||
@ -2477,6 +2486,7 @@ struct dentry *lock_rename(struct dentry *p1, struct dentry *p2)
|
||||
mutex_lock_nested(&p2->d_inode->i_mutex, I_MUTEX_CHILD);
|
||||
return NULL;
|
||||
}
|
||||
EXPORT_SYMBOL(lock_rename);
|
||||
|
||||
void unlock_rename(struct dentry *p1, struct dentry *p2)
|
||||
{
|
||||
@ -2486,6 +2496,7 @@ void unlock_rename(struct dentry *p1, struct dentry *p2)
|
||||
mutex_unlock(&p1->d_inode->i_sb->s_vfs_rename_mutex);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(unlock_rename);
|
||||
|
||||
int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
|
||||
bool want_excl)
|
||||
@ -2506,6 +2517,7 @@ int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
|
||||
fsnotify_create(dir, dentry);
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL(vfs_create);
|
||||
|
||||
static int may_open(struct path *path, int acc_mode, int flag)
|
||||
{
|
||||
@ -3376,6 +3388,7 @@ int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
|
||||
fsnotify_create(dir, dentry);
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL(vfs_mknod);
|
||||
|
||||
static int may_mknod(umode_t mode)
|
||||
{
|
||||
@ -3465,6 +3478,7 @@ int vfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
|
||||
fsnotify_mkdir(dir, dentry);
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL(vfs_mkdir);
|
||||
|
||||
SYSCALL_DEFINE3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode)
|
||||
{
|
||||
@ -3519,6 +3533,7 @@ void dentry_unhash(struct dentry *dentry)
|
||||
__d_drop(dentry);
|
||||
spin_unlock(&dentry->d_lock);
|
||||
}
|
||||
EXPORT_SYMBOL(dentry_unhash);
|
||||
|
||||
int vfs_rmdir(struct inode *dir, struct dentry *dentry)
|
||||
{
|
||||
@ -3556,6 +3571,7 @@ out:
|
||||
d_delete(dentry);
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL(vfs_rmdir);
|
||||
|
||||
static long do_rmdir(int dfd, const char __user *pathname)
|
||||
{
|
||||
@ -3673,6 +3689,7 @@ out:
|
||||
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL(vfs_unlink);
|
||||
|
||||
/*
|
||||
* Make sure that the actual truncation of the file will occur outside its
|
||||
@ -3786,6 +3803,7 @@ int vfs_symlink(struct inode *dir, struct dentry *dentry, const char *oldname)
|
||||
fsnotify_create(dir, dentry);
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL(vfs_symlink);
|
||||
|
||||
SYSCALL_DEFINE3(symlinkat, const char __user *, oldname,
|
||||
int, newdfd, const char __user *, newname)
|
||||
@ -3894,6 +3912,7 @@ int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_de
|
||||
fsnotify_link(dir, inode, new_dentry);
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL(vfs_link);
|
||||
|
||||
/*
|
||||
* Hardlinks are often used in delicate situations. We avoid
|
||||
@ -4156,6 +4175,7 @@ int vfs_rename(struct inode *old_dir, struct dentry *old_dentry,
|
||||
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL(vfs_rename);
|
||||
|
||||
SYSCALL_DEFINE4(renameat, int, olddfd, const char __user *, oldname,
|
||||
int, newdfd, const char __user *, newname)
|
||||
@ -4293,6 +4313,7 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const c
|
||||
out:
|
||||
return len;
|
||||
}
|
||||
EXPORT_SYMBOL(vfs_readlink);
|
||||
|
||||
/*
|
||||
* A helper for ->readlink(). This should be used *ONLY* for symlinks that
|
||||
@ -4315,6 +4336,7 @@ int generic_readlink(struct dentry *dentry, char __user *buffer, int buflen)
|
||||
dentry->d_inode->i_op->put_link(dentry, &nd, cookie);
|
||||
return res;
|
||||
}
|
||||
EXPORT_SYMBOL(generic_readlink);
|
||||
|
||||
/* get the link contents into pagecache */
|
||||
static char *page_getlink(struct dentry * dentry, struct page **ppage)
|
||||
@ -4342,6 +4364,7 @@ int page_readlink(struct dentry *dentry, char __user *buffer, int buflen)
|
||||
}
|
||||
return res;
|
||||
}
|
||||
EXPORT_SYMBOL(page_readlink);
|
||||
|
||||
void *page_follow_link_light(struct dentry *dentry, struct nameidata *nd)
|
||||
{
|
||||
@ -4349,6 +4372,7 @@ void *page_follow_link_light(struct dentry *dentry, struct nameidata *nd)
|
||||
nd_set_link(nd, page_getlink(dentry, &page));
|
||||
return page;
|
||||
}
|
||||
EXPORT_SYMBOL(page_follow_link_light);
|
||||
|
||||
void page_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
|
||||
{
|
||||
@ -4359,6 +4383,7 @@ void page_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
|
||||
page_cache_release(page);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(page_put_link);
|
||||
|
||||
/*
|
||||
* The nofs argument instructs pagecache_write_begin to pass AOP_FLAG_NOFS
|
||||
@ -4396,44 +4421,18 @@ retry:
|
||||
fail:
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL(__page_symlink);
|
||||
|
||||
int page_symlink(struct inode *inode, const char *symname, int len)
|
||||
{
|
||||
return __page_symlink(inode, symname, len,
|
||||
!(mapping_gfp_mask(inode->i_mapping) & __GFP_FS));
|
||||
}
|
||||
EXPORT_SYMBOL(page_symlink);
|
||||
|
||||
const struct inode_operations page_symlink_inode_operations = {
|
||||
.readlink = generic_readlink,
|
||||
.follow_link = page_follow_link_light,
|
||||
.put_link = page_put_link,
|
||||
};
|
||||
|
||||
EXPORT_SYMBOL(user_path_at);
|
||||
EXPORT_SYMBOL(follow_down_one);
|
||||
EXPORT_SYMBOL(follow_down);
|
||||
EXPORT_SYMBOL(follow_up);
|
||||
EXPORT_SYMBOL(lock_rename);
|
||||
EXPORT_SYMBOL(lookup_one_len);
|
||||
EXPORT_SYMBOL(page_follow_link_light);
|
||||
EXPORT_SYMBOL(page_put_link);
|
||||
EXPORT_SYMBOL(page_readlink);
|
||||
EXPORT_SYMBOL(__page_symlink);
|
||||
EXPORT_SYMBOL(page_symlink);
|
||||
EXPORT_SYMBOL(page_symlink_inode_operations);
|
||||
EXPORT_SYMBOL(kern_path);
|
||||
EXPORT_SYMBOL(vfs_path_lookup);
|
||||
EXPORT_SYMBOL(inode_permission);
|
||||
EXPORT_SYMBOL(unlock_rename);
|
||||
EXPORT_SYMBOL(vfs_create);
|
||||
EXPORT_SYMBOL(vfs_link);
|
||||
EXPORT_SYMBOL(vfs_mkdir);
|
||||
EXPORT_SYMBOL(vfs_mknod);
|
||||
EXPORT_SYMBOL(generic_permission);
|
||||
EXPORT_SYMBOL(vfs_readlink);
|
||||
EXPORT_SYMBOL(vfs_rename);
|
||||
EXPORT_SYMBOL(vfs_rmdir);
|
||||
EXPORT_SYMBOL(vfs_symlink);
|
||||
EXPORT_SYMBOL(vfs_unlink);
|
||||
EXPORT_SYMBOL(dentry_unhash);
|
||||
EXPORT_SYMBOL(generic_readlink);
|
||||
|
Loading…
Reference in New Issue
Block a user