#ifndef __LUSTRE_LU_OBJECT_H
#define __LUSTRE_LU_OBJECT_H
+#ifdef HAVE_LINUX_STDARG_HEADER
+#include <linux/stdarg.h>
+#else
#include <stdarg.h>
+#endif
#include <libcfs/libcfs.h>
#include <uapi/linux/lustre/lustre_idl.h>
#include <lu_ref.h>
LQ_SAME_SPACE, /* the OSTs all have approx.
* the same space avail */
LQ_RESET, /* zero current penalties */
+ LQ_SF_PROGRESS, /* statfs op in progress */
};
#ifdef HAVE_SERVER_SUPPORT
/* round-robin QoS data for LOD/LMV */
struct lu_qos_rr {
spinlock_t lqr_alloc; /* protect allocation index */
- __u32 lqr_start_idx; /* start index of new inode */
+ atomic_t lqr_start_idx; /* start index of new inode */
__u32 lqr_offset_idx;/* aliasing for start_idx */
int lqr_start_count;/* reseed counter */
struct lu_tgt_pool lqr_pool; /* round-robin optimized list */
struct lu_tgt_desc *ldi_tgt[TGT_PTRS_PER_BLOCK];
};
+
/* QoS data for LOD/LMV */
+#define QOS_THRESHOLD_MAX 256 /* should be power of two */
struct lu_qos {
struct list_head lq_svr_list; /* lu_svr_qos list */
struct rw_semaphore lq_rw_sem;