Whamcloud - gitweb
LU-3126 osd: remove fld lookup during configuration
[fs/lustre-release.git] / lustre / osd-ldiskfs / osd_oi.h
index 8db80dd..5ddf162 100644 (file)
@@ -27,7 +27,7 @@
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2012, Whamcloud, Inc.
+ * Copyright (c) 2012, 2013, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -87,6 +87,7 @@ struct osd_inode_id {
 struct osd_idmap_cache {
        struct lu_fid           oic_fid;
        struct osd_inode_id     oic_lid;
+       struct osd_device       *oic_dev;
 };
 
 static inline void osd_id_pack(struct osd_inode_id *tgt,
@@ -125,19 +126,34 @@ static inline int osd_id_eq(const struct osd_inode_id *id0,
                id1->oii_gen == OSD_OII_NOGEN);
 }
 
+static inline int osd_id_eq_strict(const struct osd_inode_id *id0,
+                                  const struct osd_inode_id *id1)
+{
+       return (id0->oii_ino == id1->oii_ino && id0->oii_gen == id1->oii_gen);
+}
+
+enum oi_check_flags {
+       OI_CHECK_FLD    = 0x00000001,
+       OI_KNOWN_ON_OST = 0x00000002,
+};
+
 int osd_oi_mod_init(void);
 int osd_oi_init(struct osd_thread_info *info, struct osd_device *osd);
 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);
 int  osd_oi_lookup(struct osd_thread_info *info, struct osd_device *osd,
-                  const struct lu_fid *fid, struct osd_inode_id *id);
+                  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,
-                  struct thandle *th);
+                  struct thandle *th, enum oi_check_flags flags);
 int  osd_oi_delete(struct osd_thread_info *info,
                   struct osd_device *osd, const struct lu_fid *fid,
-                  struct thandle *th);
+                  struct thandle *th, enum oi_check_flags flags);
+int  osd_oi_update(struct osd_thread_info *info, struct osd_device *osd,
+                  const struct lu_fid *fid, const struct osd_inode_id *id,
+                  struct thandle *th, enum oi_check_flags flags);
 
+int fid_is_on_ost(struct osd_thread_info *info, struct osd_device *osd,
+                 const struct lu_fid *fid, enum oi_check_flags flags);
 #endif /* __KERNEL__ */
 #endif /* _OSD_OI_H */