diff options
author | unknown <cmiller@zippy.cornsilk.net> | 2006-08-14 10:02:28 -0400 |
---|---|---|
committer | unknown <cmiller@zippy.cornsilk.net> | 2006-08-14 10:02:28 -0400 |
commit | bb2bc56f28293d55917879e9e9a1edea62107803 (patch) | |
tree | f27a8f7454d8cc8f0fbb9c0547650e2fee33845c /client | |
parent | c0af010f29d7cabec603b8bc10f9cb955226f2ca (diff) | |
parent | 943543ba09e37502278454a70877fe467352e261 (diff) | |
download | mariadb-git-bb2bc56f28293d55917879e9e9a1edea62107803.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into zippy.cornsilk.net:/home/cmiller/work/mysql/m50-maint-b21224
Diffstat (limited to 'client')
-rw-r--r-- | client/mysql_upgrade.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c index 3288b627554..053eb86b051 100644 --- a/client/mysql_upgrade.c +++ b/client/mysql_upgrade.c @@ -149,17 +149,29 @@ static int create_defaults_file(const char *path, const char *our_defaults_path) File our_defaults_file, defaults_file; char buffer[512]; char *buffer_end; + int failed_to_open_count= 0; int error; /* check if the defaults file is needed at all */ if (!opt_password) return 0; - defaults_file= my_open(path, O_BINARY | O_CREAT | O_WRONLY, +retry_open: + defaults_file= my_open(path, O_BINARY | O_CREAT | O_WRONLY | O_EXCL, MYF(MY_FAE | MY_WME)); if (defaults_file < 0) - return 1; + { + if (failed_to_open_count == 0) + { + remove(path); + failed_to_open_count+= 1; + goto retry_open; + } + else + return 1; + } + upgrade_defaults_created= 1; if (our_defaults_path) { |