/*
* Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
- */
-/*
- * Copyright (c) 2012, 2013, Intel Corporation.
- * Use is subject to license terms.
+ *
+ * Copyright (c) 2012, 2014, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
#include <lustre_quota.h>
#define _SPL_KMEM_H
+/* SPL redefines this but to the same value: ~0UL vs -1, but GCC complains.
+ * fixed in SPL master 52479ecf58fa89190e384edcf838fecccc786af5 */
+#undef SHRINK_STOP
#include <sys/kstat.h>
#define kmem_zalloc(a, b) kzalloc(a, b)
#define kmem_free(ptr, sz) ((void)(sz), kfree(ptr))
struct lquota_id_info oti_qi;
struct lu_seq_range oti_seq_range;
+ unsigned int oti_it_inline:1;
};
extern struct lu_context_key osd_key;
struct osd_seq {
uint64_t *os_compat_dirs;
int os_subdir_count; /* subdir count for each seq */
- obd_seq os_seq; /* seq number */
+ u64 os_seq; /* seq number */
struct list_head os_seq_list; /* list to seq_list */
};
/* quota slave instance */
struct qsd_instance *od_quota_slave;
+ struct brw_stats od_brw_stats;
+ atomic_t od_r_in_flight;
+ atomic_t od_w_in_flight;
+
/* used to debug zerocopy logic: the fields track all
* allocated, loaned and referenced buffers in use.
* to be removed once the change is tested well. */
extern const struct dt_index_operations osd_acct_index_ops;
uint64_t osd_quota_fid2dmu(const struct lu_fid *fid);
extern struct lu_device_operations osd_lu_ops;
+extern struct dt_index_operations osd_dir_ops;
int osd_declare_quota(const struct lu_env *env, struct osd_device *osd,
qid_t uid, qid_t gid, long long space,
struct osd_thandle *oh, bool is_blk, int *flags,
return osd->od_dt_dev.dd_lu_dev.ld_obd->obd_name;
}
-#ifdef LPROCFS
+#ifdef CONFIG_PROC_FS
enum {
LPROC_OSD_READ_BYTES = 0,
LPROC_OSD_WRITE_BYTES = 1,
int osd_index_try(const struct lu_env *env, struct dt_object *dt,
const struct dt_index_features *feat);
int osd_fld_lookup(const struct lu_env *env, struct osd_device *osd,
- obd_seq seq, struct lu_seq_range *range);
+ u64 seq, struct lu_seq_range *range);
void osd_zap_cursor_init_serialized(zap_cursor_t *zc, struct objset *os,
uint64_t id, uint64_t dirhash);
int osd_zap_cursor_init(zap_cursor_t **zc, struct objset *os,
const char *name, struct thandle *handle,
struct lustre_capa *capa);
int osd_xattr_list(const struct lu_env *env, struct dt_object *dt,
- struct lu_buf *lb, struct lustre_capa *capa);
+ const struct lu_buf *lb, struct lustre_capa *capa);
void __osd_xattr_declare_set(const struct lu_env *env, struct osd_object *obj,
int vallen, const char *name, struct osd_thandle *oh);
int __osd_sa_xattr_set(const struct lu_env *env, struct osd_object *obj,