2008-10-30 17:06:18 +11:00
/*
* Copyright ( c ) 2000 - 2006 Silicon Graphics , Inc .
* All Rights Reserved .
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation .
*
* This program is distributed in the hope that it would be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write the Free Software Foundation ,
* Inc . , 51 Franklin St , Fifth Floor , Boston , MA 02110 - 1301 USA
*/
2008-10-30 17:06:08 +11:00
# ifndef XFS_SYNC_H
# define XFS_SYNC_H 1
2008-10-30 17:06:18 +11:00
struct xfs_mount ;
2009-02-09 08:47:34 +01:00
struct xfs_perag ;
2008-10-30 17:06:18 +11:00
2009-06-08 15:37:16 +02:00
# define SYNC_WAIT 0x0001 /* wait for i/o to complete */
# define SYNC_TRYLOCK 0x0002 /* only try to lock inodes */
2008-10-30 17:06:18 +11:00
2011-04-08 12:45:07 +10:00
extern struct workqueue_struct * xfs_syncd_wq ; /* sync workqueue */
2008-10-30 17:06:18 +11:00
int xfs_syncd_init ( struct xfs_mount * mp ) ;
void xfs_syncd_stop ( struct xfs_mount * mp ) ;
2008-10-30 17:15:50 +11:00
int xfs_quiesce_data ( struct xfs_mount * mp ) ;
2008-10-30 17:16:21 +11:00
void xfs_quiesce_attr ( struct xfs_mount * mp ) ;
2008-10-30 17:06:08 +11:00
2009-04-06 18:44:54 +02:00
void xfs_flush_inodes ( struct xfs_inode * ip ) ;
2008-10-30 17:06:18 +11:00
2011-12-20 20:08:41 +00:00
int xfs_log_dirty_inode ( struct xfs_inode * ip , struct xfs_perag * pag , int flags ) ;
2009-06-08 15:35:12 +02:00
int xfs_reclaim_inodes ( struct xfs_mount * mp , int mode ) ;
2011-07-08 14:14:46 +10:00
int xfs_reclaim_inodes_count ( struct xfs_mount * mp ) ;
void xfs_reclaim_inodes_nr ( struct xfs_mount * mp , int nr_to_scan ) ;
2008-10-30 17:37:03 +11:00
2008-10-30 17:37:26 +11:00
void xfs_inode_set_reclaim_tag ( struct xfs_inode * ip ) ;
2009-08-16 20:36:34 -04:00
void __xfs_inode_set_reclaim_tag ( struct xfs_perag * pag , struct xfs_inode * ip ) ;
2008-10-30 17:37:26 +11:00
void __xfs_inode_clear_reclaim_tag ( struct xfs_mount * mp , struct xfs_perag * pag ,
struct xfs_inode * ip ) ;
2009-06-08 15:35:27 +02:00
2010-09-28 12:28:19 +10:00
int xfs_sync_inode_grab ( struct xfs_inode * ip ) ;
2009-06-08 15:35:27 +02:00
int xfs_inode_ag_iterator ( struct xfs_mount * mp ,
int ( * execute ) ( struct xfs_inode * ip , struct xfs_perag * pag , int flags ) ,
2010-09-24 18:40:15 +10:00
int flags ) ;
2010-04-29 09:55:50 +10:00
2008-10-30 17:06:08 +11:00
# endif