Merge tag 'xfs-for-linus-v3.12-rc1-2' of git://oss.sgi.com/xfs/xfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 12 Sep 2013 23:13:41 +0000 (16:13 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 12 Sep 2013 23:13:41 +0000 (16:13 -0700)
Pull xfs update #2 from Ben Myers:
 "Here we have defrag support for v5 superblock, a number of bugfixes
  and a cleanup or two.

   - defrag support for CRC filesystems
   - fix endian worning in xlog_recover_get_buf_lsn
   - fixes for sparse warnings
   - fix for assert in xfs_dir3_leaf_hdr_from_disk
   - fix for log recovery of remote symlinks
   - fix for log recovery of btree root splits
   - fixes formemory allocation failures with ACLs
   - fix for assert in xfs_buf_item_relse
   - fix for assert in xfs_inode_buf_verify
   - fix an assignment in an assert that should be a test in
     xfs_bmbt_change_owner
   - remove dead code in xlog_recover_inode_pass2"

* tag 'xfs-for-linus-v3.12-rc1-2' of git://oss.sgi.com/xfs/xfs:
  xfs: remove dead code from xlog_recover_inode_pass2
  xfs: = vs == typo in ASSERT()
  xfs: don't assert fail on bad inode numbers
  xfs: aborted buf items can be in the AIL.
  xfs: factor all the kmalloc-or-vmalloc fallback allocations
  xfs: fix memory allocation failures with ACLs
  xfs: ensure we copy buffer type in da btree root splits
  xfs: set remote symlink buffer type for recovery
  xfs: recovery of swap extents operations for CRC filesystems
  xfs: swap extents operations for CRC filesystems
  xfs: check magic numbers in dir3 leaf verifier first
  xfs: fix some minor sparse warnings
  xfs: fix endian warning in xlog_recover_get_buf_lsn()

1  2 
fs/xfs/xfs_icache.c
fs/xfs/xfs_icache.h

diff --combined fs/xfs/xfs_icache.c
@@@ -48,7 -48,7 +48,7 @@@ STATIC void __xfs_inode_clear_reclaim_t
  /*
   * Allocate and initialise an xfs_inode.
   */
STATIC struct xfs_inode *
+ struct xfs_inode *
  xfs_inode_alloc(
        struct xfs_mount        *mp,
        xfs_ino_t               ino)
@@@ -98,7 -98,7 +98,7 @@@ xfs_inode_free_callback
        kmem_zone_free(xfs_inode_zone, ip);
  }
  
STATIC void
+ void
  xfs_inode_free(
        struct xfs_inode        *ip)
  {
@@@ -1167,7 -1167,7 +1167,7 @@@ xfs_reclaim_inodes
   * them to be cleaned, which we hope will not be very long due to the
   * background walker having already kicked the IO off on those dirty inodes.
   */
 -void
 +long
  xfs_reclaim_inodes_nr(
        struct xfs_mount        *mp,
        int                     nr_to_scan)
        xfs_reclaim_work_queue(mp);
        xfs_ail_push_all(mp->m_ail);
  
 -      xfs_reclaim_inodes_ag(mp, SYNC_TRYLOCK | SYNC_WAIT, &nr_to_scan);
 +      return xfs_reclaim_inodes_ag(mp, SYNC_TRYLOCK | SYNC_WAIT, &nr_to_scan);
  }
  
  /*
diff --combined fs/xfs/xfs_icache.h
@@@ -42,11 -42,15 +42,15 @@@ struct xfs_eofblocks 
  int xfs_iget(struct xfs_mount *mp, struct xfs_trans *tp, xfs_ino_t ino,
             uint flags, uint lock_flags, xfs_inode_t **ipp);
  
+ /* recovery needs direct inode allocation capability */
+ struct xfs_inode * xfs_inode_alloc(struct xfs_mount *mp, xfs_ino_t ino);
+ void xfs_inode_free(struct xfs_inode *ip);
  void xfs_reclaim_worker(struct work_struct *work);
  
  int xfs_reclaim_inodes(struct xfs_mount *mp, int mode);
  int xfs_reclaim_inodes_count(struct xfs_mount *mp);
 -void xfs_reclaim_inodes_nr(struct xfs_mount *mp, int nr_to_scan);
 +long xfs_reclaim_inodes_nr(struct xfs_mount *mp, int nr_to_scan);
  
  void xfs_inode_set_reclaim_tag(struct xfs_inode *ip);