[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] Hurd branch, master, updated. v0.5-106-g8e1b6ab
From: |
Justus Winter |
Subject: |
[SCM] Hurd branch, master, updated. v0.5-106-g8e1b6ab |
Date: |
Wed, 11 Dec 2013 09:02:05 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Hurd".
The branch, master has been updated
via 8e1b6ab073a890cc2da6965f9a57bfc91d8c6d38 (commit)
via 0209a2f92b5693c72975572b7438ebc6d9865b6b (commit)
via 4a6a4664f655e785e234e575f024f4674155e274 (commit)
via cb42b5fa92329496f25f9479257bd03aeb346205 (commit)
via 77ba38a61492799cc3c615f0f622f34fc10de826 (commit)
via 0bdd1a9d8d3eef8cae027be133ee11fc9a3b5165 (commit)
via 83dfdd298d14d885b9ebc37b3b1af703cdd27f8c (commit)
via 2640c8a8e32c2f20023e4cb91f87684c62316f19 (commit)
via 7d20408ec4a5dbc973520dd78dd2531c6a1471c7 (commit)
via 61c77d679840e4c4455615295ac30215bb01cdf5 (commit)
via b770147356376ddb0602358a0252c4f68a9c80c6 (commit)
via 54ee5b628f8d4a1447670f65cc441fc32a9e96ef (commit)
via 672005782e57e049c7c8f4d6d0b2a80c0df512b4 (commit)
via 3688ec3ef963c8e41f845c1d98205ca69f91576b (commit)
via 2ce5406504540399ed78306198802fc4e1824de7 (commit)
via cf1cc29af12447c347a5574b4dc1568c7db61c0b (commit)
via 64b5a0f4dde23ee9b809b909bccd4ee8637364e9 (commit)
via a0a49e530b269679695daa6014bfade0b36970e1 (commit)
from 6204a717fc63891839faefda75e95a364ec0434e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8e1b6ab073a890cc2da6965f9a57bfc91d8c6d38
Author: Justus Winter <address@hidden>
Date: Tue Dec 10 17:43:06 2013 +0100
trans/fakeroot: remove dead code
* trans/fakeroot.c (netfs_S_dir_lookup): Remove dead code.
commit 0209a2f92b5693c72975572b7438ebc6d9865b6b
Author: Justus Winter <address@hidden>
Date: Tue Dec 10 17:03:25 2013 +0100
trans/fakeroot: remove dead code
* trans/fakeroot.c (netfs_S_dir_lookup): Remove dead code.
commit 4a6a4664f655e785e234e575f024f4674155e274
Author: Justus Winter <address@hidden>
Date: Tue Dec 10 17:01:02 2013 +0100
trans/fakeroot: drop else
* trans/fakeroot.c (netfs_S_dir_lookup): Drop else.
commit cb42b5fa92329496f25f9479257bd03aeb346205
Author: Justus Winter <address@hidden>
Date: Tue Dec 10 16:55:48 2013 +0100
trans/fakeroot: fix ownership of newly created files
Previously, files created in the fakeroot environment were created
with the uid and gid of the user running fakeroot:
% fakeroot-hurd /bin/sh -c 'touch /tmp/$$; stat --format=%u:%g /tmp/$$'
1000:1000
* trans/fakeroot.c (netfs_S_dir_lookup): Fix ownership of newly
created files.
commit 77ba38a61492799cc3c615f0f622f34fc10de826
Author: Justus Winter <address@hidden>
Date: Tue Dec 10 15:31:36 2013 +0100
utils/settrans: fix the teardown of chrooted environments
Previously, settrans --chroot would just exec the target. Create a
new process for that purpose. Wait for its completion, then ask the
translator (nicely by default) to go away. If it refuses with EBUSY,
it might be because some process has daemonized inside the chrooted
environment.
This fixes the following bug when settrans is used with fakeroot:
% fakeroot-hurd /bin/true 2>&1 | tee
<hangs>
Here, fakeroot-hurd execs settrans with --chroot, settrans execs
/hurd/fakeauth which will eventually exec the target /bin/true. When
true terminates, it will close its stdout and stderr. But
/hurd/fakeroot's stderr is also connected to tee's stdin, preventing
tee from exiting.
* utils/settrans.c (main): Fix the teardown of chrooted environments.
commit 0bdd1a9d8d3eef8cae027be133ee11fc9a3b5165
Author: Justus Winter <address@hidden>
Date: Sat Dec 7 16:06:41 2013 +0100
console-client: remove spurious pthread_spin_unlocks
* console-client/trans.c (netfs_attempt_mkfile): Remove spurious
pthread_spin_unlock.
(netfs_node_norefs): Likewise.
commit 83dfdd298d14d885b9ebc37b3b1af703cdd27f8c
Author: Justus Winter <address@hidden>
Date: Sat Dec 7 15:50:46 2013 +0100
trans: unlock nodes with faked attributes in fakeroot
When a node has faked attributes, we cannot drop our node.
Reinitialize the lock box as if the node was dropped. This fixes the
following bug:
% fakeroot-hurd /bin/sh -c 'touch /tmp/$$.lock
chown 0 /tmp/$$.lock
l(){ flock /tmp/$$.lock true; }; l; l'
<hangs>
* trans/fakeroot.c (fake_node_dropweak): Unlock the node if the last
real reference is dropped but we keep a fake one.
commit 2640c8a8e32c2f20023e4cb91f87684c62316f19
Author: Justus Winter <address@hidden>
Date: Fri Dec 6 00:04:39 2013 +0100
trans: improve the error handling in fakeauth
Previously the node was not correctly torn down if adding the newly
created netnode to the hash table failed. Fix this by rearranging the
code, doing the hash table modification first because it is easier to
undo.
* trans/fakeroot.c (new_node): Fix the error handling.
commit 7d20408ec4a5dbc973520dd78dd2531c6a1471c7
Author: Justus Winter <address@hidden>
Date: Thu Dec 5 23:38:53 2013 +0100
trans: fix reference counting bug in fakeroot
The function new_node creates virtual nodes using netfs_make_node.
Nodes created with netfs_make_node already have a reference count of
one. Currently another reference is added in new_node. This prevents
the destruction of the node causing bugs like this:
% fakeroot-hurd sh -c 'l(){ flock /tmp/$$.lock true; }; l; l'
<hangs>
* trans/fakeroot.c (new_node): Fix reference count of newly created
nodes.
commit 61c77d679840e4c4455615295ac30215bb01cdf5
Author: Justus Winter <address@hidden>
Date: Mon Dec 9 14:33:17 2013 +0100
trans: fix locking in fakeroot's netfs_S_dir_lookup
* trans/fakeroot.c (netfs_S_dir_lookup): Fix locking.
commit b770147356376ddb0602358a0252c4f68a9c80c6
Author: Justus Winter <address@hidden>
Date: Thu Dec 5 19:40:31 2013 +0100
trans: fix reference counting and destruction of fake nodes
Previously, fakeroot tried to do too much in netfs_node_norefs. This
function is meant to deallocate nodes. Fakeroot however also tries to
remove the node from the hash table and to prolong the lifetime of the
node object by re-referencing it.
Removing the object from the hash table is highly problematic, because
at this point we already have the node locked. With proper locking in
netfs_S_dir_lookup, acquiring the hash table lock while we hold the
node locked results in dead-locks, releasing the node lock before
acquiring the hash table lock results in a race condition.
Prolonging the lifetime of the node by re-acquiring a reference is
clearly a hack that surprisingly works to some degree. The nodes
transbox, however, is already gone at this point.
This code was never actually run because of a reference-counting bug
in fakeroot.
Fix this by installing our own clean routine in the
netfs_protid_class. This function is called without the associated
node being locked, allowing us to acquire the locks in the proper
order and to keep the hash table locked while the node is being
destroyed.
* trans/fakeroot.c (netfs_node_norefs): Just free the associated
resources.
(fakeroot_netfs_release_protid): New function doing cleanly what
netfs_node_norefs did before.
(netfs_S_dir_lookup): Reuse the fake reference.
(main): Install fakeroot_netfs_release_protid as clean routine.
fixup_fix_refc_destruction
commit 54ee5b628f8d4a1447670f65cc441fc32a9e96ef
Author: Justus Winter <address@hidden>
Date: Sun Dec 8 18:05:06 2013 +0100
trans: return nodes locked when creating fake nodes in fakeroot
* trans/fakeroot.c (new_node): Acquire the nodes lock before releasing
the idport_ihash_lock. Return nodes locked.
(netfs_S_dir_lookup): Drop lock.
(netfs_attempt_mkfile): Likewise.
(main): Likewise.
commit 672005782e57e049c7c8f4d6d0b2a80c0df512b4
Author: Justus Winter <address@hidden>
Date: Sun Dec 8 17:55:14 2013 +0100
trans: fix locking issue in fakeroot
* trans/fakeroot.c (netfs_attempt_mkfile): Keep dir locked until the
new node is created.
commit 3688ec3ef963c8e41f845c1d98205ca69f91576b
Author: Justus Winter <address@hidden>
Date: Sun Dec 8 18:28:01 2013 +0100
trans: handle invalid responses to dir_lookup requests in fakeroot
* trans/fakeroot.c (netfs_S_dir_lookup): Handle invalid responses to
dir_lookup requests.
commit 2ce5406504540399ed78306198802fc4e1824de7
Author: Justus Winter <address@hidden>
Date: Sat Dec 7 15:57:17 2013 +0100
trans: improve the performance of dir_lookup in fakeroot
Previously any FS_RETRY_NORMAL requests were handed back to the
client. Redo the lookup ourself instead. This saves us the burden to
create a fake node for the intermediate step, hand it back to the
client and handle another request from the client.
With this change there is no need to fiddle with the permission bits
as it was previously done.
* trans/fakeroot.c (netfs_S_dir_lookup): Redo the lookup transparently
for the user if FS_RETRY_NORMAL is requested.
fixup_improve_perf
commit cf1cc29af12447c347a5574b4dc1568c7db61c0b
Author: Justus Winter <address@hidden>
Date: Thu Dec 5 19:22:03 2013 +0100
trans: fix the use of the hash table in fakeroot.c
Previously a pointer to the node was stored in the hash table. This
writes the locp pointer into the node object overwriting the next
pointer there. Store the pointer to the netnode instead.
* trans/fakeroot.c (struct netnode): Add field np.
(new_node): Initialize field np.
(new_node): Store nn instead of np into the hash table.
(netfs_S_dir_lookup): Adjust accordingly.
commit 64b5a0f4dde23ee9b809b909bccd4ee8637364e9
Author: Justus Winter <address@hidden>
Date: Thu Dec 5 17:34:48 2013 +0100
libihash: remove dead code
* libihash/ihash.c (hurd_ihash_add): Remove dead code.
commit a0a49e530b269679695daa6014bfade0b36970e1
Author: Justus Winter <address@hidden>
Date: Wed Dec 4 17:14:49 2013 +0100
libfshelp: use a hash table in get-identity.c
Currently fshelp_get_identity uses ports_class_iterate to de-duplicate
the identity ports. Use a hash table instead.
* libfshelp/get-identity.c (struct idspec): Remove field fileno.
(struct idspec): Add field id_hashloc.
(id_clean): New function.
(id_initialize): Use id_clean as cleanup function for idclass.
(fshelp_get_identity): Use a hash table to de-duplicate the identity
ports.
-----------------------------------------------------------------------
Summary of changes:
console-client/trans.c | 2 -
libfshelp/get-identity.c | 66 ++++++++-------
libihash/ihash.c | 3 -
trans/fakeroot.c | 213 +++++++++++++++++++++++++++++-----------------
utils/settrans.c | 69 ++++++++++------
5 files changed, 214 insertions(+), 139 deletions(-)
hooks/post-receive
--
Hurd
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] Hurd branch, master, updated. v0.5-106-g8e1b6ab,
Justus Winter <=