19 Apr, 2008

4 commits

  • None of these files use any of the functionality promised by
    asm/semaphore.h.

    Signed-off-by: Matthew Wilcox

    Matthew Wilcox
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.26: (1090 commits)
    [NET]: Fix and allocate less memory for ->priv'less netdevices
    [IPV6]: Fix dangling references on error in fib6_add().
    [NETLABEL]: Fix NULL deref in netlbl_unlabel_staticlist_gen() if ifindex not found
    [PKT_SCHED]: Fix datalen check in tcf_simp_init().
    [INET]: Uninline the __inet_inherit_port call.
    [INET]: Drop the inet_inherit_port() call.
    SCTP: Initialize partial_bytes_acked to 0, when all of the data is acked.
    [netdrvr] forcedeth: internal simplifications; changelog removal
    phylib: factor out get_phy_id from within get_phy_device
    PHY: add BCM5464 support to broadcom PHY driver
    cxgb3: Fix __must_check warning with dev_dbg.
    tc35815: Statistics cleanup
    natsemi: fix MMIO for PPC 44x platforms
    [TIPC]: Cleanup of TIPC reference table code
    [TIPC]: Optimized initialization of TIPC reference table
    [TIPC]: Remove inlining of reference table locking routines
    e1000: convert uint16_t style integers to u16
    ixgb: convert uint16_t style integers to u16
    sb1000.c: make const arrays static
    sb1000.c: stop inlining largish static functions
    ...

    Linus Torvalds
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (64 commits)
    ocfs2/net: Add debug interface to o2net
    ocfs2: Only build ocfs2/dlm with the o2cb stack module
    ocfs2/cluster: Get rid of arguments to the timeout routines
    ocfs2: Put tree in MAINTAINERS
    ocfs2: Use BUG_ON
    ocfs2: Convert ocfs2 over to unlocked_ioctl
    ocfs2: Improve rename locking
    fs/ocfs2/aops.c: test for IS_ERR rather than 0
    ocfs2: Add inode stealing for ocfs2_reserve_new_inode
    ocfs2: Add ac_alloc_slot in ocfs2_alloc_context
    ocfs2: Add a new parameter for ocfs2_reserve_suballoc_bits
    ocfs2: Enable cross extent block merge.
    ocfs2: Add support for cross extent block
    ocfs2: Move /sys/o2cb to /sys/fs/o2cb
    sysfs: Allow removal of symlinks in the sysfs root
    ocfs2: Reconnect after idle time out.
    ocfs2/dlm: Cleanup lockres print
    ocfs2/dlm: Fix lockname in lockres print function
    ocfs2/dlm: Move dlm_print_one_mle() from dlmmaster.c to dlmdebug.c
    ocfs2/dlm: Dumps the purgelist into a debugfs file
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (49 commits)
    [GFS2] fix assertion in log_refund()
    [GFS2] fix GFP_KERNEL misuses
    [GFS2] test for IS_ERR rather than 0
    [GFS2] Invalidate cache at correct point
    [GFS2] fs/gfs2/recovery.c: suppress warnings
    [GFS2] Faster gfs2_bitfit algorithm
    [GFS2] Streamline quota lock/check for no-quota case
    [GFS2] Remove drop of module ref where not needed
    [GFS2] gfs2_adjust_quota has broken unstuffing code
    [GFS2] possible null pointer dereference fixup
    [GFS2] Need to ensure that sector_t is 64bits for GFS2
    [GFS2] re-support special inode
    [GFS2] remove gfs2_dev_iops
    [GFS2] fix file_system_type leak on gfs2meta mount
    [GFS2] Allow bmap to allocate extents
    [GFS2] Fix a page lock / glock deadlock
    [GFS2] proper extern for gfs2/locking/dlm/mount.c:gdlm_ops
    [GFS2] gfs2/ops_file.c should #include "ops_inode.h"
    [GFS2] be*_add_cpu conversion
    [GFS2] Fix bug where we called drop_bh incorrectly
    ...

    Linus Torvalds
     

18 Apr, 2008

36 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
     
  • fs/ocfs2/dlm/ocfs2_dlm.ko and fs/ocfs2/dlm/ocfs2_dlmfs.ko get built if
    CONFIG_FS_OCFS2 is specified. This isn't quite how it should happen any more
    - the "o2cb" dlm modules should only be built if CONFIG_FS_OCFS2_O2CB is
    set, so update the dlm Makefile accordingly.

    Signed-off-by: Mark Fasheh
    Acked-by: Randy Dunlap
    Acked-by: Joel Becker

    Mark Fasheh
     
  • 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
     
  • if (...) BUG(); should be replaced with BUG_ON(...) when the test has no
    side-effects to allow a definition of BUG_ON that drops the code completely.

    The semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @ disable unlikely @ expression E,f; @@

    (
    if () { BUG(); }
    |
    - if (unlikely(E)) { BUG(); }
    + BUG_ON(E);
    )

    @@ expression E,f; @@

    (
    if () { BUG(); }
    |
    - if (E) { BUG(); }
    + BUG_ON(E);
    )
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Andrew Morton
    Signed-off-by: Mark Fasheh

    Julia Lawall
     
  • As far as I can see there is nothing in ocfs2_ioctl that requires the BKL,
    so use unlocked_ioctl

    Signed-off-by: Andi Kleen
    Signed-off-by: Mark Fasheh

    Andi Kleen
     
  • ocfs2_rename() was being too aggressive with the rename lock - we only need
    it for certain forms of directory rename.

    Signed-off-by: Jan Kara
    Signed-off-by: Mark Fasheh

    Jan Kara
     
  • The function ocfs2_start_trans always returns either a valid pointer or a
    value made with ERR_PTR, so its result should be tested with IS_ERR, not
    with a test for 0.

    Signed-off-by: Julia Lawall
    Signed-off-by: Andrew Morton
    Signed-off-by: Mark Fasheh

    Julia Lawall
     
  • Inode allocation is modified to look in other nodes allocators during
    extreme out of space situations. We retry our own slot when space is freed
    back to the global bitmap, or whenever we've allocated more than 1024 inodes
    from another slot.

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

    Tao Ma
     
  • In inode stealing, we no longer restrict the allocation to
    happen in the local node. So it is neccessary for us to add
    a new member in ocfs2_alloc_context to indicate which slot
    we are using for allocation. We also modify the process of
    local alloc so that this member can be used there also.

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

    Tao Ma
     
  • In some cases(Inode stealing from other nodes), we may not want
    ocfs2_reserve_suballoc_bits to allocate new groups from the
    global_bitmap since it may already be full. So add a new parameter
    for this.

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

    Tao Ma
     
  • In ocfs2_figure_merge_contig_type, we judge whether there exists
    a cross extent block merge and enable it by setting CONTIG_LEFT
    and CONTIG_RIGHT accordingly.

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

    Tao Ma
     
  • In ocfs2_merge_rec_left, when we find the merge extent is "CONTIG_RIGHT"
    with the first extent record of the next extent block, we will merge it to
    the next extent block and change all the related extent blocks accordingly.

    In ocfs2_merge_rec_right, when we find the merge extent is "CONTIG_LEFT"
    with the last extent record of the previous extent block, we will merge
    it to the prevoius extent block and change all the related extent blocks
    accordingly.

    As for CONTIG_LEFTRIGHT, we will handle CONTIG_RIGHT first so that when
    the index is zero, the merge process will be more efficient and easier.

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

    Tao Ma
     
  • /sys/fs is where we really want file system specific sysfs objects.

    Ocfs2-tools has been updated to look in /sys/fs/o2cb. We can maintain
    backwards compatibility with old ocfs2-tools by using a sysfs symlink. After
    some time (2 years), the symlink can be safely removed. This patch also adds
    documentation to make it easier for people to figure out what /sys/fs/o2cb
    is used for.

    Signed-off-by: Mark Fasheh

    Mark Fasheh
     
  • Allow callers of sysfs_remove_link() to pass a NULL kobj, in which case
    sysfs_root will be used as the parent directory. This allows us to tear down
    top level symlinks created via sysfs_create_link(), which already has
    similar handling of a NULL parent object.

    Signed-off-by: Mark Fasheh
    Acked-by: Greg Kroah-Hartman

    Mark Fasheh
     
  • 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
     
  • A previous patch added KERN_NOTICE to printks printing the lockres that
    cluttered the output. This patch removes the log level. For people concerned
    with syslog clutter, please note we now use this facility to print lockres
    only during an error.

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

    Sunil Mushran
     
  • __dlm_print_one_lock_resource was printing lockname incorrectly.
    Also, we now use printk directly instead of mlog as the latter prints
    the line context which is not useful for this print.

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

    Sunil Mushran
     
  • This patch helps in consolidating debugging related functions in dlmdebug.c.

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

    Sunil Mushran
     
  • This patch dumps all the lockres' on the purgelist it can fit in one page
    into a debugfs file. Useful for debugging.

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

    Sunil Mushran
     
  • This patch dumps all mles it can fit in one page into a debugfs file.
    Useful for debugging.

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

    Sunil Mushran
     
  • This patch moves some mle related definitions from dlmmaster.c
    to dlmcommon.h. Future patches need these definitions to dump mle
    debugging information.

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

    Sunil Mushran
     
  • This patch dumps all the lockres' alongwith all the locks into
    a debugfs file. Useful for debugging.

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

    Sunil Mushran
     
  • This patch dumps the dlm state (dlm_ctxt) into a debugfs file.
    Useful for debugging.

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

    Sunil Mushran
     
  • This patch creates the debugfs directories that will hold the
    files to be used to dump the dlm state.

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

    Sunil Mushran
     
  • This patch links all the lockres' to a tracking list in dlm_ctxt.
    We will use this in an upcoming patch that will walk the entire
    list and to dump the lockres states to a debugfs file.

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

    Sunil Mushran
     
  • This patch makes the o2dlm allocate memory for lockres, lockname and lock
    structures from slabcaches rather than kmalloc. This allows us to not only
    make these allocs more efficient but also allows us to track the memory being
    consumed by these structures.

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

    Sunil Mushran
     
  • This patch renames dlm_mle_slabcache to prevent namespace clashes with fs/dlm.

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

    Sunil Mushran
     
  • ocfs2 now supports plug-ins for the classic O2CB stack as well as
    userspace cluster stacks in conjunction with fs/dlm. This allows zero,
    one, or both of the plug-ins to be selected in Kconfig. For local mounts
    (non-clustered), neither plug-in is needed. Both plugins can be loaded
    at one time, the runtime will select the one needed for the cluster
    systme in use.

    Signed-off-by: Joel Becker
    Signed-off-by: Mark Fasheh

    Joel Becker
     
  • Add ocfs2_stack_user.ko to the Makefile so that it builds.

    Signed-off-by: Joel Becker
    Signed-off-by: Mark Fasheh

    Joel Becker
     
  • The masklog code is in the o2cb stack, but ocfs2_lockid.h now needs to
    be included by the user stack. The BUG() in ocfs2_lock_type_string()
    does not need masklog support, so change it to a regular BUG_ON().

    Signed-off-by: Joel Becker
    Signed-off-by: Mark Fasheh

    Joel Becker
     
  • Add code to use fs/dlm.

    [ Modified to be part of the stack_user module -- Joel ]

    Signed-off-by: David Teigland
    Signed-off-by: Joel Becker
    Signed-off-by: Mark Fasheh

    David Teigland
     
  • The "SETV" message sets the filesystem locking protocol version as
    negotiated by the client. The client negotiates based on the maximum
    version advertised in /sys/fs/ocfs2/max_locking_protocol.

    Signed-off-by: Joel Becker
    Signed-off-by: Mark Fasheh

    Joel Becker
     
  • This is the second part of the ocfs2_control handshake. After
    negotiating the ocfs2_control protocol, the daemon tells the filesystem
    what the local node id is via the SETN message.

    Signed-off-by: Joel Becker
    Signed-off-by: Mark Fasheh

    Joel Becker
     
  • When the control daemon sees a node go down, it sends a DOWN message
    through the ocfs2_control device.

    Signed-off-by: Joel Becker
    Signed-off-by: Mark Fasheh

    Joel Becker
     
  • When a control daemon opens the ocfs2_control device, it must perform a
    handshake to tell the filesystem it is something capable of monitoring
    cluster status. Only after the handshake is complete will the filesystem
    allow mounts.

    This is the first part of the handshake. The daemon reads all supported
    ocfs2_control protocols, then writes in the protocol it will use.

    Signed-off-by: Joel Becker
    Signed-off-by: Mark Fasheh

    Joel Becker
     
  • The ocfs2_control misc device is how a userspace control daemon (controld)
    talks to the filesystem. Introduce the bare-bones filesystem ops.

    Signed-off-by: Joel Becker
    Signed-off-by: Mark Fasheh

    Joel Becker