Viewing: lustre_barrier_user.h

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */

/*
 * Copyright (c) 2017, Intel Corporation.
 */

/*
 * Lustre write barrier (on MDT) userspace interfaces.
 *
 * Author: Fan, Yong <fan.yong@intel.com>
 */

#ifndef _LUSTRE_BARRIER_USER_H
# define _LUSTRE_BARRIER_USER_H

#include <linux/types.h>
#include <linux/lustre/lustre_user.h>

#define BARRIER_VERSION_V1	1
#define BARRIER_TIMEOUT_DEFAULT	30

enum barrier_commands {
	BC_FREEZE	= 1,
	BC_THAW		= 2,
	BC_STAT		= 3,
	BC_RESCAN	= 4,
};

enum barrier_status {
	BS_INIT		= 0,
	BS_FREEZING_P1	= 1,
	BS_FREEZING_P2	= 2,
	BS_FROZEN	= 3,
	BS_THAWING	= 4,
	BS_THAWED	= 5,
	BS_FAILED	= 6,
	BS_EXPIRED	= 7,
	BS_RESCAN	= 8,
};

struct barrier_ctl {
	__u32	bc_version;
	__u32	bc_cmd;
	union {
		__s32	bc_timeout;
		__u32	bc_total;
	};
	union {
		__u32	bc_status;
		__u32	bc_absence;
	};
	char	bc_name[12];
	__u32	bc_padding;
};

#endif /* _LUSTRE_BARRIER_USER_H */