Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6] / fs / xfs / xfs_dfrag.h
1 /*
2  * Copyright (c) 2000,2005 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_DFRAG_H__
19 #define __XFS_DFRAG_H__
20
21 /*
22  * Structure passed to xfs_swapext
23  */
24
25 typedef struct xfs_swapext
26 {
27         __int64_t       sx_version;     /* version */
28         __int64_t       sx_fdtarget;    /* fd of target file */
29         __int64_t       sx_fdtmp;       /* fd of tmp file */
30         xfs_off_t       sx_offset;      /* offset into file */
31         xfs_off_t       sx_length;      /* leng from offset */
32         char            sx_pad[16];     /* pad space, unused */
33         xfs_bstat_t     sx_stat;        /* stat of target b4 copy */
34 } xfs_swapext_t;
35
36 /*
37  * Version flag
38  */
39 #define XFS_SX_VERSION          0
40
41 #ifdef __KERNEL__
42 /*
43  * Prototypes for visible xfs_dfrag.c routines.
44  */
45
46 /*
47  * Syscall interface for xfs_swapext
48  */
49 int     xfs_swapext(struct xfs_swapext __user *sx);
50
51 int     xfs_swap_extents(struct xfs_inode *ip, struct xfs_inode *tip,
52                 struct xfs_swapext *sxp);
53
54 #endif  /* __KERNEL__ */
55
56 #endif  /* __XFS_DFRAG_H__ */