1. 27 4月, 2007 22 次提交
  2. 27 3月, 2007 2 次提交
  3. 15 3月, 2007 5 次提交
  4. 18 2月, 2007 1 次提交
  5. 15 2月, 2007 2 次提交
  6. 13 2月, 2007 3 次提交
  7. 08 2月, 2007 5 次提交
    • P
      [PATCH] ocfs2 heartbeat: clean up bio submission code · b559292e
      Philipp Reisner 提交于
      As was already pointed out Mathieu Avila on Thu, 07 Sep 2006 03:15:25 -0700
      that OCFS2 is expecting bio_add_page() to add pages to BIOs in an easily
      predictable manner.
      
      That is not true, especially for devices with own merge_bvec_fn().
      
      Therefore OCFS2's heartbeat code is very likely to fail on such devices.
      
      Move the bio_put() call into the bio's bi_end_io() function. This makes the
      whole idea of trying to predict the behaviour of bio_add_page() unnecessary.
      Removed compute_max_sectors() and o2hb_compute_request_limits().
      Signed-off-by: NPhilipp Reisner <philipp.reisner@linbit.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      b559292e
    • Z
      ocfs2: introduce sc->sc_send_lock to protect outbound outbound messages · 925037bc
      Zhen Wei 提交于
      When there is a lot of multithreaded I/O usage, two threads can collide
      while sending out a message to the other nodes. This is due to the lack of
      locking between threads while sending out the messages.
      
      When a connected TCP send(), sendto(), or sendmsg() arrives in the Linux
      kernel, it eventually comes through tcp_sendmsg(). tcp_sendmsg() protects
      itself by acquiring a lock at invocation by calling lock_sock().
      tcp_sendmsg() then loops over the buffers in the iovec, allocating
      associated sk_buff's and cache pages for use in the actual send. As it does
      so, it pushes the data out to tcp for actual transmission. However, if one
      of those allocation fails (because a large number of large sends is being
      processed, for example), it must wait for memory to become available. It
      does so by jumping to wait_for_sndbuf or wait_for_memory, both of which
      eventually cause a call to sk_stream_wait_memory(). sk_stream_wait_memory()
      contains a code path that calls sk_wait_event(). Finally, sk_wait_event()
      contains the call to release_sock().
      
      The following patch adds a lock to the socket container in order to
      properly serialize outbound requests.
      
      From: Zhen Wei <zwei@novell.com>
      Acked-by: NJeff Mahoney <jeffm@suse.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      925037bc
    • S
      ocfs2_dlm: Add timeout to dlm join domain · 0dd82141
      Sunil Mushran 提交于
      Currently the ocfs2 dlm has no timeout during dlm join domain. While this is
      not a problem in normal operation, this does become an issue if, say, the
      other node is refusing to let the node join the domain because of a stuck
      recovery. This patch adds a 90 sec timeout.
      Signed-off-by: NSunil Mushran <sunil.mushran@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      0dd82141
    • S
      ocfs2_dlm: Silence some messages during join domain · e4968476
      Sunil Mushran 提交于
      These messages can easily be activated using the mlog infrastructure
      and don't need to be enabled by default.
      Signed-off-by: NSunil Mushran <sunil.mushran@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      e4968476
    • S
      ocfs2_dlm: disallow a domain join if node maps mismatch · 1faf2894
      Srinivas Eeda 提交于
      There is a small window where a joining node may not see the node(s) that
      just died but are still part of the domain. To fix this, we must disallow
      join requests if the joining node has a different node map.
      
      A new field node_map is added to dlm_query_join_request to send the current
      nodes nodemap along with join request. On the receiving end the nodes that
      are part of the cluster verifies if this new node sees all the nodes that
      are still part of the cluster. They disallow the join if the maps mismatch.
      Signed-off-by: NSrinivas Eeda <srinivas.eeda@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      1faf2894