From: Sage Weil Date: Thu, 15 May 2008 23:02:41 +0000 (-0700) Subject: config.cc: better write_file. and no more -o X-Git-Tag: v0.3~209^2~49^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4b7d6e2c4be7ad532cabdc0aff8189f9b31018b5;p=ceph.git config.cc: better write_file. and no more -o --- diff --git a/src/config.cc b/src/config.cc index b8e7820cbace..f3b004b351f1 100644 --- a/src/config.cc +++ b/src/config.cc @@ -53,7 +53,21 @@ int buffer::list::write_file(const char *fn) cerr << "can't write " << fn << ": " << strerror(errno) << std::endl; return -errno; } - ::write(fd, (void*)c_str(), length()); + for (std::list::const_iterator it = _buffers.begin(); + it != _buffers.end(); + it++) { + const char *c = it->c_str(); + int left = it->length(); + while (left > 0) { + int r = ::write(fd, c, left); + if (r < 0) { + ::close(fd); + return -errno; + } + c += r; + left -= r; + } + } ::close(fd); return 0; } @@ -603,7 +617,7 @@ void parse_config_options(std::vector& args) - else if (strcmp(args[i], "-o") == 0 || + else if (//strcmp(args[i], "-o") == 0 || strcmp(args[i], "--doutdir") == 0) g_conf.dout_dir = args[++i];