1 /* 2 * GPL HEADER START 3 * 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 only, 8 * as published by the Free Software Foundation. 9 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License version 2 for more details. A copy is 14 * included in the COPYING file that accompanied this code. 15 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 * 20 * GPL HEADER END 21 */ 22 /* 23 * Copyright (c) 2012, Intel Corporation. 24 */ 25 /* 26 * lustre/include/lustre/lustre_lfsck_user.h 27 * 28 * Lustre LFSCK userspace interfaces. 29 * 30 * Author: Fan Yong <yong.fan@whamcloud.com> 31 */ 32 33 #ifndef _LUSTRE_LFSCK_USER_H 34 # define _LUSTRE_LFSCK_USER_H 35 36 enum lfsck_param_flags { 37 /* Reset LFSCK iterator position to the device beginning. */ 38 LPF_RESET = 0x0001, 39 40 /* Exit when fail. */ 41 LPF_FAILOUT = 0x0002, 42 43 /* Dryrun mode, only check without modification */ 44 LPF_DRYRUN = 0x0004, 45 }; 46 47 enum lfsck_type { 48 /* For MDT-OST consistency check/repair. */ 49 LT_LAYOUT = 0x0001, 50 51 /* For MDT-MDT consistency check/repair. */ 52 LT_DNE = 0x0002, 53 54 /* For FID-in-dirent and linkEA consistency check/repair. */ 55 LT_NAMESPACE = 0x0004, 56 }; 57 58 #define LFSCK_VERSION_V1 1 59 #define LFSCK_VERSION_V2 2 60 61 #define LFSCK_TYPES_ALL ((__u16)(~0)) 62 #define LFSCK_TYPES_DEF ((__u16)0) 63 #define LFSCK_TYPES_SUPPORTED LT_NAMESPACE 64 65 #define LFSCK_SPEED_NO_LIMIT 0 66 #define LFSCK_SPEED_LIMIT_DEF LFSCK_SPEED_NO_LIMIT 67 68 enum lfsck_start_valid { 69 LSV_SPEED_LIMIT = 0x00000001, 70 LSV_ERROR_HANDLE = 0x00000002, 71 LSV_DRYRUN = 0x00000004, 72 }; 73 74 /* Arguments for starting lfsck. */ 75 struct lfsck_start { 76 /* Which arguments are valid, see 'enum lfsck_start_valid'. */ 77 __u32 ls_valid; 78 79 /* How many items can be scanned at most per second. */ 80 __u32 ls_speed_limit; 81 82 /* For compatibility between user space tools and kernel service. */ 83 __u16 ls_version; 84 85 /* Which LFSCK components to be (have been) started. */ 86 __u16 ls_active; 87 88 /* Flags for the LFSCK, see 'enum lfsck_param_flags'. */ 89 __u16 ls_flags; 90 91 /* For 64-bits aligned. */ 92 __u16 ls_padding; 93 }; 94 95 #endif /* _LUSTRE_LFSCK_USER_H */ 96