All of lore.kernel.org
 help / color / mirror / Atom feed
* [Cluster-devel] cluster/gfs2/convert gfs2_convert.c
@ 2006-06-19 20:46 rpeterso
  0 siblings, 0 replies; 7+ messages in thread
From: rpeterso @ 2006-06-19 20:46 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	rpeterso at sourceware.org	2006-06-19 20:46:17

Modified files:
	gfs2/convert   : gfs2_convert.c 

Log message:
	Converted file systems had no journals.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/convert/gfs2_convert.c.diff?cvsroot=cluster&r1=1.3&r2=1.4

--- cluster/gfs2/convert/gfs2_convert.c	2006/06/12 20:40:32	1.3
+++ cluster/gfs2/convert/gfs2_convert.c	2006/06/19 20:46:17	1.4
@@ -654,7 +654,7 @@
 		log_crit("journal inode size invalid\n");
 		goto fail;
 	}
-	sdp->orig_journals = j;
+	sdp->md.journals = sdp->orig_journals = j;
 	return 0;
 
  fail:



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Cluster-devel] cluster/gfs2/convert gfs2_convert.c
@ 2006-07-17 22:06 rpeterso
  0 siblings, 0 replies; 7+ messages in thread
From: rpeterso @ 2006-07-17 22:06 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	rpeterso at sourceware.org	2006-07-17 22:06:19

Modified files:
	gfs2/convert   : gfs2_convert.c 

Log message:
	Accomodate changes Steve Whitehouse made to gfs2's dinode structure.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/convert/gfs2_convert.c.diff?cvsroot=cluster&r1=1.4&r2=1.5

--- cluster/gfs2/convert/gfs2_convert.c	2006/06/19 20:46:17	1.4
+++ cluster/gfs2/convert/gfs2_convert.c	2006/07/17 22:06:18	1.5
@@ -35,6 +35,8 @@
 #include "libgfs2.h"
 #include "global.h"
 
+/* The following declares are needed because gfs2 can't have  */
+/* dependencies on gfs1:                                      */
 #define RGRP_STUFFED_BLKS(sb) (((sb)->sb_bsize - sizeof(struct gfs2_rgrp)) * GFS2_NBBY)
 #define RGRP_BITMAP_BLKS(sb) (((sb)->sb_bsize - sizeof(struct gfs2_meta_header)) * GFS2_NBBY)
 
@@ -117,6 +119,52 @@
 	char sb_reserved[96];
 };
 
+struct gfs1_dinode {
+	struct gfs2_meta_header di_header;
+
+	struct gfs2_inum di_num; /* formal inode # and block address */
+
+	uint32_t di_mode;	/* mode of file */
+	uint32_t di_uid;	/* owner's user id */
+	uint32_t di_gid;	/* owner's group id */
+	uint32_t di_nlink;	/* number (qty) of links to this file */
+	uint64_t di_size;	/* number (qty) of bytes in file */
+	uint64_t di_blocks;	/* number (qty) of blocks in file */
+	int64_t di_atime;	/* time last accessed */
+	int64_t di_mtime;	/* time last modified */
+	int64_t di_ctime;	/* time last changed */
+
+	/*  Non-zero only for character or block device nodes  */
+	uint32_t di_major;	/* device major number */
+	uint32_t di_minor;	/* device minor number */
+
+	/*  Block allocation strategy  */
+	uint64_t di_rgrp;	/* dinode rgrp block number */
+	uint64_t di_goal_rgrp;	/* rgrp to alloc from next */
+	uint32_t di_goal_dblk;	/* data block goal */
+	uint32_t di_goal_mblk;	/* metadata block goal */
+
+	uint32_t di_flags;	/* GFS_DIF_... */
+
+	/*  struct gfs_rindex, struct gfs_jindex, or struct gfs_dirent */
+	uint32_t di_payload_format;  /* GFS_FORMAT_... */
+	uint16_t di_type;	/* GFS_FILE_... type of file */
+	uint16_t di_height;	/* height of metadata (0 == stuffed) */
+	uint32_t di_incarn;	/* incarnation (unused, see gfs_meta_header) */
+	uint16_t di_pad;
+
+	/*  These only apply to directories  */
+	uint16_t di_depth;	/* Number of bits in the table */
+	uint32_t di_entries;	/* The # (qty) of entries in the directory */
+
+	/*  This formed an on-disk chain of unused dinodes  */
+	struct gfs2_inum di_next_unused;  /* used in old versions only */
+
+	uint64_t di_eattr;	/* extended attribute block number */
+
+	char di_reserved[56];
+};
+
 struct inode_block {
 	osi_list_t list;
 	uint64_t di_addr;
@@ -282,10 +330,13 @@
 	/*       don't want to shift the data around.                  */
 	/* ----------------------------------------------------------- */
 	if (inode_was_gfs1) {
+		struct gfs1_dinode *gfs1_dinode_struct;
+
+		gfs1_dinode_struct = (struct gfs1_dinode *)&inode->i_di;
 		inode->i_di.di_goal_meta = inode->i_di.di_goal_data;
 		inode->i_di.di_goal_data = 0; /* make sure the upper 32b are 0 */
-		inode->i_di.di_goal_data = inode->i_di.__pad[0];
-		inode->i_di.__pad[1] = 0;
+		inode->i_di.di_goal_data = gfs1_dinode_struct->di_goal_dblk;
+		inode->i_di.di_generation = 0;
 	}
 	
 	gfs2_dinode_out(&inode->i_di, bh->b_data);



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Cluster-devel] cluster/gfs2/convert gfs2_convert.c
@ 2006-08-11 23:22 rpeterso
  0 siblings, 0 replies; 7+ messages in thread
From: rpeterso @ 2006-08-11 23:22 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	rpeterso at sourceware.org	2006-08-11 23:22:09

Modified files:
	gfs2/convert   : gfs2_convert.c 

Log message:
	Reset other inode bits when temporarily setting S_IFDIR bit.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/convert/gfs2_convert.c.diff?cvsroot=cluster&r1=1.5&r2=1.6

--- cluster/gfs2/convert/gfs2_convert.c	2006/07/17 22:06:18	1.5
+++ cluster/gfs2/convert/gfs2_convert.c	2006/08/11 23:22:09	1.6
@@ -787,6 +787,7 @@
 	/* apparently only for directories.  So we need to fake out libgfs2  */
 	/* so that it adjusts for the metaheader by faking out the inode to  */
 	/* look like a directory, temporarily.                               */
+	sbp->md.riinode->i_di.di_mode &= ~S_IFMT;
 	sbp->md.riinode->i_di.di_mode |= S_IFDIR; 
 	if (ri_update(sbp, &rgcount)){
 		log_crit("Unable to fill in resource group information.\n");



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Cluster-devel] cluster/gfs2/convert gfs2_convert.c
@ 2006-08-14  2:03 rpeterso
  0 siblings, 0 replies; 7+ messages in thread
From: rpeterso @ 2006-08-14  2:03 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	rpeterso at sourceware.org	2006-08-14 03:03:29

Modified files:
	gfs2/convert   : gfs2_convert.c 

Log message:
	Fixed segfault converting bitmaps during inode conversion.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/convert/gfs2_convert.c.diff?cvsroot=cluster&r1=1.6&r2=1.7

--- cluster/gfs2/convert/gfs2_convert.c	2006/08/11 23:22:09	1.6
+++ cluster/gfs2/convert/gfs2_convert.c	2006/08/14 02:03:29	1.7
@@ -415,7 +415,8 @@
                     /* figure out offset of first bitmap byte for this map: */
 					buf_offset = (blk) ? sizeof(struct gfs2_meta_header) :
 						sizeof(struct gfs2_rgrp);
-					if (bitmap_byte < sbp->bsize) { /* if it's on this page */
+					/* if it's on this page */
+					if (buf_offset + bitmap_byte < sbp->bsize) {
 						rgd->bh[blk]->b_data[buf_offset + bitmap_byte] &=
 							~(0x03 << (GFS2_BIT_SIZE * byte_bit));
 						rgd->bh[blk]->b_data[buf_offset + bitmap_byte] |=



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Cluster-devel] cluster/gfs2/convert gfs2_convert.c
@ 2006-11-08 21:14 rpeterso
  0 siblings, 0 replies; 7+ messages in thread
From: rpeterso @ 2006-11-08 21:14 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	rpeterso at sourceware.org	2006-11-08 21:14:01

Modified files:
	gfs2/convert   : gfs2_convert.c 

Log message:
	This is the fix for Bugzilla Bug 214513: gfs2_convert must reject
	file systems with block size != 4K.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/convert/gfs2_convert.c.diff?cvsroot=cluster&r1=1.7&r2=1.8

--- cluster/gfs2/convert/gfs2_convert.c	2006/08/14 02:03:29	1.7
+++ cluster/gfs2/convert/gfs2_convert.c	2006/11/08 21:14:01	1.8
@@ -773,6 +773,17 @@
 		close(sbp->device_fd);
 		exit(-1);
 	}
+	if (sbp->sd_sb.sb_bsize != GFS2_DEFAULT_BSIZE) {
+		log_crit("Error: GFS2 only supports a 4K block size.\n");
+		log_crit("Volume %s has a block size of ", device);
+		if (!(sbp->sd_sb.sb_bsize % 1024)) /* if even K boundary */
+			log_crit("%dK bytes.\n", sbp->sd_sb.sb_bsize / 1024);
+		else
+			log_crit("%d bytes.\n", sbp->sd_sb.sb_bsize);
+		log_crit("This file system cannot be converted with this tool.\n");
+		close(sbp->device_fd);
+		exit(-1);
+	}
 	/* get gfs1 rindex inode - gfs1's rindex inode ptr became __pad2 */
 	gfs2_inum_in(&inum, (char *)&raw_gfs1_ondisk_sb.sb_rindex_di);
 	sbp->md.riinode = gfs2_load_inode(sbp, inum.no_addr);



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Cluster-devel] cluster/gfs2/convert gfs2_convert.c
@ 2006-11-08 21:15 rpeterso
  0 siblings, 0 replies; 7+ messages in thread
From: rpeterso @ 2006-11-08 21:15 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL5
Changes by:	rpeterso at sourceware.org	2006-11-08 21:15:21

Modified files:
	gfs2/convert   : gfs2_convert.c 

Log message:
	This is the fix for Bugzilla Bug 214513: gfs2_convert must reject
	file systems with block size != 4K.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/convert/gfs2_convert.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.7&r2=1.7.2.1

--- cluster/gfs2/convert/gfs2_convert.c	2006/08/14 02:03:29	1.7
+++ cluster/gfs2/convert/gfs2_convert.c	2006/11/08 21:15:21	1.7.2.1
@@ -773,6 +773,17 @@
 		close(sbp->device_fd);
 		exit(-1);
 	}
+	if (sbp->sd_sb.sb_bsize != GFS2_DEFAULT_BSIZE) {
+		log_crit("Error: GFS2 only supports a 4K block size.\n");
+		log_crit("Volume %s has a block size of ", device);
+		if (!(sbp->sd_sb.sb_bsize % 1024)) /* if even K boundary */
+			log_crit("%dK bytes.\n", sbp->sd_sb.sb_bsize / 1024);
+		else
+			log_crit("%d bytes.\n", sbp->sd_sb.sb_bsize);
+		log_crit("This file system cannot be converted with this tool.\n");
+		close(sbp->device_fd);
+		exit(-1);
+	}
 	/* get gfs1 rindex inode - gfs1's rindex inode ptr became __pad2 */
 	gfs2_inum_in(&inum, (char *)&raw_gfs1_ondisk_sb.sb_rindex_di);
 	sbp->md.riinode = gfs2_load_inode(sbp, inum.no_addr);



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Cluster-devel] cluster/gfs2/convert gfs2_convert.c
@ 2006-11-15 20:16 rpeterso
  0 siblings, 0 replies; 7+ messages in thread
From: rpeterso @ 2006-11-15 20:16 UTC (permalink / raw)
  To: cluster-devel.redhat.com

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL50
Changes by:	rpeterso at sourceware.org	2006-11-15 20:16:28

Modified files:
	gfs2/convert   : gfs2_convert.c 

Log message:
	Resolves: bz214513
	gfs2_convert must reject file systems with block size != 4K

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/convert/gfs2_convert.c.diff?cvsroot=cluster&only_with_tag=RHEL50&r1=1.7&r2=1.7.4.1

--- cluster/gfs2/convert/gfs2_convert.c	2006/08/14 02:03:29	1.7
+++ cluster/gfs2/convert/gfs2_convert.c	2006/11/15 20:16:28	1.7.4.1
@@ -773,6 +773,17 @@
 		close(sbp->device_fd);
 		exit(-1);
 	}
+	if (sbp->sd_sb.sb_bsize != GFS2_DEFAULT_BSIZE) {
+		log_crit("Error: GFS2 only supports a 4K block size.\n");
+		log_crit("Volume %s has a block size of ", device);
+		if (!(sbp->sd_sb.sb_bsize % 1024)) /* if even K boundary */
+			log_crit("%dK bytes.\n", sbp->sd_sb.sb_bsize / 1024);
+		else
+			log_crit("%d bytes.\n", sbp->sd_sb.sb_bsize);
+		log_crit("This file system cannot be converted with this tool.\n");
+		close(sbp->device_fd);
+		exit(-1);
+	}
 	/* get gfs1 rindex inode - gfs1's rindex inode ptr became __pad2 */
 	gfs2_inum_in(&inum, (char *)&raw_gfs1_ondisk_sb.sb_rindex_di);
 	sbp->md.riinode = gfs2_load_inode(sbp, inum.no_addr);



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2006-11-15 20:16 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-11 23:22 [Cluster-devel] cluster/gfs2/convert gfs2_convert.c rpeterso
  -- strict thread matches above, loose matches on Subject: below --
2006-11-15 20:16 rpeterso
2006-11-08 21:15 rpeterso
2006-11-08 21:14 rpeterso
2006-08-14  2:03 rpeterso
2006-07-17 22:06 rpeterso
2006-06-19 20:46 rpeterso

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.