diff options
Diffstat (limited to 'fs/namei.c')
| -rw-r--r-- | fs/namei.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/namei.c b/fs/namei.c index dede0147b3f6..20831c2fbb34 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1066,7 +1066,7 @@ const char *get_link(struct nameidata *nd)  		return ERR_PTR(error);  	nd->last_type = LAST_BIND; -	res = inode->i_link; +	res = READ_ONCE(inode->i_link);  	if (!res) {  		const char * (*get)(struct dentry *, struct inode *,  				struct delayed_call *); @@ -4498,10 +4498,10 @@ out:  		inode_unlock(target);  	dput(new_dentry);  	if (!error) { -		fsnotify_move(old_dir, new_dir, old_name.name, is_dir, +		fsnotify_move(old_dir, new_dir, &old_name.name, is_dir,  			      !(flags & RENAME_EXCHANGE) ? target : NULL, old_dentry);  		if (flags & RENAME_EXCHANGE) { -			fsnotify_move(new_dir, old_dir, old_dentry->d_name.name, +			fsnotify_move(new_dir, old_dir, &old_dentry->d_name,  				      new_is_dir, NULL, new_dentry);  		}  	} @@ -4729,7 +4729,7 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen)  		spin_unlock(&inode->i_lock);  	} -	link = inode->i_link; +	link = READ_ONCE(inode->i_link);  	if (!link) {  		link = inode->i_op->get_link(dentry, inode, &done);  		if (IS_ERR(link))  |