Add scoutfs_key_init_buf_len()

As of yet the static key users have key and buffer lengths that match.
We're about to add a link backref caller who searches with a small key
but gets a result copied into a larger buffer.

Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
Zach Brown
2017-02-03 14:21:57 -08:00
parent 6516ce7d57
commit 8def9141bc
+17 -5
View File
@@ -19,6 +19,22 @@ void scoutfs_key_inc_cur_len(struct scoutfs_key_buf *key);
void scoutfs_key_dec(struct scoutfs_key_buf *key);
void scoutfs_key_dec_cur_len(struct scoutfs_key_buf *key);
/*
* Initialize a small key in a larger allocated buffer. This lets
* callers, for example, search for a small key and get a larger key
* copied in.
*/
static inline void scoutfs_key_init_buf_len(struct scoutfs_key_buf *key,
void *data, u16 key_len,
u16 buf_len)
{
WARN_ON_ONCE(buf_len > SCOUTFS_MAX_KEY_SIZE);
WARN_ON_ONCE(key_len > buf_len);
key->data = data;
key->key_len = key_len;
key->buf_len = buf_len;
}
/*
* Point the key buf, usually statically allocated, at an existing
@@ -27,11 +43,7 @@ void scoutfs_key_dec_cur_len(struct scoutfs_key_buf *key);
static inline void scoutfs_key_init(struct scoutfs_key_buf *key,
void *data, u16 len)
{
WARN_ON_ONCE(len > SCOUTFS_MAX_KEY_SIZE);
key->data = data;
key->key_len = len;
key->buf_len = len;
scoutfs_key_init_buf_len(key, data, len, len);
}
/*