02 Dec, 2011

1 commit

  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (31 commits)
    ocfs2: avoid unaligned access to dqc_bitmap
    ocfs2: Use filemap_write_and_wait() instead of write_inode_now()
    ocfs2: honor O_(D)SYNC flag in fallocate
    ocfs2: Add a missing journal credit in ocfs2_link_credits() -v2
    ocfs2: send correct UUID to cleancache initialization
    ocfs2: Commit transactions in error cases -v2
    ocfs2: make direntry invalid when deleting it
    fs/ocfs2/dlm/dlmlock.c: free kmem_cache_zalloc'd data using kmem_cache_free
    ocfs2: Avoid livelock in ocfs2_readpage()
    ocfs2: serialize unaligned aio
    ocfs2: Implement llseek()
    ocfs2: Fix ocfs2_page_mkwrite()
    ocfs2: Add comment about orphan scanning
    ocfs2: Clean up messages in the fs
    ocfs2/cluster: Cluster up now includes network connections too
    ocfs2/cluster: Add new function o2net_fill_node_map()
    ocfs2/cluster: Fix output in file elapsed_time_in_ms
    ocfs2/dlm: dlmlock_remote() needs to account for remastery
    ocfs2/dlm: Take inflight reference count for remotely mastered resources too
    ocfs2/dlm: Cleanup dlm_wait_for_node_death() and dlm_wait_for_node_recovery()
    ...

    Linus Torvalds
     

17 Nov, 2011

1 commit


01 Nov, 2011

1 commit


25 Jul, 2011

8 commits


26 May, 2011

2 commits

  • During dlm domain shutdown, o2dlm has to free all the lock resources. Ones that
    have no locks and references are freed. Ones that have locks and/or references
    are migrated to another node.

    The first task in migration is finding a target. Currently we scan the lock
    resource and find one node that either has a lock or a reference. This is not
    very efficient in a parallel umount case as we might end up migrating the
    lock resource to a node which itself may have to migrate it to a third node.

    The patch scans the dlm->exit_domain_map to ensure the target node is not
    leaving the domain. If no valid target node is found, o2dlm does not migrate
    the resource but instead waits for the unlock and deref messages that will
    allow it to free the resource.

    Signed-off-by: Sunil Mushran
    Signed-off-by: Joel Becker

    Sunil Mushran
     
  • This patch adds a new dlm message DLM_BEGIN_EXIT_DOMAIN_MSG and ups the dlm
    protocol to 1.2.

    o2dlm sends this new message in dlm_unregister_domain() to mark the beginning
    of the exit domain. This message is sent to all nodes in the domain.

    Currently o2dlm has no way of informing other nodes of its impending exit.
    This information is useful as the other nodes could disregard the exiting
    node in certain operations. For example, in resource migration. If two or
    more nodes were umounting in parallel, it would be more efficient if o2dlm
    were to choose a non-exiting node to be the new master node rather than an
    exiting one.

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

    Sunil Mushran
     

24 May, 2011

1 commit


14 May, 2011

2 commits

  • During resource migration, if the target node were to die, the thread doing
    the migration spins until the target node is not removed from the domain map.
    This patch slows the spin by making the thread wait for the recovery to kick in.

    Signed-off-by: Sunil Mushran
    Signed-off-by: Joel Becker

    Sunil Mushran
     
  • Patch fixes a bug in the o2dlm protocol negotiation in that it is using
    the builtin version rather than the negotiated version during the domain
    join. This causes join errors when a node having kernel >= 2.6.37 joins
    a cluster with nodes having kernels < 2.6.37.

    This only affects the o2cb cluster stack.

    Signed-off-by: Sunil Mushran
    Reported-by: Jacek Stepniewski
    Acked-by: Mark Fasheh
    Signed-off-by: Joel Becker

    Sunil Mushran
     

31 Mar, 2011

1 commit


29 Mar, 2011

2 commits

  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (39 commits)
    Treat writes as new when holes span across page boundaries
    fs,ocfs2: Move o2net_get_func_run_time under CONFIG_OCFS2_FS_STATS.
    ocfs2/dlm: Move kmalloc() outside the spinlock
    ocfs2: Make the left masklogs compat.
    ocfs2: Remove masklog ML_AIO.
    ocfs2: Remove masklog ML_UPTODATE.
    ocfs2: Remove masklog ML_BH_IO.
    ocfs2: Remove masklog ML_JOURNAL.
    ocfs2: Remove masklog ML_EXPORT.
    ocfs2: Remove masklog ML_DCACHE.
    ocfs2: Remove masklog ML_NAMEI.
    ocfs2: Remove mlog(0) from fs/ocfs2/dir.c
    ocfs2: remove NAMEI from symlink.c
    ocfs2: Remove masklog ML_QUOTA.
    ocfs2: Remove mlog(0) from quota_local.c.
    ocfs2: Remove masklog ML_RESERVATIONS.
    ocfs2: Remove masklog ML_XATTR.
    ocfs2: Remove masklog ML_SUPER.
    ocfs2: Remove mlog(0) from fs/ocfs2/heartbeat.c
    ocfs2: Remove mlog(0) from fs/ocfs2/slot_map.c
    ...

    Fix up trivial conflict in fs/ocfs2/super.c

    Linus Torvalds
     
  • Joel Becker
     

17 Mar, 2011

1 commit


07 Mar, 2011

1 commit

  • mlog_exit is used to record the exit status of a function.
    But because it is added in so many functions, if we enable it,
    the system logs get filled up quickly and cause too much I/O.
    So actually no one can open it for a production system or even
    for a test.

    This patch just try to remove it or change it. So:
    1. if all the error paths already use mlog_errno, it is just removed.
    Otherwise, it will be replaced by mlog_errno.
    2. if it is used to print some return value, it is replaced with
    mlog(0,...).
    mlog_exit_ptr is changed to mlog(0.
    All those mlog(0,...) will be replaced with trace events later.

    Signed-off-by: Tao Ma

    Tao Ma
     

22 Feb, 2011

1 commit


21 Feb, 2011

1 commit

  • ENTRY is used to record the entry of a function.
    But because it is added in so many functions, if we enable it,
    the system logs get filled up quickly and cause too much I/O.
    So actually no one can open it for a production system or even
    for a test.

    So for mlog_entry_void, we just remove it.
    for mlog_entry(...), we replace it with mlog(0,...), and they
    will be replace by trace event later.

    Signed-off-by: Tao Ma

    Tao Ma
     

12 Jan, 2011

1 commit

  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (22 commits)
    MAINTAINERS: Update Joel Becker's email address
    ocfs2: Remove unused truncate function from alloc.c
    ocfs2/cluster: dereferencing before checking in nst_seq_show()
    ocfs2: fix build for OCFS2_FS_STATS not enabled
    ocfs2/cluster: Show o2net timing statistics
    ocfs2/cluster: Track process message timing stats for each socket
    ocfs2/cluster: Track send message timing stats for each socket
    ocfs2/cluster: Use ktime instead of timeval in struct o2net_sock_container
    ocfs2/cluster: Replace timeval with ktime in struct o2net_send_tracking
    ocfs2: Add DEBUG_FS dependency
    ocfs2/dlm: Hard code the values for enums
    ocfs2/dlm: Minor cleanup
    ocfs2/dlm: Cleanup dlmdebug.c
    ocfs2: Release buffer_head in case of error in ocfs2_double_lock.
    ocfs2/cluster: Pin the local node when o2hb thread starts
    ocfs2/cluster: Show pin state for each o2hb region
    ocfs2/cluster: Pin/unpin o2hb regions
    ocfs2/cluster: Remove dropped region from o2hb quorum region bitmap
    ocfs2/cluster: Pin the remote node item in configfs
    ocfs2/dlm: make existing convertion precedent over new lock
    ...

    Linus Torvalds
     

24 Dec, 2010

1 commit


23 Dec, 2010

3 commits


16 Dec, 2010

3 commits


10 Dec, 2010

1 commit

  • o2dlm was not migrating resources with zero locks because it assumed that that
    resource would get purged by dlm_thread. However, some usage patterns involve
    creating and dropping locks at a high rate leading to the migrate thread seeing
    zero locks but the purge thread seeing an active reference. When this happens,
    the dlm_thread cannot purge the resource and the migrate thread sees no reason
    to migrate that resource. The spell is broken when the migrate thread catches
    the resource with a lock.

    The fix is to make the migrate thread also consider the reference map.

    This usage pattern can be triggered by userspace on userdlm locks and flocks.

    Signed-off-by: Sunil Mushran
    Signed-off-by: Joel Becker

    Sunil Mushran
     

19 Nov, 2010

1 commit

  • coccinelle check scripts/coccinelle/locks/call_kern.cocci found that
    in fs/ocfs2/dlm/dlmdomain.c an allocation with GFP_KERNEL is done
    with locks held:

    dlm_query_region_handler
    spin_lock(dlm_domain_lock)
    dlm_match_regions
    kmalloc(GFP_KERNEL)

    Change it to GFP_ATOMIC.

    Signed-off-by: David Sterba
    CC: Joel Becker
    CC: Mark Fasheh
    CC: ocfs2-devel@oss.oracle.com

    --
    Exists in v2.6.37-rc1 and current linux-next.
    Signed-off-by: Joel Becker

    David Sterba
     

16 Oct, 2010

1 commit


10 Oct, 2010

2 commits


08 Oct, 2010

1 commit

  • Adds new dlm message DLM_QUERY_NODEINFO that sends the attributes of all
    registered nodes. This message is sent if the negotiated dlm protocol is
    1.1 or higher. If the information of the joining node does not match
    that of any existing nodes, the join domain request is rejected.

    Signed-off-by: Sunil Mushran

    Sunil Mushran
     

07 Oct, 2010

1 commit


24 Sep, 2010

1 commit

  • While umounting, a block mle doesn't get freed if dlm is shutdown after
    master request is received but before assert master. This results in unclean
    shutdown of dlm domain.

    This patch frees all mles that lie around after other nodes were notified about
    exiting the dlm and marking dlm state as leaving. Only block mles are expected
    to be around, so we log ERROR for other mles but still free them.

    Signed-off-by: Srinivas Eeda
    Signed-off-by: Joel Becker

    Srinivas Eeda
     

16 Sep, 2010

1 commit