Function report |
Source Code:fs\namei.c |
Create Date:2022-07-28 20:05:18 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Hardlinks are often used in delicate situations. We avoid* security-related surprises by not following symlinks on the* newname. --KAB* We don't follow them on the oldname either to be compatible* with linux 2.0, and to avoid hard-linking to directories
Proto:int do_linkat(int olddfd, const char __user *oldname, int newdfd, const char __user *newname, int flags)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
int | olddfd | |
const char __user * | oldname | |
int | newdfd | |
const char __user * | newname | |
int | flags |
4213 | struct inode * delegated_inode = NULL |
4214 | how = 0 |
4217 | If (flags & ~(Follow symbolic links. | Allow empty relative pathname )) != 0 Then Return -EINVAL |
4224 | If flags & Allow empty relative pathname Then |
4225 | If Not Check operation authority Then Return -ENOENT |
4230 | If flags & Follow symbolic links. Then how |= llow links at the end |
4232 | retry : |
4237 | new_dentry = user_path_create(newdfd, newname, & new_path, (how & ll ->d_revalidate() to trust no cache )) |
4239 | error = PTR_ERR(new_dentry) |
4240 | If IS_ERR(new_dentry) Then Go to out |
4247 | If Value for the false possibility is greater at compile time(error) Then Go to out_dput |
4249 | error = security_path_link(dentry, & new_path, new_dentry) |
4253 | out_dput : |
4254 | done_path_create( & new_path, new_dentry) |
4255 | If delegated_inode Then |
4256 | error = break_deleg_wait( & delegated_inode) |
4257 | If Not error Then |
4265 | Go to retry |
4267 | out : |
4270 | Return error |
Name | Describe |
---|---|
SYSCALL_DEFINE5 | |
SYSCALL_DEFINE2 | |
ksys_link |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |