-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
* Modifications for Lustre
- * Copyright 2007, Cluster File Systems, Inc.
- * All rights reserved
+ *
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ *
* Author: Eric Mei <ericm@clusterfs.com>
*/
#include <stdint.h>
#include <gssapi/gssapi.h>
-#include <libcfs/libcfs.h>
-
-#define LGSS_SVC_MDS_STR "lustre_mds"
-#define LGSS_SVC_OST_STR "lustre_oss"
#define LGSS_SVC_MGS_STR "lustre_mgs"
+#define LGSS_SVC_MDS_STR "lustre_mds"
+#define LGSS_SVC_OSS_STR "lustre_oss"
#define LGSS_USR_ROOT_STR "lustre_root"
typedef enum {
- LGSS_SVC_MDS = 0,
- LGSS_SVC_OSS = 1,
- LGSS_SVC_MGS = 2,
+ LGSS_SVC_MGS = 0,
+ LGSS_SVC_MDS = 1,
+ LGSS_SVC_OSS = 2,
LGSS_SVC_MAX
} lgss_svc_t;
extern loglevel_t g_log_level;
-void __logmsg(loglevel_t level, const char *func, const char *format, ...);
+void lgss_set_loglevel(loglevel_t level);
+
+void __logmsg(loglevel_t level, const char *func, const char *format, ...)
+ __attribute__((format(printf, 3, 4)));
+
void __logmsg_gss(loglevel_t level, const char *func, const gss_OID mech,
- uint32_t major, uint32_t minor, const char *format, ...);
+ uint32_t major, uint32_t minor, const char *format, ...)
+ __attribute__((format(printf, 6, 7)));
#define logmsg(loglevel, format, args...) \
do { \
- if (unlikely(loglevel <= g_log_level)) \
+ if (loglevel <= g_log_level) \
__logmsg(loglevel, __FUNCTION__, format, ##args); \
} while (0)
#define logmsg_gss(loglevel, mech, major, minor, format, args...) \
do { \
- if (unlikely(loglevel <= g_log_level)) \
+ if (loglevel <= g_log_level) \
__logmsg_gss(loglevel, __FUNCTION__, mech, \
major, minor, format, ##args); \
} while (0)
#define lassert(exp) \
do { \
- if ((int)(exp) == 0) { \
+ if (!(exp)) { \
logmsg(LL_ERR, "ASSERTION FAILED: %s", #exp); \
exit(-1); \
} \
#define printerr(priority, format, args...) \
logmsg(priority, format, ##args)
-#define pgsserr(msg, maj_stat, min_stat, mech) \
- logmsg_gss(LL_ERR, mech, maj_stat, min_stat, "")
+#define pgsserr(msg, maj_stat, min_stat, mech) \
+ logmsg_gss(LL_ERR, mech, maj_stat, min_stat, msg)
/****************************************
* GSS MECH, OIDs *
int (*lmt_using_cred)(struct lgss_cred *cred);
};
+enum {
+ LGSS_ROOT_CRED_ROOT = 0x01,
+ LGSS_ROOT_CRED_MDT = 0x02,
+ LGSS_ROOT_CRED_OST = 0x04,
+
+ LGSS_ROOT_CRED_NR = 3
+};
+
struct lgss_cred {
- int lc_uid;
- unsigned int lc_fl_root:1,
- lc_fl_mds:1;
- uint64_t lc_tgt_nid;
- uint32_t lc_tgt_svc;
-
- struct lgss_mech_type *lc_mech;
- void *lc_mech_cred;
+ int lc_uid;
+ unsigned int lc_root_flags;
+ uint64_t lc_self_nid;
+ uint64_t lc_tgt_nid;
+ uint32_t lc_tgt_svc;
+
+ struct lgss_mech_type *lc_mech;
+ void *lc_mech_cred;
};
struct lgss_mech_type *lgss_name2mech(const char *mech_name);