Loading Documentation/filesystems/xfs-delayed-logging-design.txt +0 −5 Original line number Diff line number Diff line Loading @@ -794,11 +794,6 @@ designed. Roadmap: 2.6.35 Inclusion in mainline as an experimental mount option => approximately 2-3 months to merge window => needs to be in xfs-dev tree in 4-6 weeks => code is nearing readiness for review 2.6.37 Remove experimental tag from mount option => should be roughly 6 months after initial merge => enough time to: Loading fs/xfs/linux-2.6/xfs_aops.c +15 −0 Original line number Diff line number Diff line Loading @@ -1332,6 +1332,21 @@ xfs_vm_writepage( trace_xfs_writepage(inode, page, 0); /* * Refuse to write the page out if we are called from reclaim context. * * This is primarily to avoid stack overflows when called from deep * used stacks in random callers for direct reclaim, but disabling * reclaim for kswap is a nice side-effect as kswapd causes rather * suboptimal I/O patters, too. * * This should really be done by the core VM, but until that happens * filesystems like XFS, btrfs and ext4 have to take care of this * by themselves. */ if (current->flags & PF_MEMALLOC) goto out_fail; /* * We need a transaction if: * 1. There are delalloc buffers on the page Loading fs/xfs/linux-2.6/xfs_iops.c +13 −3 Original line number Diff line number Diff line Loading @@ -585,11 +585,20 @@ xfs_vn_fallocate( bf.l_len = len; xfs_ilock(ip, XFS_IOLOCK_EXCL); /* check the new inode size is valid before allocating */ if (!(mode & FALLOC_FL_KEEP_SIZE) && offset + len > i_size_read(inode)) { new_size = offset + len; error = inode_newsize_ok(inode, new_size); if (error) goto out_unlock; } error = -xfs_change_file_space(ip, XFS_IOC_RESVSP, &bf, 0, XFS_ATTR_NOLOCK); if (!error && !(mode & FALLOC_FL_KEEP_SIZE) && offset + len > i_size_read(inode)) new_size = offset + len; if (error) goto out_unlock; /* Change file size if needed */ if (new_size) { Loading @@ -600,6 +609,7 @@ xfs_vn_fallocate( error = -xfs_setattr(ip, &iattr, XFS_ATTR_NOLOCK); } out_unlock: xfs_iunlock(ip, XFS_IOLOCK_EXCL); out_error: return error; Loading fs/xfs/linux-2.6/xfs_quotaops.c +0 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ #include "xfs_ag.h" #include "xfs_mount.h" #include "xfs_quota.h" #include "xfs_log.h" #include "xfs_trans.h" #include "xfs_bmap_btree.h" #include "xfs_inode.h" Loading fs/xfs/linux-2.6/xfs_sync.c +0 −9 Original line number Diff line number Diff line Loading @@ -164,10 +164,6 @@ xfs_inode_ag_iterator( struct xfs_perag *pag; pag = xfs_perag_get(mp, ag); if (!pag->pag_ici_init) { xfs_perag_put(pag); continue; } error = xfs_inode_ag_walk(mp, pag, execute, flags, tag, exclusive, &nr); xfs_perag_put(pag); Loading Loading @@ -867,12 +863,7 @@ xfs_reclaim_inode_shrink( down_read(&xfs_mount_list_lock); list_for_each_entry(mp, &xfs_mount_list, m_mplist) { for (ag = 0; ag < mp->m_sb.sb_agcount; ag++) { pag = xfs_perag_get(mp, ag); if (!pag->pag_ici_init) { xfs_perag_put(pag); continue; } reclaimable += pag->pag_ici_reclaimable; xfs_perag_put(pag); } Loading Loading
Documentation/filesystems/xfs-delayed-logging-design.txt +0 −5 Original line number Diff line number Diff line Loading @@ -794,11 +794,6 @@ designed. Roadmap: 2.6.35 Inclusion in mainline as an experimental mount option => approximately 2-3 months to merge window => needs to be in xfs-dev tree in 4-6 weeks => code is nearing readiness for review 2.6.37 Remove experimental tag from mount option => should be roughly 6 months after initial merge => enough time to: Loading
fs/xfs/linux-2.6/xfs_aops.c +15 −0 Original line number Diff line number Diff line Loading @@ -1332,6 +1332,21 @@ xfs_vm_writepage( trace_xfs_writepage(inode, page, 0); /* * Refuse to write the page out if we are called from reclaim context. * * This is primarily to avoid stack overflows when called from deep * used stacks in random callers for direct reclaim, but disabling * reclaim for kswap is a nice side-effect as kswapd causes rather * suboptimal I/O patters, too. * * This should really be done by the core VM, but until that happens * filesystems like XFS, btrfs and ext4 have to take care of this * by themselves. */ if (current->flags & PF_MEMALLOC) goto out_fail; /* * We need a transaction if: * 1. There are delalloc buffers on the page Loading
fs/xfs/linux-2.6/xfs_iops.c +13 −3 Original line number Diff line number Diff line Loading @@ -585,11 +585,20 @@ xfs_vn_fallocate( bf.l_len = len; xfs_ilock(ip, XFS_IOLOCK_EXCL); /* check the new inode size is valid before allocating */ if (!(mode & FALLOC_FL_KEEP_SIZE) && offset + len > i_size_read(inode)) { new_size = offset + len; error = inode_newsize_ok(inode, new_size); if (error) goto out_unlock; } error = -xfs_change_file_space(ip, XFS_IOC_RESVSP, &bf, 0, XFS_ATTR_NOLOCK); if (!error && !(mode & FALLOC_FL_KEEP_SIZE) && offset + len > i_size_read(inode)) new_size = offset + len; if (error) goto out_unlock; /* Change file size if needed */ if (new_size) { Loading @@ -600,6 +609,7 @@ xfs_vn_fallocate( error = -xfs_setattr(ip, &iattr, XFS_ATTR_NOLOCK); } out_unlock: xfs_iunlock(ip, XFS_IOLOCK_EXCL); out_error: return error; Loading
fs/xfs/linux-2.6/xfs_quotaops.c +0 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ #include "xfs_ag.h" #include "xfs_mount.h" #include "xfs_quota.h" #include "xfs_log.h" #include "xfs_trans.h" #include "xfs_bmap_btree.h" #include "xfs_inode.h" Loading
fs/xfs/linux-2.6/xfs_sync.c +0 −9 Original line number Diff line number Diff line Loading @@ -164,10 +164,6 @@ xfs_inode_ag_iterator( struct xfs_perag *pag; pag = xfs_perag_get(mp, ag); if (!pag->pag_ici_init) { xfs_perag_put(pag); continue; } error = xfs_inode_ag_walk(mp, pag, execute, flags, tag, exclusive, &nr); xfs_perag_put(pag); Loading Loading @@ -867,12 +863,7 @@ xfs_reclaim_inode_shrink( down_read(&xfs_mount_list_lock); list_for_each_entry(mp, &xfs_mount_list, m_mplist) { for (ag = 0; ag < mp->m_sb.sb_agcount; ag++) { pag = xfs_perag_get(mp, ag); if (!pag->pag_ici_init) { xfs_perag_put(pag); continue; } reclaimable += pag->pag_ici_reclaimable; xfs_perag_put(pag); } Loading