[Patch 2/4] chunkd: clean-up return paths
This version leaves fs_free alone and preserves the quick-quit mechanism.
Signed-off-by: Pete Zaitcev <zaitcev@xxxxxxxxxx>
---
server/be-fs.c | 10 ++++++----
server/server.c | 15 ++++++++-------
2 files changed, 14 insertions(+), 11 deletions(-)
commit 354d8a8d2c5ce689fbca6ffb3d1fd2efab07c938
Author: Master <zaitcev@xxxxxxxxxxxxxxxxxx>
Date: Sun Dec 27 15:55:07 2009 -0700
Agreed cleanup, leaving fs_free alone.
diff --git a/server/be-fs.c b/server/be-fs.c
index 1f8f1a5..2c63541 100644
--- a/server/be-fs.c
+++ b/server/be-fs.c
@@ -75,7 +75,7 @@ int fs_open(void)
}
if (!tchdbsetmutex(hdb))
- goto out_hdb;
+ goto out_mut;
omode = HDBOREADER | HDBONOLCK | HDBOWRITER | HDBOCREAT | HDBOTSYNC;
if (!tchdbopen(hdb, db_fn, omode)) {
@@ -86,13 +86,15 @@ int fs_open(void)
chunkd_srv.tbl_master = hdb;
-out:
free(db_fn);
- return rc;
+ return 0;
+out_mut:
out_hdb:
tchdbdel(hdb);
- goto out;
+out:
+ free(db_fn);
+ return rc;
}
void fs_close(void)
diff --git a/server/server.c b/server/server.c
index 381772b..3f38cca 100644
--- a/server/server.c
+++ b/server/server.c
@@ -1664,13 +1664,13 @@ int main (int argc, char *argv[])
if (fs_open()) {
rc = 1;
- goto err_out_session;
+ goto err_out_fs;
}
if (cld_begin(chunkd_srv.ourhost, chunkd_srv.cell, chunkd_srv.nid,
&chunkd_srv.loc, NULL)) {
rc = 1;
- goto err_out_fs;
+ goto err_out_cld;
}
/* set up server networking */
@@ -1686,19 +1686,20 @@ int main (int argc, char *argv[])
applog(LOG_INFO, "shutting down");
+ /* net_close(); */
err_out_listen:
cld_end();
-err_out_fs:
+err_out_cld:
fs_close();
+err_out_fs:
+ if (strict_free)
+ g_hash_table_destroy(chunkd_srv.fd_info);
err_out_session:
- /* net_close(); */
unlink(chunkd_srv.pid_file);
close(chunkd_srv.pid_fd);
err_out:
- if (strict_free) {
+ if (strict_free)
fs_free();
- g_hash_table_destroy(chunkd_srv.fd_info);
- }
closelog();
return rc;
}
--
To unsubscribe from this list: send the line "unsubscribe hail-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux USB Devel]
[Video for Linux]
[Linux Audio Users]
[Photo]
[Yosemite News]
[Yosemite Photos]
[Free Online Dating]
[Linux Kernel]
[Linux SCSI]
[XFree86]