*
* You should have received a copy of the GNU General Public License
* version 2 along with this program; If not, see
- * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
+ * http://www.gnu.org/licenses/gpl-2.0.html
*
* GPL HEADER END
*/
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2012, 2013, Intel Corporation.
+ * Copyright (c) 2012, 2016, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
#include <lu_object.h>
#include <md_object.h>
-#define OSD_OI_FID_NR (1UL << OSD_OI_FID_OID_BITS)
-#define OSD_OI_FID_NR_MAX (1UL << OSD_OI_FID_OID_BITS_MAX)
-
-#define OSD_OII_NOGEN (0)
+#define OSD_OI_FID_OID_BITS 6
+#define OSD_OI_FID_NR (1UL << OSD_OI_FID_OID_BITS)
+#define OSD_OII_NOGEN (0)
struct lu_fid;
struct osd_thread_info;
__u32 oii_gen; /* inode generation */
};
+/* OI cache entry */
struct osd_idmap_cache {
struct lu_fid oic_fid;
struct osd_inode_id oic_lid;
struct osd_device *oic_dev;
+ __u16 oic_remote:1; /* FID isn't local */
};
static inline void osd_id_pack(struct osd_inode_id *tgt,
OI_KNOWN_ON_OST = 0x00000002,
};
+extern unsigned int osd_oi_count;
+
int osd_oi_mod_init(void);
-int osd_oi_init(struct osd_thread_info *info, struct osd_device *osd);
+int osd_oi_init(struct osd_thread_info *info, struct osd_device *osd,
+ bool restored);
void osd_oi_fini(struct osd_thread_info *info, struct osd_device *osd);
int osd_oi_lookup(struct osd_thread_info *info, struct osd_device *osd,
const struct lu_fid *fid, struct osd_inode_id *id,
enum oi_check_flags flags);
int osd_oi_insert(struct osd_thread_info *info, struct osd_device *osd,
const struct lu_fid *fid, const struct osd_inode_id *id,
- handle_t *th, enum oi_check_flags flags);
+ handle_t *th, enum oi_check_flags flags, bool *exist);
int osd_oi_delete(struct osd_thread_info *info,
struct osd_device *osd, const struct lu_fid *fid,
handle_t *th, enum oi_check_flags flags);