xfs
[Top] [All Lists]

[XFS updates] XFS development tree branch, master, updated. v2.6.30-rc4-

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.30-rc4-24770-g87a5902
From: xfs@xxxxxxxxxxx
Date: Tue, 8 Dec 2009 10:20:02 -0600
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "XFS development tree".

The branch, master has been updated
  9cdfb22 xfs: Fix error return for fallocate() on XFS
  291f6b4 xfs: cleanup dmapi macros in the umount path
  64d2734 xfs: remove incorrect sparse annotation for xfs_iget_cache_miss
  f08a7a4 xfs: kill the STATIC_INLINE macro
  795659b xfs: uninline xfs_get_extsz_hint
  ee4135c xfs: rename xfs_attr_fetch to xfs_attr_get_int
  938ea15 xfs: simplify xfs_buf_get / xfs_buf_read interfaces
  5a3add4 xfs: remove IO_ISAIO
  c684103 xfs: Wrapped journal record corruption on read at recovery
  c9b11d1 xfs: cleanup data end I/O handlers
  9b676b2 xfs: use WRITE_SYNC_PLUG for synchronous writeout
  63c8573 xfs: reset the i_iolock lock class in the reclaim path
  66c0e00 xfs: I/O completion handlers must use NOFS allocations
  1698a43 xfs: fix mmap_sem/iolock inversion in xfs_free_eofblocks
  15bff06 xfs: simplify inode teardown
  6c06f07 xfs: copy li_lsn before dropping AIL lock
  8ec6dba XFS bug in log recover with quota (bugzilla id 855)
  a80a66c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/fs/xfs/xfs
  c7ff91d xfs: fix xfs_quota remove error
  3b82638 xfs: free temporary cursor in xfs_dialloc
  2375669 Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
  ba313e6 Merge branch 'master' of ssh://oss.sgi.com/oss/git/xfs/xfs into 
for-linus
  a372bf8 Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
  e09d399 Merge branch 'master' into for-linus
  f0f37e2 const: mark struct vm_struct_operations
  db16826 Merge branch 'hwpoison' of 
git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6
  8d65af7 sysctl: remove "struct file *" argument of ->proc_handler
  342ff1a Merge branch 'for-linus' of 
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
  b87221d const: mark remaining super_operations const
  0d54b21 const: make struct super_block::s_qcop const
  411c940 trivial: fix typo "for for" in multiple files
  aa261f5 HWPOISON: Enable .remove_error_page for migration aware file systems
  fdec29c Merge branch 'master' of git://oss.sgi.com/xfs/xfs into for-linus
  af0f441 xfs: Convert sync_page_range() to simple 
filemap_write_and_wait_range()
  18f4c64 jffs2/jfs/xfs: switch over to 'check_acl' rather than 'permission()'
      from  629186c0b8641979eb43d9dd7bc57ebd268711f9 (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 9cdfb22ba2052d79461406aaa7a9e93a66018892
Author: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
Date:   Tue Nov 24 21:52:53 2009 +0000

    xfs: Fix error return for fallocate() on XFS
    
    Noticed that through glibc fallocate would return 28 rather than -1
    and errno = 28 for ENOSPC. The xfs routines uses XFS_ERROR format
    positive return error codes while the syscalls use negative return
    codes.  Fixup the two cases in xfs_vn_fallocate syscall to convert to
    negative.
    
    Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
    Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 291f6b4397b8c67742d1c94edd71e754e3d43a90
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Sat Nov 14 16:17:24 2009 +0000

    xfs: cleanup dmapi macros in the umount path
    
    Stop the flag saving as we never mangle those in the unmount path, and
    hide all the weird arguents to the dmapi code inside the
    XFS_SEND_PREUNMOUNT / XFS_SEND_UNMOUNT macros.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 64d27342a54d41a10ec66c377e6c380bbc4e5f2c
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Sat Nov 14 16:17:23 2009 +0000

    xfs: remove incorrect sparse annotation for xfs_iget_cache_miss
    
    xfs_iget_cache_miss does not get called with the pag_ici_lock held, so
    the __releases annotation is incorrect.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit f08a7a4d08f9ce70d6157a9593495a0d6c7d21a2
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Sat Nov 14 16:17:22 2009 +0000

    xfs: kill the STATIC_INLINE macro
    
    Remove our own STATIC_INLINE macro.  For small function inside
    implementation files just use STATIC and let gcc inline it, and for
    those in headers do the normal static inline - they are all small
    enough to be inlined for debug builds, too.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 795659b57c2d4bb820f232afeeffb968470ea49a
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Sat Nov 14 16:17:21 2009 +0000

    xfs: uninline xfs_get_extsz_hint
    
    This function is too large to efficiently be inlined.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit ee4135cde4eae17e12575434228c20b6251b3246
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Sat Nov 14 16:17:20 2009 +0000

    xfs: rename xfs_attr_fetch to xfs_attr_get_int
    
    Using a totally different name for the low-level get operation does
    not fit the _int convention used in the rest of the attr code, so
    rename it.
    
    While we're at it also fix the prototype to use the normal convention
    and mark it static as it's never used outside of xfs_attr.c.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 938ea15783552577b963a24912cc32f8ca19a8ef
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Tue Nov 24 18:02:23 2009 +0000

    xfs: simplify xfs_buf_get / xfs_buf_read interfaces
    
    Currently the low-level buffer cache interfaces are highly confusing
    as we have a _flags variant of each that does actually respect the
    flags, and one without _flags which has a flags argument that gets
    ignored and overriden with a default set.  Given that very few places
    use the default arguments get rid of the duplication and convert all
    callers to pass the flags explicitly.  Also remove the now confusing
    _flags postfix.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 5a3add466951ff3a0e728914955fadba8fa2eb73
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Sat Nov 14 16:17:18 2009 +0000

    xfs: remove IO_ISAIO
    
    We set the IO_ISAIO flag for all read/write I/O since early Linux
    2.6.x.  Remove it as it has lost it's purpose long ago.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Dave Chinner <david@xxxxxxxxxxxxx>
    Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit c684103b417672778324a79d85e23e45bbc3839b
Author: Andy Poling <andy@xxxxxxxxxxx>
Date:   Tue Nov 3 17:26:47 2009 +0000

    xfs: Wrapped journal record corruption on read at recovery
    
    Summary of problem:
    
    If a journal record wraps at the physical end of the journal, it has to be
    read in two parts in xlog_do_recovery_pass(): a read at the physical end 
and a
    read at the physical beginning.  If xlog_bread() has to re-align the first
    read, the second read request does not take that re-alignment into account.
    If the first read was re-aligned, the second read over-writes the end of the
    data from the first read, effectively corrupting it.  This can happen either
    when reading the record header or reading the record data.
    
    The first sanity check in xlog_recover_process_data() is to check for a 
valid
    clientid, so that is the error reported.
    
    Summary of fix:
    
    If there was a first read at the physical end, XFS_BUF_PTR() returns where 
the
    data was requested to begin.  Conversely, because it is the result of
    xlog_align(), offset indicates where the requested data for the first read
    actually begins - whether or not xlog_bread() has re-aligned it.
    
    Using offset as the base for the calculation of where to place the second 
read
    data ensures that it will be correctly placed immediately following the data
    from the first read instead of sometimes over-writing the end of it.
    
    The attached patch has resolved the reported problem of occasional inability
    to recover the journal (reporting "bad clientid").
    
    Signed-off-by: Andy Poling <andy@xxxxxxxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit c9b11d1381002e6fefcaf1d72d9ca4ddf866f471
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Fri Oct 30 09:11:47 2009 +0000

    xfs: cleanup data end I/O handlers
    
    Currently we have different end I/O handlers for read vs the different
    types of write I/O.  But they are all very similar so we could just
    use one with a few conditionals and reduce code size a lot.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 9b676b28aa618d02b7186169546c2af22e682e46
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Fri Oct 30 09:09:15 2009 +0000

    xfs: use WRITE_SYNC_PLUG for synchronous writeout
    
    The VM and I/O schedulers now expect us to use WRITE_SYNC_PLUG for
    synchronous writeout.  Right now I can't see any changes in performance
    numbers with this, but we're getting some beating for not using it,
    and the knowledge definitely could help the block code to make better
    decisions.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 63c8573fe7164cd4caac8197c04a2c27bb819f68
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Mon Oct 19 04:05:26 2009 +0000

    xfs: reset the i_iolock lock class in the reclaim path
    
    The iolock is used for protecting reads, writes and block truncates
    against each other.  We have two classes of callers, the first one is
    induced by a file operation and requires a reference to the inode be
    held and not dropped after the operation is done:
    
     - xfs_vm_vmap, xfs_vn_fallocate, xfs_read, xfs_write, xfs_splice_read,
       xfs_splice_write and xfs_setattr are all implementations of VFS
       methods that require a live inode
     - xfs_getbmap and xfs_swap_extents are ioctl subcommand for which the
       same is true
     - xfs_truncate_file is only called on quota inodes just returned from
       xfs_iget
     - xfs_sync_inode_data does the lock just after an igrab()
     - xfs_filestream_associate and xfs_filestream_new_ag take the iolock
       on the parent inode of an inode which by VFS rules must be referenced
    
    And we have various calls to truncate blocks past EOF or the whole
    file when dropping the last reference to an inode.  Unfortunately
    lockdep complains when we do memory allocations that can recurse into
    the filesystem in the first class because the second class happens to
    take the same lock.  To avoid this re-init the iolock in the beginning
    of xfs_fs_clear_inode to get a new lock class.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 66c0e0055f96a478428e25d0399aa14481a61ff4
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Mon Oct 19 04:00:03 2009 +0000

    xfs: I/O completion handlers must use NOFS allocations
    
    When completing I/O requests we must not allow the memory allocator to
    recurse into the filesystem, as we might deadlock on waiting for the
    I/O completion otherwise.  The only thing currently allocating normal
    GFP_KERNEL memory is the allocation of the transaction structure for
    the unwritten extent conversion.  Add a memflags argument to
    _xfs_trans_alloc to allow controlling the allocator behaviour.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reported-by: Thomas Neumann <tneumann@xxxxxxxxxxxxxxxxxxxxx>
    Tested-by: Thomas Neumann <tneumann@xxxxxxxxxxxxxxxxxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 1698a43eab1ebb746c0190f21b91603bb5201880
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Mon Oct 19 04:03:46 2009 +0000

    xfs: fix mmap_sem/iolock inversion in xfs_free_eofblocks
    
    When xfs_free_eofblocks is called from ->release the VM might already
    hold the mmap_sem, but in the write path we take the iolock before
    taking the mmap_sem in the generic write code.
    
    Switch xfs_free_eofblocks to only trylock the iolock if called from
    ->release and skip trimming the prellocated blocks in that case.
    We'll still free them later on the final iput.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

commit 15bff0616833ae9f11873bf5fd0eb7524beee82c
Author: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date:   Tue Sep 29 13:48:56 2009 +0000

    xfs: simplify inode teardown
    
    Currently the reclaim code for the case where we don't reclaim the
    final reclaim is overly complicated.  We know that the inode is clean
    but instead of just directly reclaiming the clean inode we go through
    the whole process of marking the inode reclaimable just to directly
    reclaim it from the calling context.  Besides being overly complicated
    this introduces a race where iget could recycle an inode between
    marked reclaimable and actually being reclaimed leading to panics.
    
    This patch gets rid of the existing reclaim path, and replaces it with
    a simple call to xfs_ireclaim if the inode was clean.  While we're at
    it we also use the slightly more lax xfs_inode_clean check we'd use
    later to determine if we need to flush the inode here.
    
    Finally get rid of xfs_reclaim function and place the remaining small
    bits of reclaim code directly into xfs_fs_destroy_inode.
    
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reported-by: Patrick Schreurs <patrick@xxxxxxxxxxxxxxxx>
    Reported-by: Tommy van Leeuwen <tommy@xxxxxxxxxxxxxxxx>
    Tested-by: Patrick Schreurs <patrick@xxxxxxxxxxxxxxxx>
    Reviewed-by: Alex Elder <aelder@xxxxxxx>
    Signed-off-by: Alex Elder <aelder@xxxxxxx>

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

Summary of changes:
 fs/xfs/linux-2.6/xfs_aops.c     |    1 +
 fs/xfs/linux-2.6/xfs_file.c     |    4 ++--
 fs/xfs/linux-2.6/xfs_iops.c     |   16 ++++------------
 fs/xfs/linux-2.6/xfs_quotaops.c |    2 +-
 fs/xfs/linux-2.6/xfs_super.c    |    4 ++--
 fs/xfs/linux-2.6/xfs_super.h    |    2 +-
 fs/xfs/linux-2.6/xfs_sysctl.c   |    3 +--
 fs/xfs/xfs_fs.h                 |    2 +-
 8 files changed, 13 insertions(+), 21 deletions(-)


hooks/post-receive
-- 
XFS development tree

<Prev in Thread] Current Thread [Next in Thread>
  • [XFS updates] XFS development tree branch, master, updated. v2.6.30-rc4-24770-g87a5902, xfs <=