Author: philip
Date: Sat Mar 13 09:26:42 2010
New Revision: 922510
URL: http://svn.apache.org/viewvc?rev=922510&view=rev
Log:
* subversion/libsvn_wc/lock.c
(svn_wc__release_write_lock): Only release locks held by the context.
* subversion/include/private/svn_wc_private.h
(svn_wc__release_write_lock): Tweak doc string.
Modified:
subversion/trunk/subversion/include/private/svn_wc_private.h
subversion/trunk/subversion/libsvn_wc/lock.c
Modified: subversion/trunk/subversion/include/private/svn_wc_private.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_wc_private.h?rev=922510&r1=922509&r2=922510&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_wc_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_wc_private.h Sat Mar 13
09:26:42 2010
@@ -524,8 +524,8 @@ svn_wc__acquire_write_lock(const char **
/**
* Recursively release write locks for @a local_abspath, using @a wc_ctx
- * for working copy access. Locks are not removed if work queue items are
- * present. Only the @c db member of @c wc_ctx is used.
+ * for working copy access. Only locks held by @a wc_ctx are released.
+ * Locks are not removed if work queue items are present.
*/
svn_error_t *
svn_wc__release_write_lock(svn_wc_context_t *wc_ctx,
Modified: subversion/trunk/subversion/libsvn_wc/lock.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/lock.c?rev=922510&r1=922509&r2=922510&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/lock.c (original)
+++ subversion/trunk/subversion/libsvn_wc/lock.c Sat Mar 13 09:26:42 2010
@@ -1819,6 +1819,7 @@ svn_wc__release_write_lock(svn_wc_contex
const apr_array_header_t *children;
apr_uint64_t id;
svn_skel_t *work_item;
+ svn_boolean_t locked_here;
int i;
SVN_ERR(svn_wc__db_read_kind(&kind, wc_ctx->db, local_abspath, TRUE,
@@ -1851,7 +1852,10 @@ svn_wc__release_write_lock(svn_wc_contex
SVN_ERR(svn_wc__release_write_lock(wc_ctx, child_abspath, iterpool));
}
- SVN_ERR(svn_wc__db_wclock_remove(wc_ctx->db, local_abspath, iterpool));
+ SVN_ERR(svn_wc__db_temp_own_lock(&locked_here, wc_ctx->db, local_abspath,
+ iterpool));
+ if (locked_here)
+ SVN_ERR(svn_wc__db_wclock_remove(wc_ctx->db, local_abspath, iterpool));
svn_pool_destroy(iterpool);