* [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-14 2:03 [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-11 23:22 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.