From: <n-...@us...> - 2013-11-28 02:07:34
|
Revision: 8728 http://gfarm.svn.sourceforge.net/gfarm/?rev=8728&view=rev Author: n-soda Date: 2013-11-28 02:07:25 +0000 (Thu, 28 Nov 2013) Log Message: ----------- re: #496 - making client protocol header compatible with server-side asynchronous protocol revise r7913 to make the behavior of protocol_finish() match with its comment. this also retains the behavior before r7913. Revision Links: -------------- http://gfarm.svn.sourceforge.net/gfarm/?rev=7913&view=rev http://gfarm.svn.sourceforge.net/gfarm/?rev=7913&view=rev Modified Paths: -------------- gfarm_v2/trunk/server/gfmd/gfmd.c Modified: gfarm_v2/trunk/server/gfmd/gfmd.c =================================================================== --- gfarm_v2/trunk/server/gfmd/gfmd.c 2013-11-27 04:32:57 UTC (rev 8727) +++ gfarm_v2/trunk/server/gfmd/gfmd.c 2013-11-28 02:07:25 UTC (rev 8728) @@ -998,18 +998,22 @@ void protocol_finish(struct peer *peer, const char *diag) { - if (db_begin(diag) == GFARM_ERR_NO_ERROR) { - /* - * the following internally calls - * inode_close*() and closing must be - * done regardless of the result of db_begin(). - * because not closing may cause - * descriptor leak. - */ - peer_free(peer); + int transaction = 0; + if (db_begin(diag) == GFARM_ERR_NO_ERROR) + transaction = 1; + + /* + * the following internally calls + * inode_close*() and closing must be + * done regardless of the result of db_begin(). + * because not closing may cause + * descriptor leak. + */ + peer_free(peer); + + if (transaction) db_end(diag); - } } /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |