2 * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc.
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as
7 * published by the Free Software Foundation.
9 * This program is distributed in the hope that it would be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write the Free Software Foundation,
16 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 #include "xfs_types.h"
24 #include "xfs_trans.h"
28 #include "xfs_dfrag.h"
29 #include "xfs_dmapi.h"
30 #include "xfs_mount.h"
31 #include "xfs_bmap_btree.h"
32 #include "xfs_alloc_btree.h"
33 #include "xfs_ialloc_btree.h"
34 #include "xfs_dir2_sf.h"
35 #include "xfs_attr_sf.h"
36 #include "xfs_dinode.h"
37 #include "xfs_inode.h"
38 #include "xfs_inode_item.h"
39 #include "xfs_itable.h"
40 #include "xfs_btree.h"
41 #include "xfs_alloc.h"
42 #include "xfs_ialloc.h"
44 #include "xfs_error.h"
46 #include "xfs_quota.h"
47 #include "xfs_trans_space.h"
48 #include "xfs_iomap.h"
55 return (ip
->i_d
.di_size
);
61 struct xfs_mount_args
*mntargs
,
64 return xfs_mountfs(vfsp
, XFS_VFSTOM(vfsp
), flags
);
67 xfs_ioops_t xfs_iocore_xfs
= {
68 .xfs_ioinit
= (xfs_ioinit_t
) xfs_ioinit
,
69 .xfs_bmapi_func
= (xfs_bmapi_t
) xfs_bmapi
,
70 .xfs_bunmapi_func
= (xfs_bunmapi_t
) xfs_bunmapi
,
71 .xfs_bmap_eof_func
= (xfs_bmap_eof_t
) xfs_bmap_eof
,
72 .xfs_iomap_write_direct
=
73 (xfs_iomap_write_direct_t
) xfs_iomap_write_direct
,
74 .xfs_iomap_write_delay
=
75 (xfs_iomap_write_delay_t
) xfs_iomap_write_delay
,
76 .xfs_iomap_write_allocate
=
77 (xfs_iomap_write_allocate_t
) xfs_iomap_write_allocate
,
78 .xfs_iomap_write_unwritten
=
79 (xfs_iomap_write_unwritten_t
) xfs_iomap_write_unwritten
,
80 .xfs_ilock
= (xfs_lock_t
) xfs_ilock
,
81 .xfs_lck_map_shared
= (xfs_lck_map_shared_t
) xfs_ilock_map_shared
,
82 .xfs_ilock_demote
= (xfs_lock_demote_t
) xfs_ilock_demote
,
83 .xfs_ilock_nowait
= (xfs_lock_nowait_t
) xfs_ilock_nowait
,
84 .xfs_unlock
= (xfs_unlk_t
) xfs_iunlock
,
85 .xfs_size_func
= (xfs_size_t
) xfs_size_fn
,
86 .xfs_iodone
= (xfs_iodone_t
) fs_noerr
,
87 .xfs_swap_extents_func
= (xfs_swap_extents_t
) xfs_swap_extents
,
91 xfs_iocore_inode_reinit(
94 xfs_iocore_t
*io
= &ip
->i_iocore
;
97 if (ip
->i_d
.di_flags
& XFS_DIFLAG_REALTIME
)
98 io
->io_flags
|= XFS_IOCORE_RT
;
99 io
->io_dmevmask
= ip
->i_d
.di_dmevmask
;
100 io
->io_dmstate
= ip
->i_d
.di_dmstate
;
104 xfs_iocore_inode_init(
107 xfs_iocore_t
*io
= &ip
->i_iocore
;
108 xfs_mount_t
*mp
= ip
->i_mount
;
112 io
->io_lock
= &ip
->i_lock
;
113 io
->io_iolock
= &ip
->i_iolock
;
116 io
->io_obj
= (void *)ip
;
118 xfs_iocore_inode_reinit(ip
);