31 Mar, 2011

1 commit


29 Mar, 2011

1 commit


08 Jan, 2011

1 commit


23 Dec, 2010

4 commits


16 Dec, 2010

1 commit


08 Oct, 2010

1 commit


18 Sep, 2010

1 commit

  • mmotm/fs/ocfs2/cluster/tcp.c: In function ‘o2net_send_message_vec’:
    mmotm/fs/ocfs2/cluster/tcp.c:980:6: warning: ‘ret’ may be used uninitialized in this function

    It seems a real bug introduced by commit 9af0b38ff3 (ocfs2/net:
    Use wait_event() in o2net_send_message_vec()).

    cc: Sunil Mushran
    Signed-off-by: Wu Fengguang
    Signed-off-by: Joel Becker

    Wu Fengguang
     

08 Aug, 2010

1 commit

  • Currently, o2net_accept_one() is allowed to accept a connection from
    listening node itself, such a fake connection will not be successfully
    established due to no handshake detected afterwards, and later end up
    with triggering connecting worker in a loop.

    We're going to fix this by treating such connection request as 'invalid',
    since we've got no chance of requesting connection from a node to itself
    in a OCFS2 cluster.

    The fix doesn't hurt user's scan for o2net-listener, it always gets a
    successful connection from userpace.

    Signed-off-by: Tristan Ye
    Acked-by: Sunil Mushran
    Signed-off-by: Joel Becker

    Tristan Ye
     

06 May, 2010

1 commit


13 Mar, 2010

1 commit


09 Feb, 2010

1 commit


26 Jan, 2010

1 commit


16 Jun, 2009

1 commit


31 Oct, 2008

1 commit


23 Aug, 2008

1 commit


31 May, 2008

1 commit


18 Apr, 2008

3 commits

  • This patch exposes o2net information via debugfs. The information includes
    the list of sockets (sock_containers) as well as the list of outstanding
    messages (send_tracking). Useful for o2dlm debugging.

    (This patch is derived from an earlier one written by Zach Brown that
    exposed the same information via /proc.)

    [Mark: checkpatch fixes]

    Signed-off-by: Sunil Mushran
    Reviewed-by: Joel Becker
    Signed-off-by: Mark Fasheh

    Sunil Mushran
     
  • We keep seeing bug reports related to NULL pointer derefs in
    o2net_set_nn_state(). When I originally wrote up the configurable timeout
    patch, I had tried to plan for multiple clusters. This was silly.

    The timeout routines all use o2nm_single_cluster so there's no point in
    passing an argument at all. This patch removes the arguments and kills those
    bugs dead.

    Signed-off-by: Jeff Mahoney
    Signed-off-by: Mark Fasheh

    Jeff Mahoney
     
  • Currently, o2net connects to a node on hb_up and disconnects on
    hb_down and net timeout.

    It disconnects on net timeout is ok, but it should attempt to
    reconnect back. This is because sometimes nodes get overloaded
    enough that the network connection breaks but the disk hb does not.
    And if we get into that situation, we either fence (unnecessarily)
    or wait for its disk hb to die (and sometimes hang in the process).

    So in this updated scheme, when the network disconnects, we keep
    attempting to reconnect till we succeed or we get a disk hb down
    event.

    If the other node is really dead, then we will eventually get a
    node down event. If not, we should be able to connect again and
    continue.

    Signed-off-by: Tao Ma
    Signed-off-by: Mark Fasheh

    Tao Ma
     

11 Mar, 2008

1 commit

  • In some situations, ocfs2_set_nn_state might get called with sc = NULL and
    valid = 0. If sc = NULL, we can't dereference it to get the o2nm_node
    member. Instead, do what o2net_initialize_handshake does and use NULL when
    calling o2net_reconnect_delay and o2net_idle_timeout.

    Signed-off-by: Tao Ma
    Signed-off-by: Mark Fasheh

    Tao Ma
     

06 Dec, 2007

1 commit

  • endianness annotations in networking code had been in place for quite a
    while; in particular, sin_port and s_addr are annotated as big-endian.

    Code in ocfs2 had __force casts added apparently to shut the sparse
    warnings up; of course, these days they only serve to *produce* warnings
    for no reason whatsoever...

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     

13 Nov, 2007

1 commit

  • ...and fix a couple of bugs in the NBD, CIFS and OCFS2 socket handlers.

    Looking at the sock->op->shutdown() handlers, it looks as if all of them
    take a SHUT_RD/SHUT_WR/SHUT_RDWR argument instead of the
    RCV_SHUTDOWN/SEND_SHUTDOWN arguments.
    Add a helper, and then define the SHUT_* enum to ensure that kernel users
    of shutdown() don't get confused.

    Signed-off-by: Trond Myklebust
    Acked-by: Mark Fasheh
    Acked-by: David Howells
    Signed-off-by: David S. Miller

    Trond Myklebust
     

10 Aug, 2007

1 commit


11 Jul, 2007

2 commits


03 May, 2007

1 commit


15 Mar, 2007

1 commit


08 Feb, 2007

3 commits

  • 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
    Acked-by: Jeff Mahoney
    Signed-off-by: Mark Fasheh

    Zhen Wei
     
  • This patch binds the o2net listener to the configured ip address
    instead of INADDR_ANY for security. Fixes oss.oracle.com bugzilla#814.

    Signed-off-by: Sunil Mushran
    Signed-off-by: Mark Fasheh

    Sunil Mushran
     
  • Currently o2net allows one handler function per message type. This
    patch adds the ability to call another function to be called after
    the handler has returned the message to the other node.

    Handlers are now given the option of returning a context (in the form of a
    void **) which will be passed back into the post message handler function.

    Signed-off-by: Kurt Hackel
    Signed-off-by: Sunil Mushran
    Signed-off-by: Mark Fasheh

    Kurt Hackel
     

14 Dec, 2006

1 commit

  • All kcalloc() calls of the form "kcalloc(1,...)" are converted to the
    equivalent kzalloc() calls, and a few kcalloc() calls with the incorrect
    ordering of the first two arguments are fixed.

    Signed-off-by: Robert P. J. Day
    Cc: Jeff Garzik
    Cc: Alan Cox
    Cc: Dominik Brodowski
    Cc: Adam Belay
    Cc: James Bottomley
    Cc: Greg KH
    Cc: Mark Fasheh
    Cc: Trond Myklebust
    Cc: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robert P. J. Day
     

12 Dec, 2006

1 commit

  • Modify the OCFS2 handshake to ensure essential timeouts are configured
    identically on all nodes.

    Only allow changes when there are no connected peers

    Improves the logic in o2net_advance_rx() which broke now that
    sizeof(struct o2net_handshake) is greater than sizeof(struct o2net_msg)

    Included is the field for userspace-heartbeat timeout to avoid the need for
    further protocol changes.

    Uses a global spinlock to ensure the decisions to update configfs entries
    are made on the correct value. The region covered by the spinlock when
    incrementing the counter is much larger as this is the more critical case.

    Small cleanup contributed by Adrian Bunk

    Signed-off-by: Andrew Beekhof
    Signed-off-by: Mark Fasheh

    Andrew Beekhof
     

08 Dec, 2006

1 commit


22 Nov, 2006

1 commit


30 Jun, 2006

1 commit


28 Jun, 2006

1 commit

  • locking init cleanups:

    - convert " = SPIN_LOCK_UNLOCKED" to spin_lock_init() or DEFINE_SPINLOCK()
    - convert rwlocks in a similar manner

    this patch was generated automatically.

    Motivation:

    - cleanliness
    - lockdep needs control of lock initialization, which the open-coded
    variants do not give
    - it's also useful for -rt and for lock debugging in general

    Signed-off-by: Ingo Molnar
    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

02 Mar, 2006

1 commit