Author: stefan2
Date: Wed Aug 20 10:47:18 2014
New Revision: 1619070
URL: http://svn.apache.org/r1619070
Log:
Explicitly state the limitations of our freeze API. Since r1619068,
we can't error out on these conditions anymore. No functional change.
* subversion/include/svn_fs.h
(svn_fs_freeze): List limitations an their implications.
* subversion/include/svn_repos.h
(svn_repos_freeze): Same.
Modified:
subversion/trunk/subversion/include/svn_fs.h
subversion/trunk/subversion/include/svn_repos.h
Modified: subversion/trunk/subversion/include/svn_fs.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_fs.h?rev=1619070&r1=1619069&r2=1619070&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_fs.h (original)
+++ subversion/trunk/subversion/include/svn_fs.h Wed Aug 20 10:47:18 2014
@@ -579,6 +579,11 @@ typedef svn_error_t *(*svn_fs_freeze_fun
* Take an exclusive lock on @a fs to prevent commits and then invoke
* @a freeze_func passing @a freeze_baton.
*
+ * @note @a freeze_func must not, directly or indirectly, call any function
+ * that attempts to take out a lock on the underlying repository. These
+ * include functions for packing, hotcopying, setting revprops and commits.
+ * Attempts to do so may result in a deadlock.
+ *
* @note The BDB backend doesn't implement this feature so most
* callers should not call this function directly but should use the
* higher level svn_repos_freeze() instead.
Modified: subversion/trunk/subversion/include/svn_repos.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_repos.h?rev=1619070&r1=1619069&r2=1619070&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_repos.h (original)
+++ subversion/trunk/subversion/include/svn_repos.h Wed Aug 20 10:47:18 2014
@@ -813,6 +813,11 @@ typedef svn_error_t *(*svn_repos_freeze_
* FS backend the repository uses. Repositories are locked in the
* order in which they are specified in the array.
*
+ * @note @a freeze_func must not, directly or indirectly, call any function
+ * that attempts to take out a lock on the underlying repository. These
+ * include functions for packing, hotcopying, setting revprops and commits.
+ * Attempts to do so may result in a deadlock.
+ *
* @note On some platforms the exclusive lock does not exclude other
* threads in the same process so this function should only be called
* by a single threaded process, or by a multi-threaded process when