Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
fs
xfs
xfs_filestream.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2006-2007 Silicon Graphics, Inc.
3
* All Rights Reserved.
4
*
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.
8
*
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.
13
*
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
17
*/
18
#ifndef __XFS_FILESTREAM_H__
19
#define __XFS_FILESTREAM_H__
20
21
#ifdef __KERNEL__
22
23
struct
xfs_mount;
24
struct
xfs_inode;
25
struct
xfs_perag
;
26
struct
xfs_bmalloca
;
27
28
#ifdef XFS_FILESTREAMS_TRACE
29
#define XFS_FSTRM_KTRACE_INFO 1
30
#define XFS_FSTRM_KTRACE_AGSCAN 2
31
#define XFS_FSTRM_KTRACE_AGPICK1 3
32
#define XFS_FSTRM_KTRACE_AGPICK2 4
33
#define XFS_FSTRM_KTRACE_UPDATE 5
34
#define XFS_FSTRM_KTRACE_FREE 6
35
#define XFS_FSTRM_KTRACE_ITEM_LOOKUP 7
36
#define XFS_FSTRM_KTRACE_ASSOCIATE 8
37
#define XFS_FSTRM_KTRACE_MOVEAG 9
38
#define XFS_FSTRM_KTRACE_ORPHAN 10
39
40
#define XFS_FSTRM_KTRACE_SIZE 16384
41
extern
ktrace_t *xfs_filestreams_trace_buf;
42
43
#endif
44
45
/* allocation selection flags */
46
typedef
enum
xfs_fstrm_alloc {
47
XFS_PICK_USERDATA = 1,
48
XFS_PICK_LOWSPACE = 2,
49
} xfs_fstrm_alloc_t;
50
51
/* prototypes for filestream.c */
52
int
xfs_filestream_init
(
void
);
53
void
xfs_filestream_uninit
(
void
);
54
int
xfs_filestream_mount
(
struct
xfs_mount *
mp
);
55
void
xfs_filestream_unmount
(
struct
xfs_mount *
mp
);
56
xfs_agnumber_t
xfs_filestream_lookup_ag
(
struct
xfs_inode *
ip
);
57
int
xfs_filestream_associate
(
struct
xfs_inode *dip,
struct
xfs_inode *
ip
);
58
void
xfs_filestream_deassociate
(
struct
xfs_inode *
ip
);
59
int
xfs_filestream_new_ag
(
struct
xfs_bmalloca
*ap,
xfs_agnumber_t
*
agp
);
60
61
62
/* filestreams for the inode? */
63
static
inline
int
64
xfs_inode_is_filestream(
65
struct
xfs_inode *
ip
)
66
{
67
return
(ip->i_mount->m_flags & XFS_MOUNT_FILESTREAMS) ||
68
xfs_iflags_test(ip, XFS_IFILESTREAM) ||
69
(ip->i_d.di_flags &
XFS_DIFLAG_FILESTREAM
);
70
}
71
72
#endif
/* __KERNEL__ */
73
74
#endif
/* __XFS_FILESTREAM_H__ */
Generated on Thu Jan 10 2013 14:50:26 for Linux Kernel by
1.8.2