提交 123df294 编写于 作者: A Al Viro

Lose the new_name argument of fsnotify_move()

it's always new_dentry->d_name.name
Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 6339204e
...@@ -496,7 +496,7 @@ struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_dentry, ...@@ -496,7 +496,7 @@ struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_dentry,
} }
d_move(old_dentry, dentry); d_move(old_dentry, dentry);
fsnotify_move(old_dir->d_inode, new_dir->d_inode, old_name, fsnotify_move(old_dir->d_inode, new_dir->d_inode, old_name,
old_dentry->d_name.name, S_ISDIR(old_dentry->d_inode->i_mode), S_ISDIR(old_dentry->d_inode->i_mode),
NULL, old_dentry); NULL, old_dentry);
fsnotify_oldname_free(old_name); fsnotify_oldname_free(old_name);
unlock_rename(new_dir, old_dir); unlock_rename(new_dir, old_dir);
......
...@@ -2661,11 +2661,9 @@ int vfs_rename(struct inode *old_dir, struct dentry *old_dentry, ...@@ -2661,11 +2661,9 @@ int vfs_rename(struct inode *old_dir, struct dentry *old_dentry,
error = vfs_rename_dir(old_dir,old_dentry,new_dir,new_dentry); error = vfs_rename_dir(old_dir,old_dentry,new_dir,new_dentry);
else else
error = vfs_rename_other(old_dir,old_dentry,new_dir,new_dentry); error = vfs_rename_other(old_dir,old_dentry,new_dir,new_dentry);
if (!error) { if (!error)
const char *new_name = old_dentry->d_name.name; fsnotify_move(old_dir, new_dir, old_name, is_dir,
fsnotify_move(old_dir, new_dir, old_name, new_name, is_dir,
new_dentry->d_inode, old_dentry); new_dentry->d_inode, old_dentry);
}
fsnotify_oldname_free(old_name); fsnotify_oldname_free(old_name);
return error; return error;
......
...@@ -65,7 +65,7 @@ static inline void fsnotify_link_count(struct inode *inode) ...@@ -65,7 +65,7 @@ static inline void fsnotify_link_count(struct inode *inode)
* fsnotify_move - file old_name at old_dir was moved to new_name at new_dir * fsnotify_move - file old_name at old_dir was moved to new_name at new_dir
*/ */
static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir, static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir,
const char *old_name, const char *new_name, const char *old_name,
int isdir, struct inode *target, struct dentry *moved) int isdir, struct inode *target, struct dentry *moved)
{ {
struct inode *source = moved->d_inode; struct inode *source = moved->d_inode;
...@@ -73,6 +73,7 @@ static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir, ...@@ -73,6 +73,7 @@ static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir,
u32 fs_cookie = fsnotify_get_cookie(); u32 fs_cookie = fsnotify_get_cookie();
__u32 old_dir_mask = (FS_EVENT_ON_CHILD | FS_MOVED_FROM); __u32 old_dir_mask = (FS_EVENT_ON_CHILD | FS_MOVED_FROM);
__u32 new_dir_mask = (FS_EVENT_ON_CHILD | FS_MOVED_TO); __u32 new_dir_mask = (FS_EVENT_ON_CHILD | FS_MOVED_TO);
const char *new_name = moved->d_name.name;
if (old_dir == new_dir) if (old_dir == new_dir)
old_dir_mask |= FS_DN_RENAME; old_dir_mask |= FS_DN_RENAME;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册