Commit 9df5778ecee8b301b447fc05706792d5f447ace5
Committed by
Joel Becker
1 parent
5051f76883
Exists in
master
and in
39 other branches
Ocfs2: Move ocfs2 ioctl definitions from ocfs2_fs.h to newly added ocfs2_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>
Showing 4 changed files with 83 additions and 60 deletions Side-by-side Diff
fs/ocfs2/ioctl.h
... | ... | @@ -7,11 +7,11 @@ |
7 | 7 | * |
8 | 8 | */ |
9 | 9 | |
10 | -#ifndef OCFS2_IOCTL_H | |
11 | -#define OCFS2_IOCTL_H | |
10 | +#ifndef OCFS2_IOCTL_PROTO_H | |
11 | +#define OCFS2_IOCTL_PROTO_H | |
12 | 12 | |
13 | 13 | long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg); |
14 | 14 | long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg); |
15 | 15 | |
16 | -#endif /* OCFS2_IOCTL_H */ | |
16 | +#endif /* OCFS2_IOCTL_PROTO_H */ |
fs/ocfs2/ocfs2.h
fs/ocfs2/ocfs2_fs.h
... | ... | @@ -254,63 +254,6 @@ |
254 | 254 | * refcount tree */ |
255 | 255 | |
256 | 256 | /* |
257 | - * ioctl commands | |
258 | - */ | |
259 | -#define OCFS2_IOC_GETFLAGS _IOR('f', 1, long) | |
260 | -#define OCFS2_IOC_SETFLAGS _IOW('f', 2, long) | |
261 | -#define OCFS2_IOC32_GETFLAGS _IOR('f', 1, int) | |
262 | -#define OCFS2_IOC32_SETFLAGS _IOW('f', 2, int) | |
263 | - | |
264 | -/* | |
265 | - * Space reservation / allocation / free ioctls and argument structure | |
266 | - * are designed to be compatible with XFS. | |
267 | - * | |
268 | - * ALLOCSP* and FREESP* are not and will never be supported, but are | |
269 | - * included here for completeness. | |
270 | - */ | |
271 | -struct ocfs2_space_resv { | |
272 | - __s16 l_type; | |
273 | - __s16 l_whence; | |
274 | - __s64 l_start; | |
275 | - __s64 l_len; /* len == 0 means until end of file */ | |
276 | - __s32 l_sysid; | |
277 | - __u32 l_pid; | |
278 | - __s32 l_pad[4]; /* reserve area */ | |
279 | -}; | |
280 | - | |
281 | -#define OCFS2_IOC_ALLOCSP _IOW ('X', 10, struct ocfs2_space_resv) | |
282 | -#define OCFS2_IOC_FREESP _IOW ('X', 11, struct ocfs2_space_resv) | |
283 | -#define OCFS2_IOC_RESVSP _IOW ('X', 40, struct ocfs2_space_resv) | |
284 | -#define OCFS2_IOC_UNRESVSP _IOW ('X', 41, struct ocfs2_space_resv) | |
285 | -#define OCFS2_IOC_ALLOCSP64 _IOW ('X', 36, struct ocfs2_space_resv) | |
286 | -#define OCFS2_IOC_FREESP64 _IOW ('X', 37, struct ocfs2_space_resv) | |
287 | -#define OCFS2_IOC_RESVSP64 _IOW ('X', 42, struct ocfs2_space_resv) | |
288 | -#define OCFS2_IOC_UNRESVSP64 _IOW ('X', 43, struct ocfs2_space_resv) | |
289 | - | |
290 | -/* Used to pass group descriptor data when online resize is done */ | |
291 | -struct ocfs2_new_group_input { | |
292 | - __u64 group; /* Group descriptor's blkno. */ | |
293 | - __u32 clusters; /* Total number of clusters in this group */ | |
294 | - __u32 frees; /* Total free clusters in this group */ | |
295 | - __u16 chain; /* Chain for this group */ | |
296 | - __u16 reserved1; | |
297 | - __u32 reserved2; | |
298 | -}; | |
299 | - | |
300 | -#define OCFS2_IOC_GROUP_EXTEND _IOW('o', 1, int) | |
301 | -#define OCFS2_IOC_GROUP_ADD _IOW('o', 2,struct ocfs2_new_group_input) | |
302 | -#define OCFS2_IOC_GROUP_ADD64 _IOW('o', 3,struct ocfs2_new_group_input) | |
303 | - | |
304 | -/* Used to pass 2 file names to reflink. */ | |
305 | -struct reflink_arguments { | |
306 | - __u64 old_path; | |
307 | - __u64 new_path; | |
308 | - __u64 preserve; | |
309 | -}; | |
310 | -#define OCFS2_IOC_REFLINK _IOW('o', 4, struct reflink_arguments) | |
311 | - | |
312 | - | |
313 | -/* | |
314 | 257 | * Journal Flags (ocfs2_dinode.id1.journal1.i_flags) |
315 | 258 | */ |
316 | 259 | #define OCFS2_JOURNAL_DIRTY_FL (0x00000001) /* Journal needs recovery */ |
fs/ocfs2/ocfs2_ioctl.h
1 | +/* -*- mode: c; c-basic-offset: 8; -*- | |
2 | + * vim: noexpandtab sw=8 ts=8 sts=0: | |
3 | + * | |
4 | + * ocfs2_ioctl.h | |
5 | + * | |
6 | + * Defines OCFS2 ioctls. | |
7 | + * | |
8 | + * Copyright (C) 2010 Oracle. All rights reserved. | |
9 | + * | |
10 | + * This program is free software; you can redistribute it and/or | |
11 | + * modify it under the terms of the GNU General Public | |
12 | + * License, version 2, as published by the Free Software Foundation. | |
13 | + * | |
14 | + * This program is distributed in the hope that it will be useful, | |
15 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
17 | + * General Public License for more details. | |
18 | + */ | |
19 | + | |
20 | +#ifndef OCFS2_IOCTL_H | |
21 | +#define OCFS2_IOCTL_H | |
22 | + | |
23 | +/* | |
24 | + * ioctl commands | |
25 | + */ | |
26 | +#define OCFS2_IOC_GETFLAGS _IOR('f', 1, long) | |
27 | +#define OCFS2_IOC_SETFLAGS _IOW('f', 2, long) | |
28 | +#define OCFS2_IOC32_GETFLAGS _IOR('f', 1, int) | |
29 | +#define OCFS2_IOC32_SETFLAGS _IOW('f', 2, int) | |
30 | + | |
31 | +/* | |
32 | + * Space reservation / allocation / free ioctls and argument structure | |
33 | + * are designed to be compatible with XFS. | |
34 | + * | |
35 | + * ALLOCSP* and FREESP* are not and will never be supported, but are | |
36 | + * included here for completeness. | |
37 | + */ | |
38 | +struct ocfs2_space_resv { | |
39 | + __s16 l_type; | |
40 | + __s16 l_whence; | |
41 | + __s64 l_start; | |
42 | + __s64 l_len; /* len == 0 means until end of file */ | |
43 | + __s32 l_sysid; | |
44 | + __u32 l_pid; | |
45 | + __s32 l_pad[4]; /* reserve area */ | |
46 | +}; | |
47 | + | |
48 | +#define OCFS2_IOC_ALLOCSP _IOW ('X', 10, struct ocfs2_space_resv) | |
49 | +#define OCFS2_IOC_FREESP _IOW ('X', 11, struct ocfs2_space_resv) | |
50 | +#define OCFS2_IOC_RESVSP _IOW ('X', 40, struct ocfs2_space_resv) | |
51 | +#define OCFS2_IOC_UNRESVSP _IOW ('X', 41, struct ocfs2_space_resv) | |
52 | +#define OCFS2_IOC_ALLOCSP64 _IOW ('X', 36, struct ocfs2_space_resv) | |
53 | +#define OCFS2_IOC_FREESP64 _IOW ('X', 37, struct ocfs2_space_resv) | |
54 | +#define OCFS2_IOC_RESVSP64 _IOW ('X', 42, struct ocfs2_space_resv) | |
55 | +#define OCFS2_IOC_UNRESVSP64 _IOW ('X', 43, struct ocfs2_space_resv) | |
56 | + | |
57 | +/* Used to pass group descriptor data when online resize is done */ | |
58 | +struct ocfs2_new_group_input { | |
59 | + __u64 group; /* Group descriptor's blkno. */ | |
60 | + __u32 clusters; /* Total number of clusters in this group */ | |
61 | + __u32 frees; /* Total free clusters in this group */ | |
62 | + __u16 chain; /* Chain for this group */ | |
63 | + __u16 reserved1; | |
64 | + __u32 reserved2; | |
65 | +}; | |
66 | + | |
67 | +#define OCFS2_IOC_GROUP_EXTEND _IOW('o', 1, int) | |
68 | +#define OCFS2_IOC_GROUP_ADD _IOW('o', 2,struct ocfs2_new_group_input) | |
69 | +#define OCFS2_IOC_GROUP_ADD64 _IOW('o', 3,struct ocfs2_new_group_input) | |
70 | + | |
71 | +/* Used to pass 2 file names to reflink. */ | |
72 | +struct reflink_arguments { | |
73 | + __u64 old_path; | |
74 | + __u64 new_path; | |
75 | + __u64 preserve; | |
76 | +}; | |
77 | +#define OCFS2_IOC_REFLINK _IOW('o', 4, struct reflink_arguments) | |
78 | + | |
79 | +#endif /* OCFS2_IOCTL_H */ |