17 Nov, 2008

1 commit

  • When an I/O error occurs during an intermediate commit on a rolling
    transaction, xfs_trans_commit() will free the transaction structure
    and the related ticket. However, the duplicate transaction that
    gets used as the transaction continues still contains a pointer
    to the ticket. Hence when the duplicate transaction is cancelled
    and freed, we free the ticket a second time.

    Add reference counting to the ticket so that we hold an extra
    reference to the ticket over the transaction commit. We drop the
    extra reference once we have checked that the transaction commit
    did not return an error, thus avoiding a double free on commit
    error.

    Credit to Nick Piggin for tripping over the problem.

    SGI-PV: 989741

    Signed-off-by: Dave Chinner
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Lachlan McIlroy

    Dave Chinner
     

13 Aug, 2008

1 commit


18 Apr, 2008

1 commit

  • xfs_log_force() is declared to return an error, but we almost never check
    it. We don't need to check it in most cases; if there's a log I/O error
    then we'll be shutting down the filesystem anyway and that means we'll
    catch the error somewhere else.

    However, on certain calls we should be returning an error - sync
    transactions, fsync, sync writes, etc. so this isn't a pure black and
    white distinction. Hence make xfs_log_force() a void function that issues
    a warning to the syslog on error, and call _xfs_log_force() in all the
    places where we actually care about the error status returned.

    SGI-PV: 980084
    SGI-Modid: xfs-linux-melb:xfs-kern:30832a

    Signed-off-by: David Chinner
    Signed-off-by: Niv Sardi
    Signed-off-by: Lachlan McIlroy

    David Chinner
     

07 Feb, 2008

1 commit

  • Mostly trivial conversion with one exceptions: h_num_logops was kept in
    native endian previously and only converted to big endian in xlog_sync,
    but we always keep it big endian now. With todays cpus fast byteswap
    instructions that's not an issue but the new variant keeps the code clean
    and maintainable.

    SGI-PV: 971186
    SGI-Modid: xfs-linux-melb:xfs-kern:29821a

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Lachlan McIlroy
    Signed-off-by: Tim Shimmin

    Christoph Hellwig
     

28 Sep, 2006

1 commit


29 Mar, 2006

1 commit


11 Jan, 2006

1 commit


09 Jan, 2006

1 commit

  • Remove various things which were checking for gcc-1.x and gcc-2.x compilers.

    From: Adrian Bunk

    Some documentation updates and removes some code paths for gcc < 3.2.

    Acked-by: Russell King
    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

02 Nov, 2005

2 commits

  • boilerplate.

    SGI-PV: 913862
    SGI-Modid: xfs-linux:xfs-kern:23903a

    Signed-off-by: Nathan Scott

    Nathan Scott
     
  • writes. In addition flush the disk cache on fsync if the sync cached
    operation didn't sync the log to disk (this requires some additional
    bookeping in the transaction and log code). If the device doesn't claim to
    support barriers, the filesystem has an extern log volume or the trial
    superblock write with barriers enabled failed we disable barriers and
    print a warning. We should probably fail the mount completely, but that
    could lead to nasty boot failures for the root filesystem. Not enabled by
    default yet, needs more destructive testing first.

    SGI-PV: 912426
    SGI-Modid: xfs-linux:xfs-kern:198723a

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Nathan Scott

    Christoph Hellwig
     

02 Sep, 2005

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