26 Mar, 2016

1 commit

  • Clean up ocfs2_file_write_iter & ocfs2_prepare_inode_for_write:
    * remove append dio check: it will be checked in ocfs2_direct_IO()
    * remove file hole check: file hole is supported for now
    * remove inline data check: it will be checked in ocfs2_direct_IO()
    * remove the full_coherence check when append dio: we will get the
    inode_lock in ocfs2_dio_get_block, there is no need to fall back to
    buffer io to ensure the coherence semantics.

    Now the drop dio procedure is gone. :)

    [akpm@linux-foundation.org: remove unused label]
    Signed-off-by: Ryan Ding
    Reviewed-by: Junxiao Bi
    Cc: Joseph Qi
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ryan Ding
     

23 Mar, 2016

1 commit


09 Feb, 2016

1 commit


24 Jun, 2014

1 commit

  • When running dirop_fileop_racer we found a dead lock case.

    2 nodes, say Node A and Node B, mount the same ocfs2 volume. Create
    /race/16/1 in the filesystem, and let the inode number of dir 16 is less
    than the inode number of dir race.

    Node A Node B
    mv /race/16/1 /race/
    right after Node A has got the
    EX mode of /race/16/, and tries to
    get EX mode of /race
    ls /race/16/

    In this case, Node A has got the EX mode of /race/16/, and wants to get EX
    mode of /race/. Node B has got the PR mode of /race/, and wants to get
    the PR mode of /race/16/. Since EX and PR are mutually exclusive, dead
    lock happens.

    This patch fixes this case by locking in ancestor order before trying
    inode number order.

    Signed-off-by: Yiwen Jiang
    Signed-off-by: Joseph Qi
    Cc: Joel Becker
    Reviewed-by: Mark Fasheh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yiwen Jiang
     

12 Sep, 2013

1 commit

  • The issue scenario is as following:

    When fallocating a very large disk space for a small file,
    __ocfs2_extend_allocation attempts to get a very large transaction. For
    some journal sizes, there may be not enough room for this transaction,
    and the fallocate will fail.

    The patch below extends & restarts the transaction as necessary while
    allocating space, and should work with even the smallest journal. This
    patch refers ext4 resize.

    Test:
    # mkfs.ocfs2 -b 4K -C 32K -T datafiles /dev/sdc
    ...(jounral size is 32M)
    # mount.ocfs2 /dev/sdc /mnt/ocfs2/
    # touch /mnt/ocfs2/1.log
    # fallocate -o 0 -l 400G /mnt/ocfs2/1.log
    fallocate: /mnt/ocfs2/1.log: fallocate failed: Cannot allocate memory
    # tail -f /var/log/messages
    [ 7372.278591] JBD: fallocate wants too many credits (2051 > 2048)
    [ 7372.278597] (fallocate,6438,0):__ocfs2_extend_allocation:709 ERROR: status = -12
    [ 7372.278603] (fallocate,6438,0):ocfs2_allocate_unwritten_extents:1504 ERROR: status = -12
    [ 7372.278607] (fallocate,6438,0):__ocfs2_change_file_space:1955 ERROR: status = -12
    ^C
    With this patch, the test works well.

    Signed-off-by: Younger Liu
    Cc: Jie Liu
    Cc: Joel Becker
    Cc: Mark Fasheh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Younger Liu
     

24 May, 2011

1 commit


24 Feb, 2011

4 commits


23 Feb, 2011

9 commits


22 Feb, 2011

11 commits


21 Feb, 2011

1 commit

  • About one year ago, Wengang Wang tried some first steps
    to add tracepoints to ocfs2. Hiss original patch is here:
    http://oss.oracle.com/pipermail/ocfs2-devel/2009-November/005512.html

    But as Steven Rostedt indicated in his article
    http://lwn.net/Articles/383362/, we'd better have our trace
    files resides in fs/ocfs2, so I rewrited the patch using the
    method Steven mentioned in that article.

    Signed-off-by: Wengang Wang
    Signed-off-by: Tao Ma

    Wengang Wang