Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-6996 osd-ldiskfs: handle stale OI mapping cache
[fs/lustre-release.git]
/
lustre
/
osd-ldiskfs
/
osd_oi.h
diff --git
a/lustre/osd-ldiskfs/osd_oi.h
b/lustre/osd-ldiskfs/osd_oi.h
index
2837ddc
..
c9d727d
100644
(file)
--- a/
lustre/osd-ldiskfs/osd_oi.h
+++ b/
lustre/osd-ldiskfs/osd_oi.h
@@
-27,7
+27,7
@@
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 201
1, 2012
, Intel Corporation.
+ * Copyright (c) 201
2, 2013
, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
*/
/*
* This file is part of Lustre, http://www.lustre.org/
@@
-49,10
+49,10
@@
#ifndef _OSD_OI_H
#define _OSD_OI_H
#ifndef _OSD_OI_H
#define _OSD_OI_H
-#if defined(__KERNEL__)
/* struct rw_semaphore */
#include <linux/rwsem.h>
/* struct rw_semaphore */
#include <linux/rwsem.h>
+#include <linux/jbd2.h>
#include <lustre_fid.h>
#include <lu_object.h>
#include <md_object.h>
#include <lustre_fid.h>
#include <lu_object.h>
#include <md_object.h>
@@
-65,7
+65,6
@@
struct lu_fid;
struct osd_thread_info;
struct lu_site;
struct lu_fid;
struct osd_thread_info;
struct lu_site;
-struct thandle;
struct dt_device;
struct osd_device;
struct dt_device;
struct osd_device;
@@
-87,6
+86,7
@@
struct osd_inode_id {
struct osd_idmap_cache {
struct lu_fid oic_fid;
struct osd_inode_id oic_lid;
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,
};
static inline void osd_id_pack(struct osd_inode_id *tgt,
@@
-125,22
+125,33
@@
static inline int osd_id_eq(const struct osd_inode_id *id0,
id1->oii_gen == OSD_OII_NOGEN);
}
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_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,
int osd_oi_lookup(struct osd_thread_info *info, struct osd_device *osd,
const struct lu_fid *fid, struct osd_inode_id *id,
-
bool check_fld
);
+
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,
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
);
+
handle_t *th, enum oi_check_flags flags
);
int osd_oi_delete(struct osd_thread_info *info,
struct osd_device *osd, const struct lu_fid *fid,
int osd_oi_delete(struct osd_thread_info *info,
struct osd_device *osd, const struct lu_fid *fid,
- struct thandle *th);
+ handle_t *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,
+ handle_t *th, enum oi_check_flags flags);
int fid_is_on_ost(struct osd_thread_info *info, struct osd_device *osd,
int fid_is_on_ost(struct osd_thread_info *info, struct osd_device *osd,
- const struct lu_fid *fid);
-#endif /* __KERNEL__ */
+ const struct lu_fid *fid, enum oi_check_flags flags);
#endif /* _OSD_OI_H */
#endif /* _OSD_OI_H */