From: Eric Biggers Date: Tue, 1 Jan 2013 05:58:03 +0000 (-0600) Subject: wimfs_link(): Tweak error codes X-Git-Tag: v1.2.3~5 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=a911e31d082f3f6a2ca6e8e56df9bf5c2638cbb7;ds=inline wimfs_link(): Tweak error codes --- diff --git a/src/mount_image.c b/src/mount_image.c index e5d7fb98..d2ce94b2 100644 --- a/src/mount_image.c +++ b/src/mount_image.c @@ -1613,15 +1613,13 @@ static int wimfs_link(const char *to, const char *from) if (!inode) return -errno; - if (inode->i_attributes & FILE_ATTRIBUTE_REPARSE_POINT) - return -EEXIST; - - if (inode->i_attributes & FILE_ATTRIBUTE_DIRECTORY) + if (inode->i_attributes & (FILE_ATTRIBUTE_DIRECTORY | + FILE_ATTRIBUTE_REPARSE_POINT)) return -EPERM; from_dentry_parent = get_parent_dentry(w, from); if (!from_dentry_parent) - return -ENOENT; + return -errno; if (!dentry_is_directory(from_dentry_parent)) return -ENOTDIR; @@ -1779,7 +1777,7 @@ static int wimfs_open(const char *path, struct fuse_file_info *fi) } ret = alloc_wimfs_fd(inode, stream_id, lte, &fd, - wimfs_ctx_readonly(ctx)); + wimfs_ctx_readonly(ctx)); if (ret != 0) return ret;