Green will review this next week when he gets back from vacation. If he does not, let me know.
Thanks for your submission, Hans Jordan Breeding wrote: > Andreas Dilger wrote: > >> On Aug 29, 2002 05:20 +0000, [EMAIL PROTECTED] wrote: >> >>> This patch was originally intended to try and add >>> support for reiserfs labels to mount from >>> util-linux-2.11u found on ftp.kernel.org. It is not >>> quite working (if I try to mount something by label the >>> mount program seg. faults), and I won't have time to >>> debug and look at it until at least tomorrow night. I am >>> sure there is something trivial or stupid that I have >>> done wrong. At least it is a starting point, if someone >>> knows what is wrong and knows how to fix it quickly then >>> feel free to fix the patch and send it back to me or send >>> it to the util-linux maintainer. >> >> >> >> No patch. >> >> Cheers, Andreas >> -- >> Andreas Dilger >> http://www-mddsp.enel.ucalgary.ca/People/adilger/ >> http://sourceforge.net/projects/ext2resize/ >> >> > > Sorry about that. The patch is attached this time. > > Jordan Breeding > >------------------------------------------------------------------------ > >diff -urN util-linux-2.11u/mount/linux_fs.h util-linux-2.11u-patched/mount/linux_fs.h >--- util-linux-2.11u/mount/linux_fs.h 2002-08-03 16:09:43.000000000 -0500 >+++ util-linux-2.11u-patched/mount/linux_fs.h 2002-08-29 00:54:27.000000000 -0500 >@@ -83,12 +83,24 @@ > u_char s_oid_cursize[2]; > u_char s_state[2]; > u_char s_magic[12]; >+ u_char s_hash_function_code[4]; >+ u_char s_tree_height[2]; >+ u_char s_bmap_nr[2]; >+ u_char s_version[2]; >+ u_char s_reserved[2]; >+ u_char s_inode_generation[4]; >+ u_char s_flags[4]; >+ u_char s_uuid[16]; >+ u_char s_label[16]; >+ u_char s_unused[88]; > }; > #define REISERFS_SUPER_MAGIC_STRING "ReIsErFs" > #define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs" > #define REISERFS_DISK_OFFSET_IN_BYTES (64 * 1024) > /* the spot for the super in versions 3.5 - 3.5.10 (inclusive) */ > #define REISERFS_OLD_DISK_OFFSET_IN_BYTES (8 * 1024) >+#define reiserfsmagic(s) assemble2le(s.s_magic) >+ > > #define _XIAFS_SUPER_MAGIC 0x012FD16D > struct xiafs_super_block { >diff -urN util-linux-2.11u/mount/mount_by_label.c >util-linux-2.11u-patched/mount/mount_by_label.c >--- util-linux-2.11u/mount/mount_by_label.c 2002-08-03 19:07:10.000000000 -0500 >+++ util-linux-2.11u-patched/mount/mount_by_label.c 2002-08-29 00:55:46.000000000 >-0500 >@@ -81,6 +81,7 @@ > struct ext2_super_block e2sb; > struct xfs_super_block xfsb; > struct jfs_super_block jfssb; >+ struct reiserfs_super_block rfssb; > > fd = open(device, O_RDONLY); > if (fd < 0) >@@ -128,6 +129,15 @@ > } > rv = 0; > } >+ else if (lseek(fd, REISERFS_DISK_OFFSET_IN_BYTES, SEEK_SET) == >REISERFS_DISK_OFFSET_IN_BYTES >+ && read(fd, (char *) &rfssb, sizeof(rfssb)) == sizeof(rfssb) >+ && (reiserfsmagic(rfssb) == REISER2FS_SUPER_MAGIC_STRING)) { >+ memcpy(uuid, rfssb.s_uuid, sizeof(rfssb.s_uuid)); >+ namesize = sizeof(rfssb.s_label); >+ if ((*label = calloc(namesize + 1, 1)) != NULL) >+ memcpy(*label, rfssb.s_label, namesize); >+ rv = 0; >+ } > > close(fd); > return rv; > >
