13 May, 2008

1 commit


17 Oct, 2007

1 commit

  • I_LOCK was used for several unrelated purposes, which caused deadlock
    situations in certain filesystems as a side effect. One of the purposes
    now uses the new I_SYNC bit.

    Also document the various bits and change their order from historical to
    logical.

    [bunk@stusta.de: make fs/inode.c:wake_up_inode() static]
    Signed-off-by: Joern Engel
    Cc: Dave Kleikamp
    Cc: David Chinner
    Cc: Anton Altaparmakov
    Cc: Al Viro
    Cc: Christoph Hellwig
    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joern Engel
     

13 Jun, 2007

1 commit


07 Jun, 2007

2 commits


09 May, 2007

2 commits


26 Apr, 2007

1 commit


10 Feb, 2007

1 commit


18 Jan, 2007

1 commit

  • The introduction of Jens Axboe's explicit i/o plugging patches introduced a
    deadlock in jfs. This was caused by the process initiating I/O not
    unplugging the queue before waiting on the commit thread. The commit
    thread itself was waiting for that I/O to complete. Calling io_schedule()
    rather than schedule() unplugs the I/O queue avoiding the deadlock, and it
    appears to be the right function to call in any case.

    Signed-off-by: Dave Kleikamp

    Dave Kleikamp
     

08 Dec, 2006

1 commit


02 Oct, 2006

2 commits


01 Oct, 2006

1 commit


27 Sep, 2006

1 commit


16 Jul, 2006

1 commit


01 Jul, 2006

1 commit


05 Jun, 2006

1 commit

  • I look at code, and see that
    1)locks wasn't release in the opposite order in which they were taken
    2)in jfs_rename we lock new_ip, and in "error path" we didn't unlock it
    3)I see strange expression: "! !"

    May be this worth to fix?

    Signed-off-by: Evgeniy Dushistov
    Signed-off-by: Dave Kleikamp

    Evgeniy Dushistov
     

16 Feb, 2006

1 commit


25 Jan, 2006

1 commit


09 Jan, 2006

1 commit

  • This patch add EXPORT_SYMBOL(filemap_write_and_wait) and use it.

    See mm/filemap.c:

    And changes the filemap_write_and_wait() and filemap_write_and_wait_range().

    Current filemap_write_and_wait() doesn't wait if filemap_fdatawrite()
    returns error. However, even if filemap_fdatawrite() returned an
    error, it may have submitted the partially data pages to the device.
    (e.g. in the case of -ENOSPC)

    Andrew Morton writes,

    If filemap_fdatawrite() returns an error, this might be due to some
    I/O problem: dead disk, unplugged cable, etc. Given the generally
    crappy quality of the kernel's handling of such exceptions, there's a
    good chance that the filemap_fdatawait() will get stuck in D state
    forever.

    So, this patch doesn't wait if filemap_fdatawrite() returns the -EIO.

    Trond, could you please review the nfs part? Especially I'm not sure,
    nfs must use the "filemap_fdatawrite(inode->i_mapping) == 0", or not.

    Acked-by: Trond Myklebust
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     

04 Oct, 2005

1 commit

  • This patch fixes up a few problems with jfs's reserved inodes.

    1. There is no need for the jfs code setting the I_DIRTY bits in i_state.
    I am ashamed that the code ever did this, and surprised it hasn't been
    noticed until now.

    2. Make sure special inodes are on an inode hash list. If the inodes are
    unhashed, __mark_inode_dirty will fail to put the inode on the
    superblock's dirty list, and the data will not be flushed under memory
    pressure.

    3. Force writing journal data to disk when metapage_writepage is unable to
    write a metadata page due to pending journal I/O.

    Signed-off-by: Dave Kleikamp

    Dave Kleikamp
     

21 Sep, 2005

1 commit


16 Sep, 2005

1 commit


11 Aug, 2005

1 commit

  • TxAnchor.anon_list is protected by jfsTxnLock (TXN_LOCK), but there was
    a place in txLock() that was removing an entry from the list without holding
    the spinlock.

    Signed-off-by: Dave Kleikamp

    Dave Kleikamp
     

27 Jul, 2005

1 commit

  • Under heavy load, hot metadata pages are often locked by non-committed
    transactions, making them difficult to flush to disk. This prevents
    the sync point from advancing past a transaction that had modified the
    page.

    There is a point during the sync barrier processing where all
    outstanding transactions have been committed to disk, but no new
    transaction have been allowed to proceed. This is the best time
    to write the metadata.

    Signed-off-by: Dave Kleikamp

    Dave Kleikamp
     

26 Jun, 2005

1 commit

  • 1. Establish a simple API for process freezing defined in linux/include/sched.h:

    frozen(process) Check for frozen process
    freezing(process) Check if a process is being frozen
    freeze(process) Tell a process to freeze (go to refrigerator)
    thaw_process(process) Restart process
    frozen_process(process) Process is frozen now

    2. Remove all references to PF_FREEZE and PF_FROZEN from all
    kernel sources except sched.h

    3. Fix numerous locations where try_to_freeze is manually done by a driver

    4. Remove the argument that is no longer necessary from two function calls.

    5. Some whitespace cleanup

    6. Clear potential race in refrigerator (provides an open window of PF_FREEZE
    cleared before setting PF_FROZEN, recalc_sigpending does not check
    PF_FROZEN).

    This patch does not address the problem of freeze_processes() violating the rule
    that a task may only modify its own flags by setting PF_FREEZE. This is not clean
    in an SMP environment. freeze(process) is therefore not SMP safe!

    Signed-off-by: Christoph Lameter
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

05 May, 2005

1 commit


03 May, 2005

3 commits

  • This patch adds jfs_syncpt, which calls lmLogSync to write sync points
    to the journal both in jfs_sync_fs and when sync barrier processing
    completes.

    lmLogSync accomplishes two things: 1) it pushes logged-but-dirty
    metadata pages to disk, and 2) it writes a sync record to the journal
    so that jfs_fsck doesn't need to replay more transactions than is
    necessary.

    Signed-off-by: Dave Kleikamp
    Signed-off-by: Linus Torvalds

    Dave Kleikamp
     
  • jfs has never worked on architecutures where the page size was not 4K.

    Signed-off-by: Dave Kleikamp
    Signed-off-by: Linus Torvalds

    Dave Kleikamp
     
  • Use an inline pxd list rather than an xad list in the xadlock.
    When the number of extents being modified can fit with the xadlock,
    a transaction can be committed asynchronously. Using a list of
    pxd's instead of xad's allows us to fit 4 extents, rather than 2.

    Signed-off-by: Dave Kleikamp
    Signed-off-by: Linus Torvalds

    Dave Kleikamp
     

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