17 Aug, 2011

1 commit


27 Jul, 2011

1 commit

  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:
    jbd: change the field "b_cow_tid" of struct journal_head from type unsigned to tid_t
    ext3.txt: update the links in the section "useful links" to the latest ones
    ext3: Fix data corruption in inodes with journalled data
    ext2: check xattr name_len before acquiring xattr_sem in ext2_xattr_get
    ext3: Fix compilation with -DDX_DEBUG
    quota: Remove unused declaration
    jbd: Use WRITE_SYNC in journal checkpoint.
    jbd: Fix oops in journal_remove_journal_head()
    ext3: Return -EINVAL when start is beyond the end of fs in ext3_trim_fs()
    ext3/ioctl.c: silence sparse warnings about different address spaces
    ext3/ext4 Documentation: remove bh/nobh since it has been deprecated
    ext3: Improve truncate error handling
    ext3: use proper little-endian bitops
    ext2: include fs.h into ext2_fs.h
    ext3: Fix oops in ext3_try_to_allocate_with_rsv()
    jbd: fix a bug of leaking jh->b_jcount
    jbd: remove dependency on __GFP_NOFAIL
    ext3: Convert ext3 to new truncate calling convention
    jbd: Add fixed tracepoints
    ext3: Add fixed tracepoints

    Resolve conflicts in fs/ext3/fsync.c due to fsync locking push-down and
    new fixed tracepoints.

    Linus Torvalds
     

21 Jul, 2011

1 commit

  • Btrfs needs to be able to control how filemap_write_and_wait_range() is called
    in fsync to make it less of a painful operation, so push down taking i_mutex and
    the calling of filemap_write_and_wait() down into the ->fsync() handlers. Some
    file systems can drop taking the i_mutex altogether it seems, like ext3 and
    ocfs2. For correctness sake I just pushed everything down in all cases to make
    sure that we keep the current behavior the same for everybody, and then each
    individual fs maintainer can make up their mind about what to do from there.
    Thanks,

    Acked-by: Jan Kara
    Signed-off-by: Josef Bacik
    Signed-off-by: Al Viro

    Josef Bacik
     

25 Jun, 2011

1 commit

  • This commit adds fixed tracepoints to the ext3 code. It is based on ext4
    tracepoints, however due to the differences of both file systems, there
    are some tracepoints missing (those for delaloc and for multi-block
    allocator) and there are some ext3 specific as well (for reservation
    windows).

    Here is a list:

    ext3_free_inode
    ext3_request_inode
    ext3_allocate_inode
    ext3_evict_inode
    ext3_drop_inode
    ext3_mark_inode_dirty
    ext3_write_begin
    ext3_ordered_write_end
    ext3_writeback_write_end
    ext3_journalled_write_end
    ext3_ordered_writepage
    ext3_writeback_writepage
    ext3_journalled_writepage
    ext3_readpage
    ext3_releasepage
    ext3_invalidatepage
    ext3_discard_blocks
    ext3_request_blocks
    ext3_allocate_blocks
    ext3_free_blocks
    ext3_sync_file_enter
    ext3_sync_file_exit
    ext3_sync_fs
    ext3_rsv_window_add
    ext3_discard_reservation
    ext3_alloc_new_reservation
    ext3_reserved
    ext3_forget
    ext3_read_block_bitmap
    ext3_direct_IO_enter
    ext3_direct_IO_exit
    ext3_unlink_enter
    ext3_unlink_exit
    ext3_truncate_enter
    ext3_truncate_exit
    ext3_get_blocks_enter
    ext3_get_blocks_exit
    ext3_load_inode

    Signed-off-by: Lukas Czerner
    Cc: Jan Kara
    Signed-off-by: Jan Kara

    Lukas Czerner
     

17 Sep, 2010

1 commit

  • All the blkdev_issue_* helpers can only sanely be used for synchronous
    caller. To issue cache flushes or barriers asynchronously the caller needs
    to set up a bio by itself with a completion callback to move the asynchronous
    state machine ahead. So drop the BLKDEV_IFL_WAIT flag that is always
    specified when calling blkdev_issue_* and also remove the now unused flags
    argument to blkdev_issue_flush and blkdev_issue_zeroout. For
    blkdev_issue_discard we need to keep it for the secure discard flag, which
    gains a more descriptive name and loses the bitops vs flag confusion.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

28 May, 2010

1 commit


22 May, 2010

2 commits


29 Apr, 2010

1 commit


11 Nov, 2009

1 commit

  • We cannot rely on buffer dirty bits during fsync because pdflush can come
    before fsync is called and clear dirty bits without forcing a transaction
    commit. What we do is that we track which transaction has last changed
    the inode and which transaction last changed allocation and force it to
    disk on fsync.

    Signed-off-by: Jan Kara
    Reviewed-by: Aneesh Kumar K.V

    Jan Kara
     

16 Sep, 2009

1 commit

  • In case we fsync() a file and inode is not dirty, we don't force a transaction
    to disk and hence don't flush disk caches. Thus file data could be just in disk
    caches and not on persistent storage. Fix the problem by flushing disk caches
    if we didn't force a transaction commit.

    Signed-off-by: Jan Kara

    Jan Kara
     

28 Apr, 2008

1 commit

  • Currently fdatasync is identical to fsync in ext3.

    I think fdatasync should skip journal flush in data=ordered and
    data=writeback mode when it overwrites to already-instantiated blocks on
    HDD. When I_DIRTY_DATASYNC flag is not set, fdatasync should skip journal
    writeout because this indicates only atime or/and mtime updates.

    Following patch is the same approach of ext2's fsync code(ext2_sync_file).

    I did a performance test using the sysbench.

    #sysbench --num-threads=128 --max-requests=50000 --test=fileio --file-total-size=128G
    --file-test-mode=rndwr --file-fsync-mode=fdatasync run

    The result on ext3 was:

    -2.6.24
    Operations performed: 0 Read, 50080 Write, 59600 Other = 109680 Total
    Read 0b Written 782.5Mb Total transferred 782.5Mb (12.116Mb/sec)
    775.45 Requests/sec executed

    Test execution summary:
    total time: 64.5814s
    total number of events: 50080
    total time taken by event execution: 3713.9836
    per-request statistics:
    min: 0.0000s
    avg: 0.0742s
    max: 0.9375s
    approx. 95 percentile: 0.2901s

    Threads fairness:
    events (avg/stddev): 391.2500/23.26
    execution time (avg/stddev): 29.0155/1.99

    -2.6.24-patched
    Operations performed: 0 Read, 50009 Write, 61596 Other = 111605 Total
    Read 0b Written 781.39Mb Total transferred 781.39Mb (16.419Mb/sec)
    1050.83 Requests/sec executed

    Test execution summary:
    total time: 47.5900s
    total number of events: 50009
    total time taken by event execution: 2934.5768
    per-request statistics:
    min: 0.0000s
    avg: 0.0587s
    max: 0.8938s
    approx. 95 percentile: 0.1993s

    Threads fairness:
    events (avg/stddev): 390.6953/22.64
    execution time (avg/stddev): 22.9264/1.17

    Filesystem I/O throughput was improved.

    Signed-off-by :Hisashi Hifumi
    Acked-by: Jan Kara
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hisashi Hifumi
     

19 Oct, 2007

1 commit

  • Get rid of sparse related warnings from places that use integer as NULL
    pointer.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Stephen Hemminger
    Cc: Andi Kleen
    Cc: Jeff Garzik
    Cc: Matt Mackall
    Cc: Ian Kent
    Cc: Arnd Bergmann
    Cc: Davide Libenzi
    Cc: Stephen Smalley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Hemminger
     

27 Sep, 2006

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds