aboutsummaryrefslogtreecommitdiffstats
path: root/tools/hv
diff options
context:
space:
mode:
authorK. Y. Srinivasan <kys@microsoft.com>2014-04-09 20:24:16 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-04-16 17:10:36 -0400
commit314672a2c2780212fb770bb02d2fffaa1019823f (patch)
tree779a9ba8840cadcd12fe0c6503b054df61d13aa5 /tools/hv
parent177581faf2a5aa71898d223bc47dbc882eeb1488 (diff)
Tools: hv: Handle the case when the target file exists correctly
Return the appropriate error code and handle the case when the target file exists correctly. This fixes a bug. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Cc: <stable@vger.kernel.org> [3.14] Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/hv')
-rw-r--r--tools/hv/hv_fcopy_daemon.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/hv/hv_fcopy_daemon.c b/tools/hv/hv_fcopy_daemon.c
index 4ecc4fd0bc1b..fba1c75aa484 100644
--- a/tools/hv/hv_fcopy_daemon.c
+++ b/tools/hv/hv_fcopy_daemon.c
@@ -82,8 +82,10 @@ static int hv_start_fcopy(struct hv_start_fcopy *smsg)
82 82
83 if (!access(target_fname, F_OK)) { 83 if (!access(target_fname, F_OK)) {
84 syslog(LOG_INFO, "File: %s exists", target_fname); 84 syslog(LOG_INFO, "File: %s exists", target_fname);
85 if (!smsg->copy_flags & OVER_WRITE) 85 if (!(smsg->copy_flags & OVER_WRITE)) {
86 error = HV_ERROR_ALREADY_EXISTS;
86 goto done; 87 goto done;
88 }
87 } 89 }
88 90
89 target_fd = open(target_fname, O_RDWR | O_CREAT | O_CLOEXEC, 0744); 91 target_fd = open(target_fname, O_RDWR | O_CREAT | O_CLOEXEC, 0744);