mirror of
https://github.com/versity/scoutfs.git
synced 2026-07-20 06:52:20 +00:00
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:
+17
-5
@@ -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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user