viced-threadquota-release-holds-20080106
authorDerrick Brashear <shadow@dementia.org>
Sun, 6 Jan 2008 15:57:05 +0000 (15:57 +0000)
committerDerrick Brashear <shadow@dementia.org>
Sun, 6 Jan 2008 15:57:05 +0000 (15:57 +0000)
LICENSE IPL10

release a hold when we decline to service a host

src/viced/host.c

index 54247a8..c4db975 100644 (file)
@@ -1441,8 +1441,11 @@ h_GetHost_r(struct rx_connection *tcon)
         * of the caller matches the identity in the host structure.
         */
        if ((host->hostFlags & HWHO_INPROGRESS) && 
-           h_threadquota(host->lock.num_waiting))
+           h_threadquota(host->lock.num_waiting)) {
+           if (!held)
+               h_Release_r(host);
            return 0;
+       }
        h_Lock_r(host);
        if (!(host->hostFlags & ALTADDR)) {
            host->hostFlags &= ~HWHO_INPROGRESS;