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-12400 zfs: zfs mainline 0.8+ with mainline (5.2) kernel
[fs/lustre-release.git]
/
lustre
/
osd-zfs
/
osd_internal.h
diff --git
a/lustre/osd-zfs/osd_internal.h
b/lustre/osd-zfs/osd_internal.h
index
edb881c
..
4e5b480
100644
(file)
--- a/
lustre/osd-zfs/osd_internal.h
+++ b/
lustre/osd-zfs/osd_internal.h
@@
-97,6
+97,12
@@
#define OSD_GRANT_FOR_LOCAL_OIDS (2ULL << 20) /* 2MB for last_rcvd, ... */
#define OSD_GRANT_FOR_LOCAL_OIDS (2ULL << 20) /* 2MB for last_rcvd, ... */
+#define OSD_MAX_CACHE_SIZE OBD_OBJECT_EOF
+
+#ifndef HAVE_ZFS_REFCOUNT_ADD
+#define zfs_refcount_add refcount_add
+#endif
+
extern struct dt_body_operations osd_body_scrub_ops;
/**
extern struct dt_body_operations osd_body_scrub_ops;
/**
@@
-113,6
+119,13
@@
struct osd_it_quota {
unsigned oiq_reset:1; /* 1 -- no need to advance */
};
unsigned oiq_reset:1; /* 1 -- no need to advance */
};
+enum osd_zap_pos {
+ OZI_POS_INIT = 0,
+ OZI_POS_DOT = 1, /* cursor at . */
+ OZI_POS_DOTDOT = 2, /* cursor at .. */
+ OZI_POS_REAL = 3, /* cursor at real entries */
+};
+
/**
* Iterator's in-memory data structure for ZAPs
*
/**
* Iterator's in-memory data structure for ZAPs
*
@@
-124,12
+137,8
@@
struct osd_zap_it {
zap_cursor_t *ozi_zc;
struct osd_object *ozi_obj;
unsigned ozi_reset:1; /* 1 -- no need to advance */
zap_cursor_t *ozi_zc;
struct osd_object *ozi_obj;
unsigned ozi_reset:1; /* 1 -- no need to advance */
- /* ozi_pos - position of the cursor:
- * 0 - before any record
- * 1 - "."
- * 2 - ".."
- * 3 - real records */
- unsigned ozi_pos:3;
+ /* ozi_pos - position of the cursor */
+ enum osd_zap_pos ozi_pos;
union {
char ozi_name[MAXNAMELEN]; /* file name for dir */
__u64 ozi_key; /* binary key for index files */
union {
char ozi_name[MAXNAMELEN]; /* file name for dir */
__u64 ozi_key; /* binary key for index files */
@@
-223,10
+232,6
@@
struct osd_thread_info {
const struct lu_env *oti_env;
struct lu_fid oti_fid;
const struct lu_env *oti_env;
struct lu_fid oti_fid;
- /*
- * XXX temporary: for ->i_op calls.
- */
- struct timespec oti_time;
struct ost_id oti_ostid;
struct ost_id oti_ostid;
@@
-277,8
+282,7
@@
struct osd_thandle {
struct list_head ot_sa_list;
dmu_tx_t *ot_tx;
struct lquota_trans ot_quota_trans;
struct list_head ot_sa_list;
dmu_tx_t *ot_tx;
struct lquota_trans ot_quota_trans;
- __u32 ot_write_commit:1,
- ot_assigned:1;
+ __u32 ot_assigned:1;
};
#define OSD_OI_NAME_SIZE 24
};
#define OSD_OI_NAME_SIZE 24
@@
-339,14
+343,15
@@
struct osd_device {
od_xattr_in_sa:1,
od_is_ost:1,
od_in_init:1,
od_xattr_in_sa:1,
od_is_ost:1,
od_in_init:1,
- od_posix_acl:1;
+ od_posix_acl:1,
+ od_nonrotational:1;
unsigned int od_dnsize;
int od_index_backup_stop;
enum lustre_index_backup_policy od_index_backup_policy;
char od_mntdev[128];
char od_svname[128];
unsigned int od_dnsize;
int od_index_backup_stop;
enum lustre_index_backup_policy od_index_backup_policy;
char od_mntdev[128];
char od_svname[128];
-
char od_uuid[16]
;
+
uuid_t od_uuid
;
int od_connects;
int od_index;
int od_connects;
int od_index;
@@
-359,8
+364,11
@@
struct osd_device {
dnode_t *od_projectused_dn;
#endif
dnode_t *od_projectused_dn;
#endif
- /* quota slave instance */
- struct qsd_instance *od_quota_slave;
+ /* quota slave instance for inode */
+ struct qsd_instance *od_quota_slave_md;
+
+ /* quota slave instance for block */
+ struct qsd_instance *od_quota_slave_dt;
struct brw_stats od_brw_stats;
atomic_t od_r_in_flight;
struct brw_stats od_brw_stats;
atomic_t od_r_in_flight;
@@
-385,8
+393,17
@@
struct osd_device {
struct list_head od_index_backup_list;
struct list_head od_index_restore_list;
spinlock_t od_lock;
struct list_head od_index_backup_list;
struct list_head od_index_restore_list;
spinlock_t od_lock;
+ unsigned long long od_readcache_max_filesize;
};
};
+static inline struct qsd_instance *osd_def_qsd(struct osd_device *osd)
+{
+ if (osd->od_is_ost)
+ return osd->od_quota_slave_dt;
+ else
+ return osd->od_quota_slave_md;
+}
+
enum osd_destroy_type {
OSD_DESTROY_NONE = 0,
OSD_DESTROY_SYNC = 1,
enum osd_destroy_type {
OSD_DESTROY_NONE = 0,
OSD_DESTROY_SYNC = 1,
@@
-448,7
+465,8
@@
struct osd_object {
struct lu_object_header *oo_header;
};
struct lu_object_header *oo_header;
};
-int osd_statfs(const struct lu_env *, struct dt_device *, struct obd_statfs *);
+int osd_statfs(const struct lu_env *, struct dt_device *, struct obd_statfs *,
+ struct obd_statfs_info *);
extern const struct dt_index_operations osd_acct_index_ops;
extern struct lu_device_operations osd_lu_ops;
extern struct dt_index_operations osd_dir_ops;
extern const struct dt_index_operations osd_acct_index_ops;
extern struct lu_device_operations osd_lu_ops;
extern struct dt_index_operations osd_dir_ops;
@@
-794,11
+812,11
@@
static inline uint32_t attrs_zfs2fs(const uint64_t flags)
#endif
#ifndef HAVE_DSL_POOL_CONFIG
#endif
#ifndef HAVE_DSL_POOL_CONFIG
-static inline void dsl_pool_config_enter(dsl_pool_t *dp,
char
*name)
+static inline void dsl_pool_config_enter(dsl_pool_t *dp,
void
*name)
{
}
{
}
-static inline void dsl_pool_config_exit(dsl_pool_t *dp,
char
*name)
+static inline void dsl_pool_config_exit(dsl_pool_t *dp,
void
*name)
{
}
#endif
{
}
#endif
@@
-923,7
+941,7
@@
static inline int osd_sa_handle_get(struct osd_object *obj)
SA_HDL_PRIVATE, &obj->oo_sa_hdl);
if (rc)
return rc;
SA_HDL_PRIVATE, &obj->oo_sa_hdl);
if (rc)
return rc;
- refcount_add(&dn->dn_bonus->db_holds, osd_obj_tag);
+
zfs_
refcount_add(&dn->dn_bonus->db_holds, osd_obj_tag);
return 0;
}
return 0;
}
@@
-934,7
+952,6
@@
static inline void osd_dnode_rele(dnode_t *dn)
LASSERT(dn->dn_bonus);
db = dn->dn_bonus;
LASSERT(dn->dn_bonus);
db = dn->dn_bonus;
- DB_DNODE_EXIT(db);
dmu_buf_rele(&db->db, osd_obj_tag);
}
dmu_buf_rele(&db->db, osd_obj_tag);
}
@@
-1094,4
+1111,8
@@
osd_index_backup(const struct lu_env *env, struct osd_device *osd, bool backup)
#define dmu_tx_mark_netfree(tx)
#endif
#define dmu_tx_mark_netfree(tx)
#endif
+#ifndef HAVE_ZFS_INODE_TIMESPEC
+#define inode_timespec_t timestruc_t
+#endif
+
#endif /* _OSD_INTERNAL_H */
#endif /* _OSD_INTERNAL_H */