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