/* * Copyright 2000 by Hans Reiser, licensing governed by reiserfs/README */ #include <linux/string.h> #include <linux/time.h> #include <linux/uuid.h> #include "reiserfs.h" /* find where objectid map starts */ #define objectid_map(s,rs) … #ifdef CONFIG_REISERFS_CHECK static void check_objectid_map(struct super_block *s, __le32 * map) { … } #else static void check_objectid_map(struct super_block *s, __le32 * map) {; } #endif /* * When we allocate objectids we allocate the first unused objectid. * Each sequence of objectids in use (the odd sequences) is followed * by a sequence of objectids not in use (the even sequences). We * only need to record the last objectid in each of these sequences * (both the odd and even sequences) in order to fully define the * boundaries of the sequences. A consequence of allocating the first * objectid not in use is that under most conditions this scheme is * extremely compact. The exception is immediately after a sequence * of operations which deletes a large number of objects of * non-sequential objectids, and even then it will become compact * again as soon as more objects are created. Note that many * interesting optimizations of layout could result from complicating * objectid assignment, but we have deferred making them for now. */ /* get unique object identifier */ __u32 reiserfs_get_unused_objectid(struct reiserfs_transaction_handle *th) { … } /* makes object identifier unused */ void reiserfs_release_objectid(struct reiserfs_transaction_handle *th, __u32 objectid_to_release) { … } int reiserfs_convert_objectid_map_v1(struct super_block *s) { … }