forked from amir73il/linux
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ocfs2: Move ocfs2 ioctl definitions from ocfs2_fs.h to newly added oc…
…fs2_ioctl.h Currently we were adding ioctl cmds/structures for ocfs2 into ocfs2_fs.h which was used for define ocfs2 on-disk layout. That sounds a little bit confusing, and it may be quickly polluted espcially when growing the ocfs2_info_request ioctls afterwards(it will grow i bet). As a result, such OCFS2 IOCs do need to be placed somewhere other than ocfs2_fs.h, a separated ocfs2_ioctl.h will be added to store such ioctl structures and definitions which could also be used from userspace to invoke ioctls call. Signed-off-by: Tristan Ye <tristan.ye@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com>
- Loading branch information
Tristan Ye
authored and
Joel Becker
committed
Mar 2, 2010
1 parent
5051f76
commit 9df5778
Showing
4 changed files
with
83 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
/* -*- mode: c; c-basic-offset: 8; -*- | ||
* vim: noexpandtab sw=8 ts=8 sts=0: | ||
* | ||
* ocfs2_ioctl.h | ||
* | ||
* Defines OCFS2 ioctls. | ||
* | ||
* Copyright (C) 2010 Oracle. All rights reserved. | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public | ||
* License, version 2, as published by the Free Software Foundation. | ||
* | ||
* This program is distributed in the hope that it will 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. | ||
*/ | ||
|
||
#ifndef OCFS2_IOCTL_H | ||
#define OCFS2_IOCTL_H | ||
|
||
/* | ||
* ioctl commands | ||
*/ | ||
#define OCFS2_IOC_GETFLAGS _IOR('f', 1, long) | ||
#define OCFS2_IOC_SETFLAGS _IOW('f', 2, long) | ||
#define OCFS2_IOC32_GETFLAGS _IOR('f', 1, int) | ||
#define OCFS2_IOC32_SETFLAGS _IOW('f', 2, int) | ||
|
||
/* | ||
* Space reservation / allocation / free ioctls and argument structure | ||
* are designed to be compatible with XFS. | ||
* | ||
* ALLOCSP* and FREESP* are not and will never be supported, but are | ||
* included here for completeness. | ||
*/ | ||
struct ocfs2_space_resv { | ||
__s16 l_type; | ||
__s16 l_whence; | ||
__s64 l_start; | ||
__s64 l_len; /* len == 0 means until end of file */ | ||
__s32 l_sysid; | ||
__u32 l_pid; | ||
__s32 l_pad[4]; /* reserve area */ | ||
}; | ||
|
||
#define OCFS2_IOC_ALLOCSP _IOW ('X', 10, struct ocfs2_space_resv) | ||
#define OCFS2_IOC_FREESP _IOW ('X', 11, struct ocfs2_space_resv) | ||
#define OCFS2_IOC_RESVSP _IOW ('X', 40, struct ocfs2_space_resv) | ||
#define OCFS2_IOC_UNRESVSP _IOW ('X', 41, struct ocfs2_space_resv) | ||
#define OCFS2_IOC_ALLOCSP64 _IOW ('X', 36, struct ocfs2_space_resv) | ||
#define OCFS2_IOC_FREESP64 _IOW ('X', 37, struct ocfs2_space_resv) | ||
#define OCFS2_IOC_RESVSP64 _IOW ('X', 42, struct ocfs2_space_resv) | ||
#define OCFS2_IOC_UNRESVSP64 _IOW ('X', 43, struct ocfs2_space_resv) | ||
|
||
/* Used to pass group descriptor data when online resize is done */ | ||
struct ocfs2_new_group_input { | ||
__u64 group; /* Group descriptor's blkno. */ | ||
__u32 clusters; /* Total number of clusters in this group */ | ||
__u32 frees; /* Total free clusters in this group */ | ||
__u16 chain; /* Chain for this group */ | ||
__u16 reserved1; | ||
__u32 reserved2; | ||
}; | ||
|
||
#define OCFS2_IOC_GROUP_EXTEND _IOW('o', 1, int) | ||
#define OCFS2_IOC_GROUP_ADD _IOW('o', 2,struct ocfs2_new_group_input) | ||
#define OCFS2_IOC_GROUP_ADD64 _IOW('o', 3,struct ocfs2_new_group_input) | ||
|
||
/* Used to pass 2 file names to reflink. */ | ||
struct reflink_arguments { | ||
__u64 old_path; | ||
__u64 new_path; | ||
__u64 preserve; | ||
}; | ||
#define OCFS2_IOC_REFLINK _IOW('o', 4, struct reflink_arguments) | ||
|
||
#endif /* OCFS2_IOCTL_H */ |