Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d01897e authored by Ben Evans's avatar Ben Evans Committed by Greg Kroah-Hartman
Browse files

staging: lustre: headers: Create single .h for lu_seq_range



Put lu_seq_range related functions into a single .h.
Include directly from files which use it, and remove
definitions from lustre_idl.h.

Signed-off-by: default avatarBen Evans <bevans@cray.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6401
Reviewed-on: http://review.whamcloud.com/15952


Reviewed-by: default avatarAndreas Dilger <andreas.dilger@intel.com>
Reviewed-by: default avatarJames Simmons <uja.ornl@yahoo.com>
Reviewed-by: default avatarOleg Drokin <oleg.drokin@intel.com>
Signed-off-by: default avatarJames Simmons <jsimmons@infradead.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent bbadab80
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ static int seq_client_rpc(struct lu_client_seq *seq,

	/* Zero out input range, this is not recovery yet. */
	in = req_capsule_client_get(&req->rq_pill, &RMF_SEQ_RANGE);
	range_init(in);
	lu_seq_range_init(in);

	ptlrpc_request_set_replen(req);

@@ -123,14 +123,14 @@ static int seq_client_rpc(struct lu_client_seq *seq,
	out = req_capsule_server_get(&req->rq_pill, &RMF_SEQ_RANGE);
	*output = *out;

	if (!range_is_sane(output)) {
	if (!lu_seq_range_is_sane(output)) {
		CERROR("%s: Invalid range received from server: "
		       DRANGE "\n", seq->lcs_name, PRANGE(output));
		rc = -EINVAL;
		goto out_req;
	}

	if (range_is_exhausted(output)) {
	if (lu_seq_range_is_exhausted(output)) {
		CERROR("%s: Range received from server is exhausted: "
		       DRANGE "]\n", seq->lcs_name, PRANGE(output));
		rc = -EINVAL;
@@ -170,9 +170,9 @@ static int seq_client_alloc_seq(const struct lu_env *env,
{
	int rc;

	LASSERT(range_is_sane(&seq->lcs_space));
	LASSERT(lu_seq_range_is_sane(&seq->lcs_space));

	if (range_is_exhausted(&seq->lcs_space)) {
	if (lu_seq_range_is_exhausted(&seq->lcs_space)) {
		rc = seq_client_alloc_meta(env, seq);
		if (rc) {
			CERROR("%s: Can't allocate new meta-sequence, rc %d\n",
@@ -185,7 +185,7 @@ static int seq_client_alloc_seq(const struct lu_env *env,
		rc = 0;
	}

	LASSERT(!range_is_exhausted(&seq->lcs_space));
	LASSERT(!lu_seq_range_is_exhausted(&seq->lcs_space));
	*seqnr = seq->lcs_space.lsr_start;
	seq->lcs_space.lsr_start += 1;

@@ -320,7 +320,7 @@ void seq_client_flush(struct lu_client_seq *seq)

	seq->lcs_space.lsr_index = -1;

	range_init(&seq->lcs_space);
	lu_seq_range_init(&seq->lcs_space);
	mutex_unlock(&seq->lcs_mutex);
}
EXPORT_SYMBOL(seq_client_flush);
+1 −1
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ ldebugfs_fid_write_common(const char __user *buffer, size_t count,
		    (unsigned long long *)&tmp.lsr_end);
	if (rc != 2)
		return -EINVAL;
	if (!range_is_sane(&tmp) || range_is_zero(&tmp) ||
	if (!lu_seq_range_is_sane(&tmp) || lu_seq_range_is_zero(&tmp) ||
	    tmp.lsr_start < range->lsr_start || tmp.lsr_end > range->lsr_end)
		return -EINVAL;
	*range = tmp;
+3 −3
Original line number Diff line number Diff line
@@ -143,7 +143,7 @@ static void fld_fix_new_list(struct fld_cache *cache)
		c_range = &f_curr->fce_range;
		n_range = &f_next->fce_range;

		LASSERT(range_is_sane(c_range));
		LASSERT(lu_seq_range_is_sane(c_range));
		if (&f_next->fce_list == head)
			break;

@@ -358,7 +358,7 @@ struct fld_cache_entry
{
	struct fld_cache_entry *f_new;

	LASSERT(range_is_sane(range));
	LASSERT(lu_seq_range_is_sane(range));

	f_new = kzalloc(sizeof(*f_new), GFP_NOFS);
	if (!f_new)
@@ -503,7 +503,7 @@ int fld_cache_lookup(struct fld_cache *cache,
		}

		prev = flde;
		if (range_within(&flde->fce_range, seq)) {
		if (lu_seq_range_within(&flde->fce_range, seq)) {
			*range = flde->fce_range;

			cache->fci_stat.fst_cache++;
+0 −108
Original line number Diff line number Diff line
@@ -192,113 +192,6 @@ struct lu_seq_range_array {

#define LU_SEQ_RANGE_MASK	0x3

static inline unsigned fld_range_type(const struct lu_seq_range *range)
{
	return range->lsr_flags & LU_SEQ_RANGE_MASK;
}

static inline bool fld_range_is_ost(const struct lu_seq_range *range)
{
	return fld_range_type(range) == LU_SEQ_RANGE_OST;
}

static inline bool fld_range_is_mdt(const struct lu_seq_range *range)
{
	return fld_range_type(range) == LU_SEQ_RANGE_MDT;
}

/**
 * This all range is only being used when fld client sends fld query request,
 * but it does not know whether the seq is MDT or OST, so it will send req
 * with ALL type, which means either seq type gotten from lookup can be
 * expected.
 */
static inline unsigned fld_range_is_any(const struct lu_seq_range *range)
{
	return fld_range_type(range) == LU_SEQ_RANGE_ANY;
}

static inline void fld_range_set_type(struct lu_seq_range *range,
				      unsigned flags)
{
	range->lsr_flags |= flags;
}

static inline void fld_range_set_mdt(struct lu_seq_range *range)
{
	fld_range_set_type(range, LU_SEQ_RANGE_MDT);
}

static inline void fld_range_set_ost(struct lu_seq_range *range)
{
	fld_range_set_type(range, LU_SEQ_RANGE_OST);
}

static inline void fld_range_set_any(struct lu_seq_range *range)
{
	fld_range_set_type(range, LU_SEQ_RANGE_ANY);
}

/**
 * returns  width of given range \a r
 */

static inline __u64 range_space(const struct lu_seq_range *range)
{
	return range->lsr_end - range->lsr_start;
}

/**
 * initialize range to zero
 */

static inline void range_init(struct lu_seq_range *range)
{
	memset(range, 0, sizeof(*range));
}

/**
 * check if given seq id \a s is within given range \a r
 */

static inline bool range_within(const struct lu_seq_range *range,
				__u64 s)
{
	return s >= range->lsr_start && s < range->lsr_end;
}

static inline bool range_is_sane(const struct lu_seq_range *range)
{
	return (range->lsr_end >= range->lsr_start);
}

static inline bool range_is_zero(const struct lu_seq_range *range)
{
	return (range->lsr_start == 0 && range->lsr_end == 0);
}

static inline bool range_is_exhausted(const struct lu_seq_range *range)

{
	return range_space(range) == 0;
}

/* return 0 if two range have the same location */
static inline int range_compare_loc(const struct lu_seq_range *r1,
				    const struct lu_seq_range *r2)
{
	return r1->lsr_index != r2->lsr_index ||
	       r1->lsr_flags != r2->lsr_flags;
}

#define DRANGE "[%#16.16Lx-%#16.16Lx):%x:%s"

#define PRANGE(range)		\
	(range)->lsr_start,	\
	(range)->lsr_end,	\
	(range)->lsr_index,	\
	fld_range_is_mdt(range) ? "mdt" : "ost"

/** \defgroup lu_fid lu_fid
 * @{
 */
@@ -848,7 +741,6 @@ static inline bool fid_is_sane(const struct lu_fid *fid)
}

void lustre_swab_lu_fid(struct lu_fid *fid);
void lustre_swab_lu_seq_range(struct lu_seq_range *range);

static inline bool lu_fid_eq(const struct lu_fid *f0, const struct lu_fid *f1)
{
+1 −0
Original line number Diff line number Diff line
@@ -150,6 +150,7 @@

#include "../../include/linux/libcfs/libcfs.h"
#include "lustre/lustre_idl.h"
#include "seq_range.h"

struct lu_env;
struct lu_site;
Loading