diff --git a/kmod/src/btree.c b/kmod/src/btree.c index ab2387bb..9342b209 100644 --- a/kmod/src/btree.c +++ b/kmod/src/btree.c @@ -1388,7 +1388,7 @@ int scoutfs_btree_since(struct super_block *sb, */ int scoutfs_btree_prev(struct super_block *sb, struct scoutfs_btree_root *root, struct scoutfs_key *first, struct scoutfs_key *last, - struct scoutfs_key *found, + struct scoutfs_key *found, u64 *found_seq, struct scoutfs_btree_val *val) { struct scoutfs_btree_item *item; @@ -1433,6 +1433,8 @@ int scoutfs_btree_prev(struct super_block *sb, struct scoutfs_btree_root *root, item = pos_item(bt, pos); if (cmp == 0 || scoutfs_key_cmp(&item->key, first) >= 0) { *found = item->key; + if (found_seq) + *found_seq = le64_to_cpu(item->seq); if (val) ret = copy_to_val(val, item); else diff --git a/kmod/src/btree.h b/kmod/src/btree.h index 6df548d1..dec2310c 100644 --- a/kmod/src/btree.h +++ b/kmod/src/btree.h @@ -56,7 +56,7 @@ int scoutfs_btree_next(struct super_block *sb, struct scoutfs_btree_root *root, struct scoutfs_btree_val *val); int scoutfs_btree_prev(struct super_block *sb, struct scoutfs_btree_root *root, struct scoutfs_key *first, struct scoutfs_key *last, - struct scoutfs_key *found, + struct scoutfs_key *found, u64 *found_seq, struct scoutfs_btree_val *val); int scoutfs_btree_dirty(struct super_block *sb, struct scoutfs_btree_root *root,