2005-04-17 02:20:36 +04:00
/*
2005-11-02 06:58:39 +03:00
* Copyright ( c ) 2003 - 2005 Silicon Graphics , Inc .
* All Rights Reserved .
2005-04-17 02:20:36 +04:00
*
2005-11-02 06:58:39 +03:00
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License as
2005-04-17 02:20:36 +04:00
* published by the Free Software Foundation .
*
2005-11-02 06:58:39 +03:00
* 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 .
2005-04-17 02:20:36 +04:00
*
2005-11-02 06:58:39 +03:00
* 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
2005-04-17 02:20:36 +04:00
*/
# ifndef __XFS_IOMAP_H__
# define __XFS_IOMAP_H__
2016-06-21 02:53:44 +03:00
# include <linux/iomap.h>
2005-04-17 02:20:36 +04:00
struct xfs_inode ;
struct xfs_bmbt_irec ;
2013-09-29 14:56:04 +04:00
int xfs_iomap_write_direct ( struct xfs_inode * , xfs_off_t , size_t ,
2010-12-10 11:42:20 +03:00
struct xfs_bmbt_irec * , int ) ;
2016-10-03 19:11:34 +03:00
int xfs_iomap_write_allocate ( struct xfs_inode * , int , xfs_off_t ,
2010-12-10 11:42:20 +03:00
struct xfs_bmbt_irec * ) ;
2015-01-09 02:48:12 +03:00
int xfs_iomap_write_unwritten ( struct xfs_inode * , xfs_off_t , xfs_off_t ) ;
2005-04-17 02:20:36 +04:00
2016-06-21 02:52:47 +03:00
void xfs_bmbt_to_iomap ( struct xfs_inode * , struct iomap * ,
struct xfs_bmbt_irec * ) ;
2016-10-03 19:11:43 +03:00
xfs_extlen_t xfs_eof_alignment ( struct xfs_inode * ip , xfs_extlen_t extsize ) ;
2016-06-21 02:52:47 +03:00
2017-02-06 21:42:26 +03:00
static inline xfs_filblks_t
xfs_aligned_fsb_count (
xfs_fileoff_t offset_fsb ,
xfs_filblks_t count_fsb ,
xfs_extlen_t extsz )
{
if ( extsz ) {
xfs_extlen_t align ;
align = do_mod ( offset_fsb , extsz ) ;
if ( align )
count_fsb + = align ;
align = do_mod ( count_fsb , extsz ) ;
if ( align )
count_fsb + = extsz - align ;
}
return count_fsb ;
}
2017-01-28 10:20:26 +03:00
extern const struct iomap_ops xfs_iomap_ops ;
extern const struct iomap_ops xfs_xattr_iomap_ops ;
2016-06-21 02:53:44 +03:00
2005-04-17 02:20:36 +04:00
# endif /* __XFS_IOMAP_H__*/