diff options
author | cmiller@zippy.cornsilk.net <> | 2006-08-23 10:47:46 -0400 |
---|---|---|
committer | cmiller@zippy.cornsilk.net <> | 2006-08-23 10:47:46 -0400 |
commit | 73963de63702b17fa84fdab4b2cc264f5d445bac (patch) | |
tree | f57a4c2f4cf7cd15d1348a9667df688630a0e9fb /client | |
parent | f07937730ae1b103596b3de6b8e30ec656c26f56 (diff) | |
parent | 8a33305959eb836aa5ada5f4a409368618a008c7 (diff) | |
download | mariadb-git-73963de63702b17fa84fdab4b2cc264f5d445bac.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 c68f8777624..9a73263f558 100644 --- a/client/mysql_upgrade.c +++ b/client/mysql_upgrade.c @@ -157,17 +157,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) { |