* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, 2015, Intel Corporation.
+ * Copyright (c) 2011, 2017, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
*/
#include <libcfs/libcfs.h>
-#include <uapi/linux/lustre_fid.h>
-#include <lustre/lustre_idl.h>
-#include <uapi/linux/lustre_ostid.h>
+#include <uapi/linux/lustre/lustre_fid.h>
+#include <uapi/linux/lustre/lustre_idl.h>
+#include <uapi/linux/lustre/lustre_ostid.h>
struct lu_env;
struct lu_site;
LUSTRE_SEQ_SUPER_WIDTH = ((1ULL << 30ULL) * LUSTRE_SEQ_META_WIDTH)
};
-enum {
- /** 2^6 FIDs for OI containers */
- OSD_OI_FID_OID_BITS = 6,
- /** reserve enough FIDs in case we want more in the future */
- OSD_OI_FID_OID_BITS_MAX = 10,
-};
-
/** special OID for local objects */
enum local_oid {
/** \see fld_mod_init */
OSD_LPF_OID = 19UL,
REPLY_DATA_OID = 21UL,
ACCT_PROJECT_OID = 22UL,
+ INDEX_BACKUP_OID = 4116UL,
OFD_LAST_GROUP_OID = 4117UL,
LLOG_CATALOGS_OID = 4118UL,
MGS_CONFIGS_OID = 4119UL,
dst->ol_comp_id = __le32_to_cpu(src->ol_comp_id);
}
-/* Both filter_fid_*cpu* functions not currently used */
static inline void filter_fid_cpu_to_le(struct filter_fid *dst,
const struct filter_fid *src, int size)
{
fid_cpu_to_le(&dst->ff_parent, &src->ff_parent);
- if (size < sizeof(struct filter_fid))
+ if (size < sizeof(struct filter_fid)) {
memset(&dst->ff_layout, 0, sizeof(dst->ff_layout));
- else
+ } else {
ost_layout_cpu_to_le(&dst->ff_layout, &src->ff_layout);
+ dst->ff_layout_version = cpu_to_le32(src->ff_layout_version);
+ dst->ff_range = cpu_to_le32(src->ff_range);
+ }
/* XXX: Add more if filter_fid is enlarged in the future. */
}
{
fid_le_to_cpu(&dst->ff_parent, &src->ff_parent);
- if (size < sizeof(struct filter_fid))
+ if (size < sizeof(struct filter_fid)) {
memset(&dst->ff_layout, 0, sizeof(dst->ff_layout));
- else
+ } else {
ost_layout_le_to_cpu(&dst->ff_layout, &src->ff_layout);
+ dst->ff_layout_version = le32_to_cpu(src->ff_layout_version);
+ dst->ff_range = le32_to_cpu(src->ff_range);
+ }
/* XXX: Add more if filter_fid is enlarged in the future. */
}
*/
struct lu_seq_range lcs_space;
- /* Seq related proc */
- struct proc_dir_entry *lcs_proc_dir;
+ /* Seq related debugfs */
+ struct dentry *lcs_debugfs_entry;
/* This holds last allocated fid in last obtained seq */
struct lu_fid lcs_fid;
/*
* Service uuid, passed from MDT + seq name to form unique seq name to
- * use it with procfs.
+ * use it with debugfs.
*/
char lcs_name[80];
/* /seq file object device */
struct dt_object *lss_obj;
- /* Seq related proc */
- struct proc_dir_entry *lss_proc_dir;
+ /* Seq related debugfs */
+ struct dentry *lss_debugfs_entry;
/* LUSTRE_SEQ_SERVER or LUSTRE_SEQ_CONTROLLER */
enum lu_mgr_type lss_type;
/*
* Service uuid, passed from MDT + seq name to form unique seq name to
- * use it with procfs.
+ * use it with debugfs.
*/
char lss_name[80];
/* old resid */
struct ost_id oi;
+ memset(&oi, 0, sizeof(oi));
ostid_set_seq(&oi, name->name[LUSTRE_RES_ID_VER_OID_OFF]);
if (ostid_set_id(&oi, name->name[LUSTRE_RES_ID_SEQ_OFF])) {
CERROR("Bad %llu to set " DOSTID "\n",
*/
static inline __u64 fid_flatten(const struct lu_fid *fid)
{
- __u64 ino;
- __u64 seq;
+ __u64 ino;
+ __u64 seq;
- if (fid_is_igif(fid)) {
- ino = lu_igif_ino(fid);
- RETURN(ino);
- }
+ if (fid_is_igif(fid)) {
+ ino = lu_igif_ino(fid);
+ return ino;
+ }
- seq = fid_seq(fid);
+ seq = fid_seq(fid);
- ino = (seq << 24) + ((seq >> 24) & 0xffffff0000ULL) + fid_oid(fid);
+ ino = (seq << 24) + ((seq >> 24) & 0xffffff0000ULL) + fid_oid(fid);
- RETURN(ino ? ino : fid_oid(fid));
+ return ino ?: fid_oid(fid);
}
static inline __u32 fid_hash(const struct lu_fid *f, int bits)
* map fid to 32 bit value for ino on 32bit systems. */
static inline __u32 fid_flatten32(const struct lu_fid *fid)
{
- __u32 ino;
- __u64 seq;
+ __u32 ino;
+ __u64 seq;
- if (fid_is_igif(fid)) {
- ino = lu_igif_ino(fid);
- RETURN(ino);
- }
+ if (fid_is_igif(fid)) {
+ ino = lu_igif_ino(fid);
+ return ino;
+ }
- seq = fid_seq(fid) - FID_SEQ_START;
+ seq = fid_seq(fid) - FID_SEQ_START;
- /* Map the high bits of the OID into higher bits of the inode number so
- * that inodes generated at about the same time have a reduced chance
- * of collisions. This will give a period of 2^12 = 1024 unique clients
- * (from SEQ) and up to min(LUSTRE_SEQ_MAX_WIDTH, 2^20) = 128k objects
- * (from OID), or up to 128M inodes without collisions for new files. */
- ino = ((seq & 0x000fffffULL) << 12) + ((seq >> 8) & 0xfffff000) +
- (seq >> (64 - (40-8)) & 0xffffff00) +
- (fid_oid(fid) & 0xff000fff) + ((fid_oid(fid) & 0x00fff000) << 8);
+ /* Map the high bits of the OID into higher bits of the inode number so
+ * that inodes generated at about the same time have a reduced chance
+ * of collisions. This will give a period of 2^12 = 1024 unique clients
+ * (from SEQ) and up to min(LUSTRE_SEQ_MAX_WIDTH, 2^20) = 128k objects
+ * (from OID), or up to 128M inodes without collisions for new files. */
+ ino = ((seq & 0x000fffffULL) << 12) + ((seq >> 8) & 0xfffff000) +
+ (seq >> (64 - (40-8)) & 0xffffff00) +
+ (fid_oid(fid) & 0xff000fff) + ((fid_oid(fid) & 0x00fff000) << 8);
- RETURN(ino ? ino : fid_oid(fid));
+ return ino ?: fid_oid(fid);
}
static inline int