2005-04-17 02:20:36 +04:00
/*
2005-11-02 06:58:39 +03:00
* Copyright ( c ) 2000 - 2001 , 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_DIR2_H__
2011-07-13 15:43:48 +04:00
# define __XFS_DIR2_H__
2005-04-17 02:20:36 +04:00
2006-06-20 07:04:51 +04:00
struct xfs_bmap_free ;
2011-07-13 15:43:48 +04:00
struct xfs_da_args ;
2005-04-17 02:20:36 +04:00
struct xfs_inode ;
2006-06-20 07:04:51 +04:00
struct xfs_mount ;
2005-04-17 02:20:36 +04:00
struct xfs_trans ;
2008-04-10 06:22:07 +04:00
extern struct xfs_name xfs_name_dotdot ;
2005-04-17 02:20:36 +04:00
/*
2006-06-20 07:04:51 +04:00
* Generic directory interface routines
*/
extern void xfs_dir_startup ( void ) ;
extern void xfs_dir_mount ( struct xfs_mount * mp ) ;
extern int xfs_dir_isempty ( struct xfs_inode * dp ) ;
extern int xfs_dir_init ( struct xfs_trans * tp , struct xfs_inode * dp ,
struct xfs_inode * pdp ) ;
extern int xfs_dir_createname ( struct xfs_trans * tp , struct xfs_inode * dp ,
2008-04-10 06:22:07 +04:00
struct xfs_name * name , xfs_ino_t inum ,
2006-06-20 07:04:51 +04:00
xfs_fsblock_t * first ,
struct xfs_bmap_free * flist , xfs_extlen_t tot ) ;
extern int xfs_dir_lookup ( struct xfs_trans * tp , struct xfs_inode * dp ,
2008-05-21 10:58:22 +04:00
struct xfs_name * name , xfs_ino_t * inum ,
struct xfs_name * ci_name ) ;
2006-06-20 07:04:51 +04:00
extern int xfs_dir_removename ( struct xfs_trans * tp , struct xfs_inode * dp ,
2008-04-10 06:22:07 +04:00
struct xfs_name * name , xfs_ino_t ino ,
2006-06-20 07:04:51 +04:00
xfs_fsblock_t * first ,
struct xfs_bmap_free * flist , xfs_extlen_t tot ) ;
extern int xfs_dir_replace ( struct xfs_trans * tp , struct xfs_inode * dp ,
2008-04-10 06:22:07 +04:00
struct xfs_name * name , xfs_ino_t inum ,
2006-06-20 07:04:51 +04:00
xfs_fsblock_t * first ,
struct xfs_bmap_free * flist , xfs_extlen_t tot ) ;
extern int xfs_dir_canenter ( struct xfs_trans * tp , struct xfs_inode * dp ,
2008-04-10 06:22:07 +04:00
struct xfs_name * name , uint resblks ) ;
2006-06-20 07:04:51 +04:00
/*
2011-07-13 15:43:48 +04:00
* Direct call from the bmap code , bypassing the generic directory layer .
2005-04-17 02:20:36 +04:00
*/
2011-07-13 15:43:48 +04:00
extern int xfs_dir2_sf_to_block ( struct xfs_da_args * args ) ;
2008-05-21 10:58:22 +04:00
2005-04-17 02:20:36 +04:00
# endif /* __XFS_DIR2_H__ */