06 Jun, 2013

1 commit

  • Use a more current logging style.

    Add __printf format and argument verification.

    Remove embedded function names from formats.
    Add %pf, __builtin_return_address(0) to jfs_error.
    Add newlines to formats for kernel style consistency.
    (One format already had an erroneous newline)
    Coalesce formats and align arguments.

    Object size reduced ~1KiB.

    $ size fs/jfs/built-in.o*
    text data bss dec hex filename
    201891 35488 63936 301315 49903 fs/jfs/built-in.o.new
    202821 35488 64192 302501 49da5 fs/jfs/built-in.o.old

    Signed-off-by: Joe Perches
    Signed-off-by: Dave Kleikamp

    Joe Perches
     

18 Sep, 2012

1 commit


22 Nov, 2011

1 commit

  • There is no reason to export two functions for entering the
    refrigerator. Calling refrigerator() instead of try_to_freeze()
    doesn't save anything noticeable or removes any race condition.

    * Rename refrigerator() to __refrigerator() and make it return bool
    indicating whether it scheduled out for freezing.

    * Update try_to_freeze() to return bool and relay the return value of
    __refrigerator() if freezing().

    * Convert all refrigerator() users to try_to_freeze().

    * Update documentation accordingly.

    * While at it, add might_sleep() to try_to_freeze().

    Signed-off-by: Tejun Heo
    Cc: Samuel Ortiz
    Cc: Chris Mason
    Cc: "Theodore Ts'o"
    Cc: Steven Whitehouse
    Cc: Andrew Morton
    Cc: Jan Kara
    Cc: KONISHI Ryusuke
    Cc: Christoph Hellwig

    Tejun Heo
     

26 Jul, 2011

1 commit


31 Mar, 2011

1 commit


26 Oct, 2010

1 commit


18 Dec, 2009

1 commit

  • After I_SYNC was split from I_LOCK the leftover is always used together with
    I_NEW and thus superflous.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     

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