:Happened when I started 8 mirror-stream at the same time.
:
:cheers
:   simon

    Yours are easier to track down :-)  Try the patch below.

    Tomokazu's are more difficult.

                                        -Matt
                                        Matthew Dillon 
                                        <[email protected]>


diff --git a/sys/vfs/hammer/hammer_mirror.c b/sys/vfs/hammer/hammer_mirror.c
index 574b74d..05e12a0 100644
--- a/sys/vfs/hammer/hammer_mirror.c
+++ b/sys/vfs/hammer/hammer_mirror.c
@@ -462,8 +462,10 @@ hammer_ioc_mirror_write(hammer_transaction_t trans, 
hammer_inode_t ip,
                 */
                if (error == EDEADLK) {
                        while (error == EDEADLK) {
+                               hammer_sync_lock_sh(trans);
                                hammer_recover_cursor(&cursor);
                                error = hammer_cursor_upgrade(&cursor);
+                               hammer_sync_unlock(trans);
                        }
                } else {
                        if (error == EALREADY)

Reply via email to