cifs: fix renaming one hardlink on top of another

cifs: fix renaming one hardlink on top of another

POSIX says that renaming one hardlink on top of another to the same
inode is a no-op. We had the logic mostly right, but forgot to clear
the return code.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
Jeff Layton 2008-11-03 14:05:08 -05:00 коммит произвёл Steve French
Родитель 61de800d33
Коммит ae6884a9da
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -1361,9 +1361,11 @@ int cifs_rename(struct inode *source_dir, struct dentry *source_dentry,
CIFS_MOUNT_MAP_SPECIAL_CHR); CIFS_MOUNT_MAP_SPECIAL_CHR);
if (tmprc == 0 && (info_buf_source->UniqueId == if (tmprc == 0 && (info_buf_source->UniqueId ==
info_buf_target->UniqueId)) info_buf_target->UniqueId)) {
/* same file, POSIX says that this is a noop */ /* same file, POSIX says that this is a noop */
rc = 0;
goto cifs_rename_exit; goto cifs_rename_exit;
}
} /* else ... BB we could add the same check for Windows by } /* else ... BB we could add the same check for Windows by
checking the UniqueId via FILE_INTERNAL_INFO */ checking the UniqueId via FILE_INTERNAL_INFO */