[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: svn commit: r1578176 - in /subversion/trunk/subversion/libsvn_fs_fs: fs.c fs.h fs_fs.c fs_fs.h pack.c

From: Bert Huijben <bert_at_qqmail.nl>
Date: Mon, 17 Mar 2014 09:47:56 +0100

> -----Original Message-----
> From: stefan2_at_apache.org [mailto:stefan2_at_apache.org]
> Sent: maandag 17 maart 2014 00:10
> To: commits_at_subversion.apache.org
> Subject: svn commit: r1578176 - in
> /subversion/trunk/subversion/libsvn_fs_fs: fs.c fs.h fs_fs.c fs_fs.h pack.c
>
> Author: stefan2
> Date: Sun Mar 16 23:09:45 2014
> New Revision: 1578176
>
> URL: http://svn.apache.org/r1578176
> Log:
> Model the FSFS pack lock similarly to our other file based locks in FSFS.
> This gives us proper mutex functionality should multiple threads try to
> pack the same repo at the same time.
>
> * subversion/libsvn_fs_fs/fs.h
> (fs_fs_shared_data_t): Add a thread mutex alongside the file lock.
>
> * subversion/libsvn_fs_fs/fs.c
> (fs_serialized_init): Initialize the new mutex.
>
> * subversion/libsvn_fs_fs/fs_fs.h
> (svn_fs_fs__get_lock_on_filesystem): Privatize again.
> (svn_fs_fs__with_pack_lock): New lock handling function similar
> to what we do for the other locks.
>
> * subversion/libsvn_fs_fs/fs_fs.c
> (path_pack_lock): New utility function.
> (svn_fs_fs__get_lock_on_filesystem): Rename back to ...
> (get_lock_on_filesystem): ... this again.
> (with_some_lock_file): Update caller.
> (svn_fs_fs__with_pack_lock): Implement the new lock function.
>
> * subversion/libsvn_fs_fs/pack.c
> (svn_fs_fs__pack): Use the new pack lock handling function.

It looks like this patch also removed a subpool around the packing in pack.c.

Was that an intended behavior change?

        Bert

 Modified: subversion/trunk/subversion/libsvn_fs_fs/pack.c
> URL:
> http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/pa
> ck.c?rev=1578176&r1=1578175&r2=1578176&view=diff
> ==========================================================
> ====================
> --- subversion/trunk/subversion/libsvn_fs_fs/pack.c (original)
> +++ subversion/trunk/subversion/libsvn_fs_fs/pack.c Sun Mar 16 23:09:45
> 2014
> @@ -2023,14 +2023,7 @@ svn_fs_fs__pack(svn_fs_t *fs,
> separate subpool here to release the lock immediately after the
> operation finished.
> */
> - apr_pool_t *subpool = svn_pool_create(pool);
> - const char *lock_path = svn_dirent_join(fs->path,
> PATH_PACK_LOCK_FILE,
> - subpool);
> - err = svn_fs_fs__get_lock_on_filesystem(lock_path, subpool);
> - if (!err)
> - err = pack_body(&pb, subpool);
> -
> - svn_pool_destroy(subpool);
> + err = svn_fs_fs__with_pack_lock(fs, pack_body, &pb, pool);
> }
> else
> {
>
Received on 2014-03-17 09:48:53 CET

This is an archived mail posted to the Subversion Dev mailing list.