From: Linus Torvalds Date: Thu, 12 Sep 2013 23:13:41 +0000 (-0700) Subject: Merge tag 'xfs-for-linus-v3.12-rc1-2' of git://oss.sgi.com/xfs/xfs X-Git-Tag: upstream/snapshot3+hdmi~4312 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e0ea4045bce3cee84e35746fb98946ca36781248;hp=-c;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git Merge tag 'xfs-for-linus-v3.12-rc1-2' of git://oss.sgi.com/xfs/xfs 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() --- e0ea4045bce3cee84e35746fb98946ca36781248 diff --combined fs/xfs/xfs_icache.c index 73b62a2,7942432..193206b --- a/fs/xfs/xfs_icache.c +++ b/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) @@@ -1176,7 -1176,7 +1176,7 @@@ 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 index 456f014,458e6bc..9ed68bb --- a/fs/xfs/xfs_icache.h +++ b/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);