[PATCH] UUID & volume labels support for reiserfs

Oleg Drokin
2002-01-09T12:55:25Z

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

Hello!

Attached is the patch that reserves space for volume label and UUID in reiserfs v3.6 superblock.
It also generates random UUID for volumes converted from 3.5 to 3.6 format by the kernel.
Original patch author is Andreas Dilger <adilger@turbolabs.com>.
Please apply.

Bye,
Oleg

[-- Attachment #2: v3.6_uuid_support-1.diff --]
[-- Type: text/plain, Size: 1650 bytes --]

--- linux/fs/reiserfs/objectid.c.orig Tue Jan 8 16:04:06 2002
+++ linux/fs/reiserfs/objectid.c Tue Jan 8 17:45:15 2002
@@ -5,6 +5,7 @@
#include <linux/config.h>
#include <linux/string.h>
#include <linux/locks.h>
+#include <linux/random.h>
#include <linux/sched.h>
#include <linux/reiserfs_fs.h>

@@ -195,6 +196,10 @@

/* set the max size so we don't overflow later */
disk_sb->s_oid_maxsize = cpu_to_le16(new_size) ;
+
+ /* Zero out label and generate random UUID */
+ memset(disk_sb->s_label, 0, sizeof(disk_sb->s_label)) ;
+ generate_random_uuid(disk_sb->s_uuid);

/* finally, zero out the unused chunk of the new super */
memset(disk_sb->s_unused, 0, sizeof(disk_sb->s_unused)) ;
--- linux/include/linux/reiserfs_fs_sb.h.orig Tue Jan 8 16:05:59 2002
+++ linux/include/linux/reiserfs_fs_sb.h Tue Jan 8 17:34:22 2002
@@ -61,7 +61,13 @@
superblock. -Hans */
__u16 s_reserved;
__u32 s_inode_generation;
- char s_unused[124] ; /* zero filled by mkreiserfs */
+ __u32 s_flags; /* Right now used only by inode-attributes, if enabled */
+ unsigned char s_uuid[16]; /* filesystem unique identifier */
+ unsigned char s_label[16]; /* filesystem volume label */
+ char s_unused[88] ; /* zero filled by mkreiserfs and
+ * reiserfs_convert_objectid_map_v1()
+ * so any additions must be updated
+ * there as well. */
} __attribute__ ((__packed__));

#define SB_SIZE (sizeof(struct reiserfs_super_block))