xfs
[Top] [All Lists]

[XFS updates] XFS public tree - master for latest XFS changes for mainli

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS public tree - master for latest XFS changes for mainline, xfs-dev like master with kdb/dmapi branch, xfs-dev, updated. v2.6.28-rc3-200-g9e14eb7
From: "Niv Sardi" <xaiki@xxxxxxx>
Date: Sun, 30 Nov 2008 18:53:14 -0600
Updates for the "XFS public tree - master for latest XFS changes for mainline, 
xfs-dev like master with kdb/dmapi" project have been committed to
the repository at "git://oss.sgi.com/xfs/xfs.git"

The branch, xfs-dev has been updated
       via  9e14eb7e4f0e6e208f74ab8fd4f2d1b981b6e56b (commit)
       via  8be9aa85d73d3d550faf0fd53a4ee3a0a0b7f151 (commit)
       via  c460e99dcef708297ba17861ef83a477267886ce (commit)
       via  bab371f63710f2a315c66476a2af40fa9162b2df (commit)
       via  b7f301ac5234b5652538284c54367b2abed46b8e (commit)
       via  34c94b195d5d665c33d81d77d2351bc1fafe19a5 (commit)
       via  02978741fd094e05bca0f05f8ddb8b04ae8deb8e (commit)
       via  7cf689366b1757f872babe1c09c76ec613c0ab48 (commit)
       via  42547de962feb780878eba2ad0e3263acf021d7f (commit)
       via  084dc9eae047653d1040cbd7bae773fdb2da3cab (commit)
       via  bacabb5694d41f8f99e00fd74eccead4470d4d34 (commit)
       via  9b4fb46c5a37269d548d51c290858ab7f335ccb9 (commit)
       via  fd289cecc7e644747ea26beafc1675c7e9693588 (commit)
       via  36a479249ce3338cae6384ddcc22ff5d9f206263 (commit)
       via  19fb0833fd1eac6918bcabe7a1fe6086415a2452 (commit)
       via  8e7e32d6127cb9d9ab8757b005c76a8505c3378a (commit)
       via  d00a8ea98f64cc483d3c76d2d45f7aac4eab567f (commit)
       via  ab01b9528262435113feb3a978d78af75d1e56bb (commit)
       via  461b6811dc15a55f908bbd102396ae55027cb293 (commit)
       via  edffd02cf7c91ab6e75acdb93315e4f7402048e4 (commit)
       via  7a2c8a2187dd8ba55e0a8be78eee72150dfd0084 (commit)
       via  3c9845a7d3260b29a865256af2e750d9425b2361 (commit)
       via  07ca4e51e5872e2ec4f47ceccd8df6a84cc80056 (commit)
       via  bcdec7acbf2f51036391528bac531dc46f3ed3c0 (commit)
       via  23df1bb30a2f700a7bd2c44870a08e81f19c05a1 (commit)
       via  177ae5f0fb59f2a1148ffcfe51190a1705f4db7a (commit)
       via  30522794a24f8333637e6a1a784aa3e9aa3975ed (commit)
       via  8c544c7e246771de1e92a79d17363120f5719c8d (commit)
       via  9ba1e050163a7cd52c84df3cc8a5dd7ee6ce670d (commit)
       via  b5add6dc866d7f458ff16f9f95478d6ee0179ff9 (commit)
      from  a37b56aae9ae750b7076c5a838a0170189993cf2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 9e14eb7e4f0e6e208f74ab8fd4f2d1b981b6e56b
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:42 2008 +1100

    [XFS] fix error handling in xlog_recover_process_one_iunlink
    
    If we fail after xfs_iget we have to drop the reference count, spotted
    by Dave Chinner.  Also remove some useless asserts and stop trying to
    deal with di_mode == 0 inodes because never gets those without passing
    the IGET_CREATE flag to xfs_iget.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 8be9aa85d73d3d550faf0fd53a4ee3a0a0b7f151
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:42 2008 +1100

    [XFS] move inode allocation out xfs_iread
    
    Allocate the inode in xfs_iget_cache_miss and pass it into xfs_iread.  This
    simplifies the error handling and allows xfs_iread to be shared with 
userspace
    which already uses these semantics.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit c460e99dcef708297ba17861ef83a477267886ce
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:41 2008 +1100

    [XFS] kill the XFS_IMAP_BULKSTAT flag
    
    Just pass down the XFS_IGET_* flags all the way down to xfs_imap instead
    of translating them mid-way.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit bab371f63710f2a315c66476a2af40fa9162b2df
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:41 2008 +1100

    [XFS] embededd struct xfs_imap into xfs_inode
    
    Most uses of struct xfs_imap are to map and inode to a buffer.  To avoid
    copying around the inode location information we should just embedd a
    strcut xfs_imap into the xfs_inode.  To make sure it doesn't bloat an
    inode the im_len is changed to a ushort, which is fine as that's what
    the users exepect anyway.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit b7f301ac5234b5652538284c54367b2abed46b8e
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:41 2008 +1100

    [XFS] merge xfs_imap into xfs_dilocate
    
    xfs_imap is the only caller of xfs_dilocate and doesn't add any significant
    value.  Merge the two functions and document the various cases we have for
    inode cluster lookup in the new xfs_imap.
    
    Also remove the unused im_agblkno and im_ioffset fields from struct xfs_imap
    while we're at it.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 34c94b195d5d665c33d81d77d2351bc1fafe19a5
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:40 2008 +1100

    [XFS] remove dead code for old inode item recovery
    
    We have removed the support for old-style inode items a while ago and
    xlog_recover_do_inode_trans is now only called for XFS_LI_INODE items.
    That means we can remove the call to xfs_imap there and with it the
    XFS_IMAP_LOOKUP that is set by all other callers.  We can also mark
    xfs_imap static now.
    
    (First sent on October 21st)
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 02978741fd094e05bca0f05f8ddb8b04ae8deb8e
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:40 2008 +1100

    [XFS] stop using xfs_itobp in xfs_iread
    
    The only caller of xfs_itobp that doesn't have i_blkno setup is now
    the initial inode read.  It needs access to the whole xfs_imap so using
    xfs_inotobp is not an option.  Instead opencode the buffer lookup in
    xfs_iread and kill all the functionality for the initial map from
    xfs_itobp.
    
    (First sent on October 21st)
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 7cf689366b1757f872babe1c09c76ec613c0ab48
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:40 2008 +1100

    [XFS] split up xlog_recover_process_iunlinks
    
    Split out the body of the main loop into a separate helper to make the
    code readable.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 42547de962feb780878eba2ad0e3263acf021d7f
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:39 2008 +1100

    [XFS] kill XFS_DINODE_VERSION_ defines
    
    These names don't add any value at all over just using the numerical
    values.
    
    (First sent on October 9th)
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 084dc9eae047653d1040cbd7bae773fdb2da3cab
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:39 2008 +1100

    [XFS] kill xfs_dinode_core_t
    
    Now that we have a separate xfs_icdinode_t for the in-core inode which
    gets logged there is no need anymore for the xfs_dinode vs xfs_dinode_core
    split - the fact that part of the structure gets logged through the inode
    log item and a small part not can better be described in a comment.
    
    All sizeof operations on the dinode_core either really wanted the
    icdinode and are switched to that one, or had already added the size
    of the agi unlinked list pointer.  Later both will be replaced with
    helpers once we get the larger CRC-enabled dinode.
    
    Removing the data and attribute fork unions also has the advantage that
    xfs_dinode.h doesn't need to pull in every header under the sun.
    
    While we're at it also add some more comments describing the dinode
    structure.
    
    (First sent on October 7th)
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit bacabb5694d41f8f99e00fd74eccead4470d4d34
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:38 2008 +1100

    [XFS] kill xfs_ialloc_log_di
    
    xfs_ialloc_log_di is only used to log the full inode core + 
di_next_unlinked.
    That means all the offset magic is not nessecary and we can simply use
    xfs_trans_log_buf directly.  Also add a comment describing what we should do
    here instead.
    
    (First sent on October 7th)
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 9b4fb46c5a37269d548d51c290858ab7f335ccb9
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:38 2008 +1100

    [XFS] sanitize xlog_in_core_t definition
    
    Move all fields from xlog_iclog_fields_t into xlog_in_core_t instead of 
having
    them in a substructure and the using #defines to make it look like they were
    directly in xlog_in_core_t.  Also document that xlog_in_core_2_t is grossly
    misnamed, and make all references to it typesafe.
    
    (First sent on Semptember 15th)
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit fd289cecc7e644747ea26beafc1675c7e9693588
Author: From: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:38 2008 +1100

    [XFS] factor out xfs_read_agf helper
    
    Add a helper to read the AGF header and perform basic verification.
    Based on hunks from a larger patch from Dave Chinner.
    
    (First sent on Juli 23rd)
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 36a479249ce3338cae6384ddcc22ff5d9f206263
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:37 2008 +1100

    [XFS] factor out xfs_read_agi helper
    
    Add a helper to read the AGI header and perform basic verification.
    Based on hunks from a larger patch from Dave Chinner.
    
    (First sent on Juli 23rd)
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 19fb0833fd1eac6918bcabe7a1fe6086415a2452
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date:   Fri Nov 28 14:23:37 2008 +1100

    [XFS] remove i_gen from incore inode
    
    i_gen is incremented in directory operations when the
    directory is changed. It is never read or otherwise used
    so it should be removed to help reduce the size of the
    struct xfs_inode.
    
    The patch also removes a duplicate logging of the directory
    inode core. We only need to do this once per transaction
    so kill the one associated with the i_gen increment.
    
    Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 8e7e32d6127cb9d9ab8757b005c76a8505c3378a
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Fri Nov 28 14:23:37 2008 +1100

    [XFS] remove xfs_vfsops.h
    
    The only thing left is xfs_do_force_shutdown which already has a defintion
    in xfs_mount.h.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit d00a8ea98f64cc483d3c76d2d45f7aac4eab567f
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:36 2008 +1100

    [XFS] remove xfs_vfs.h
    
    The only thing left are the forced shutdown flags and freeze macros which
    fit into xfs_mount.h much better.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit ab01b9528262435113feb3a978d78af75d1e56bb
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Fri Nov 28 14:23:36 2008 +1100

    [XFS] remove bhv_statvfs_t typedef
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 461b6811dc15a55f908bbd102396ae55027cb293
Author: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date:   Fri Nov 28 14:23:35 2008 +1100

    [XFS] Hook up the fiemap ioctl.
    
    This adds the fiemap inode_operation, which for us converts the
    fiemap values & flags into a getbmapx structure which can be sent
    to xfs_getbmap.  The formatter then copies the bmv array back into
    the user's fiemap buffer via the fiemap helpers.
    
    If we wanted to be more clever, we could also return mapping data
    for in-inode attributes, but I'm not terribly motivated to do that
    just yet.
    
    Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit edffd02cf7c91ab6e75acdb93315e4f7402048e4
Author: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date:   Fri Nov 28 14:23:35 2008 +1100

    [XFS] Add new getbmap flags.
    
    This adds a new output flag, BMV_OF_LAST to indicate if we've hit
    the last extent in the inode.  This potentially saves an extra call
    from userspace to see when the whole mapping is done.
    
    It also adds BMV_IF_DELALLOC and BMV_OF_DELALLOC to request, and
    indicate, delayed-allocation extents.  In this case bmv_block
    is set to -2 (-1 was already taken for HOLESTARTBLOCK; unfortunately
    these are the reverse of the in-kernel constants.)
    
    These new flags facilitate addition of the new fiemap interface.
    
    Rather than adding sh_delalloc, remove sh_unwritten & just test
    the flags directly.
    
    Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 7a2c8a2187dd8ba55e0a8be78eee72150dfd0084
Author: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date:   Fri Nov 28 14:23:35 2008 +1100

    [XFS] convert xfs_getbmap to take formatter functions
    
    Preliminary work to hook up fiemap, this allows us to pass in an
    arbitrary formatter to copy extent data back to userspace.
    
    The formatter takes info for 1 extent, a pointer to the user "thing*"
    and a pointer to a "filled" variable to indicate whether a userspace
    buffer did get filled in (for fiemap, hole "extents" are skipped).
    
    I'm just using the getbmapx struct as a "common denominator" because
    as far as I can see, it holds all info that any formatters will care
    about.
    
    ("*thing" because fiemap doesn't pass the user pointer around, but rather
    has a pointer to a fiemap info structure, and helpers associated with it)
    
    Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 3c9845a7d3260b29a865256af2e750d9425b2361
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date:   Fri Nov 28 14:23:34 2008 +1100

    [XFS] fix uninitialised variable bug in dquot release.
    
    gcc is warning about an uninitialised variable in xfs_growfs_rt().
    This is a false positive. Fix it by changing the scope of the
    transaction pointer to wholly within the internal loop inside
    the function.
    
    While there, preemptively change xfs_growfs_rt_alloc() in the
    same way as it has exactly the same structure as xfs_growfs_rt()
    but gcc is not warning about it. Yet.
    
    Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 07ca4e51e5872e2ec4f47ceccd8df6a84cc80056
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date:   Fri Nov 28 14:23:33 2008 +1100

    [XFS] fix error inversion problems with data flushing
    
    XFS gets the sign of the error wrong in several places when
    gathering the error from generic linux functions. These functions
    return negative error values, while the core XFS code returns
    positive error values. Hence when XFS inverts the error to be
    returned to the VFS, it can incorrectly invert a negative
    error and this error will be ignored by the syscall return.
    
    Fix all the problems related to calling filemap_* functions.
    
    Problem initially identified by Nick Piggin in xfs_fsync().
    
    Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit bcdec7acbf2f51036391528bac531dc46f3ed3c0
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Fri Nov 28 14:23:33 2008 +1100

    [XFS] fix spurious gcc warnings
    
    Some recent gcc warnings don't like passing string variables to
    printf-like functions without using at least a "%s" format string.
    Change the two occurances of that in xfs to please gcc.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 23df1bb30a2f700a7bd2c44870a08e81f19c05a1
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Fri Nov 28 14:23:32 2008 +1100

    [XFS] allow inode64 mount option on 32 bit systems
    
    Now that we've stopped using the Linux inode cache when can trivally
    support the inode64 mount option on 32bit architectures.  As far as the
    kernel and most userspace is concerned this works perfectly, but
    applications still using really old stat and readdir interfaces will get
    an EOVERFLOW error when hitting an inode number not fitting into 32
    bits (that problem of course also exists when using these applications
    on a 64bit kernel).
    
    Note that because inode64 is simply a mount option we can currently
    mount a filesystem having > 32 bit inode numbers and cause a variety of
    problems, all this is solved but this patch which enables XFS_BIG_INUMS,
    even when inode64 is not used.
    
    (First sent on October 18th)
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 177ae5f0fb59f2a1148ffcfe51190a1705f4db7a
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Fri Nov 28 14:23:32 2008 +1100

    [XFS] wire up ->open for directories
    
    Currently there's no ->open method set for directories on XFS.  That
    means we don't perform any check for opening too large directories
    without O_LARGEFILE, we don't check for shut down filesystems, and we
    don't actually do the readahead for the first block in the directory.
    
    Instead of just setting the directories open routine to xfs_file_open
    we merge the shutdown check directly into xfs_file_open and create
    a new xfs_dir_open that first calls xfs_file_open and then performs
    the readahead for block 0.
    
    (First sent on September 29th)
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 30522794a24f8333637e6a1a784aa3e9aa3975ed
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Fri Nov 28 14:23:31 2008 +1100

    [XFS] fix NULL pointer dereference in xfs_log_force_umount
    
    xfs_log_force_umount may be called very early during log recovery where
    
    If we fail a buffer read in xlog_recover_do_inode_trans we abort the mount.
    But at that point log recovery has started delayed writeback of inode
    buffers.   As part of the aborted mount we try to flush out all delwri
    buffers, but at that point we have already freed the superblock, and set
    mp->m_sb_bp to NULL, and xfs_log_force_umount which gets called after
    the inode buffer writeback trips over it.
    
    Make xfs_log_force_umount a little more careful when accessing mp->m_sb_bp
    to avoid this.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
    Signed-off-by: Niv Sardi <xaiki@xxxxxxx>

commit 8c544c7e246771de1e92a79d17363120f5719c8d
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date:   Mon Nov 17 17:37:10 2008 +1100

    [XFS] Fix double free of log tickets
    
    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 <david@xxxxxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Lachlan McIlroy <lachlan@xxxxxxx>

commit 9ba1e050163a7cd52c84df3cc8a5dd7ee6ce670d
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date:   Mon Nov 10 17:13:23 2008 +1100

    [XFS] Avoid using inodes that haven't been completely initialised
    
    The radix tree walks in xfs_sync_inodes_ag and xfs_qm_dqrele_all_inodes()
    can find inodes that are still undergoing initialisation. Avoid
    them by checking for the the XFS_INEW() flag once we have a reference
    on the inode. This flag is cleared once the inode is properly initialised.
    
    SGI-PV: 987246
    
    Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Lachlan McIlroy <lachlan@xxxxxxx>

commit b5add6dc866d7f458ff16f9f95478d6ee0179ff9
Author: Dave Chinner <david@xxxxxxxxxxxxx>
Date:   Mon Nov 10 17:11:18 2008 +1100

    [XFS] fix uninitialised variable bug in dquot release
    
    gcc on ARM warns about an using an uninitialised variable
    in xfs_qm_dqrele_all_inodes(). This is a real bug, but gcc
    on x86_64 is not reporting this warning so it went unnoticed.
    
    Fix the bug by bring the inode radix tree walk code up to
    date with xfs_sync_inodes_ag().
    
    SGI-PV: 987246
    
    Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Reviewed-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Lachlan McIlroy <lachlan@xxxxxxx>

-----------------------------------------------------------------------

Summary of changes:
 fs/xfs/linux-2.6/xfs_export.c  |    1 -
 fs/xfs/linux-2.6/xfs_file.c    |   34 +++-
 fs/xfs/linux-2.6/xfs_fs_subr.c |   23 ++-
 fs/xfs/linux-2.6/xfs_ioctl.c   |   66 ++++---
 fs/xfs/linux-2.6/xfs_ioctl32.c |    1 -
 fs/xfs/linux-2.6/xfs_iops.c    |   85 ++++++++-
 fs/xfs/linux-2.6/xfs_linux.h   |   11 +-
 fs/xfs/linux-2.6/xfs_lrw.c     |    2 +-
 fs/xfs/linux-2.6/xfs_stats.c   |    2 +-
 fs/xfs/linux-2.6/xfs_super.c   |   19 +-
 fs/xfs/linux-2.6/xfs_sync.c    |    5 +-
 fs/xfs/linux-2.6/xfs_vfs.h     |   46 -----
 fs/xfs/linux-2.6/xfs_vnode.h   |    3 +
 fs/xfs/quota/xfs_qm_bhv.c      |    4 +-
 fs/xfs/quota/xfs_qm_syscalls.c |   48 +++--
 fs/xfs/xfs_ag.h                |    5 +
 fs/xfs/xfs_alloc.c             |   69 +++++--
 fs/xfs/xfs_bmap.c              |  114 ++++++-----
 fs/xfs/xfs_bmap.h              |   11 +-
 fs/xfs/xfs_dinode.h            |  145 +++++---------
 fs/xfs/xfs_dir2_sf.h           |    7 -
 fs/xfs/xfs_fs.h                |   18 +--
 fs/xfs/xfs_ialloc.c            |  317 +++++++++++++++---------------
 fs/xfs/xfs_ialloc.h            |   10 +-
 fs/xfs/xfs_iget.c              |   89 ++++++++-
 fs/xfs/xfs_imap.h              |   38 ----
 fs/xfs/xfs_inode.c             |  416 ++++++++++------------------------------
 fs/xfs/xfs_inode.h             |   34 ++--
 fs/xfs/xfs_inode_item.c        |   15 +-
 fs/xfs/xfs_itable.c            |   26 +--
 fs/xfs/xfs_log.c               |   58 ++++---
 fs/xfs/xfs_log.h               |    4 +
 fs/xfs/xfs_log_priv.h          |   47 ++----
 fs/xfs/xfs_log_recover.c       |  295 ++++++++++++-----------------
 fs/xfs/xfs_mount.c             |    3 +-
 fs/xfs/xfs_mount.h             |   12 +-
 fs/xfs/xfs_rename.c            |   12 +-
 fs/xfs/xfs_rtalloc.c           |   39 ++--
 fs/xfs/xfs_trans.c             |    9 +-
 fs/xfs/xfs_utils.c             |   12 +-
 fs/xfs/xfs_vfsops.c            |    1 -
 fs/xfs/xfs_vfsops.h            |   14 --
 fs/xfs/xfs_vnodeops.c          |   59 +-----
 fs/xfs/xfs_vnodeops.h          |    2 +-
 44 files changed, 1020 insertions(+), 1211 deletions(-)
 delete mode 100644 fs/xfs/linux-2.6/xfs_vfs.h
 delete mode 100644 fs/xfs/xfs_imap.h
 delete mode 100644 fs/xfs/xfs_vfsops.h


-- 
XFS public tree - master for latest XFS changes for mainline, xfs-dev like 
master with kdb/dmapi

<Prev in Thread] Current Thread [Next in Thread>
  • [XFS updates] XFS public tree - master for latest XFS changes for mainline, xfs-dev like master with kdb/dmapi branch, xfs-dev, updated. v2.6.28-rc3-200-g9e14eb7, Niv Sardi <=