-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
* Modifications for Lustre
*
- * Copyright 2008 Sun Microsystems, 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_MGS_STR "lustre_mgs"
#define LGSS_SVC_MDS_STR "lustre_mds"
-#define LGSS_SVC_OST_STR "lustre_oss"
+#define LGSS_SVC_OSS_STR "lustre_oss"
#define LGSS_USR_ROOT_STR "lustre_root"
typedef enum {
void lgss_set_loglevel(loglevel_t level);
-void __logmsg(loglevel_t level, const char *func, const char *format, ...);
+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 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);