[Ocfs2-tools-commits] smushran commits r1083 - trunk/tunefs.ocfs2
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Fri Sep 16 17:26:45 CDT 2005
Author: smushran
Date: 2005-09-16 17:26:44 -0500 (Fri, 16 Sep 2005)
New Revision: 1083
Modified:
trunk/tunefs.ocfs2/tunefs.c
Log:
backing out tunefs changes
Modified: trunk/tunefs.ocfs2/tunefs.c
===================================================================
--- trunk/tunefs.ocfs2/tunefs.c 2005-09-16 22:19:16 UTC (rev 1082)
+++ trunk/tunefs.ocfs2/tunefs.c 2005-09-16 22:26:44 UTC (rev 1083)
@@ -64,7 +64,7 @@
typedef struct _ocfs2_tune_opts {
uint16_t num_slots;
- uint64_t num_blocks;
+ uint64_t vol_size;
uint64_t jrnl_size;
char *vol_label;
char *progname;
@@ -79,14 +79,13 @@
static ocfs2_tune_opts opts;
static ocfs2_filesys *fs_gbl = NULL;
static int cluster_locked = 0;
-static int resize = 1;
static void usage(const char *progname)
{
fprintf(stderr, "usage: %s [-N number-of-node-slots] "
"[-L volume-label]\n"
- "\t[-J journal-options] [-S] [-qvV] "
- "device [blocks-count]\n",
+ "\t[-J journal-options] [-S volume-size] [-qvV] "
+ "device\n",
progname);
exit(0);
}
@@ -237,8 +236,6 @@
int ret;
char *dummy;
uint64_t val;
- int resize = 0;
- errcode_t ret = 0;
static struct option long_options[] = {
{ "label", 1, 0, 'L' },
@@ -259,7 +256,7 @@
opts.prompt = 1;
while (1) {
- c = getopt_long(argc, argv, "L:N:J:SvqVx", long_options,
+ c = getopt_long(argc, argv, "L:N:J:S:vqVx", long_options,
NULL);
if (c == -1)
@@ -302,7 +299,10 @@
break;
case 'S':
- resize = 1;
+ ret = get_number(optarg, &val);
+ if (ret)
+ exit(1);
+ opts.vol_size = val;
break;
case 'v':
@@ -337,67 +337,12 @@
usage(opts.progname);
opts.device = strdup(argv[optind]);
- optind++;
- if (optind < argc) {
- ops.num_blocks = strtoull(argv[optind], &dummy, 0);
- if ((*dummy)) {
- com_err(opts.progname, 0, "Block count bad - %s",
- argv[optind]);
- exit(1);
- }
- optind++;
- }
-
- if (optind < argc)
- usage(progname);
-
opts.tune_time = time(NULL);
return ;
}
-static void get_vol_size(ocfs2_filesys *fs)
-{
- errcode_t ret = 0;
- uint64_t num_blocks;
-
- ret = ocfs2_get_device_size(opts.device, fs->fs_blocksize,
- &num_blocks);
- if (ret) {
- com_err(opts.progname, ret, "while getting size of device %s",
- opts.device);
- exit(1);
- }
-
- if (!opts.num_blocks ||
- opts.num_blocks > num_blocks)
- opts.num_blocks = num_blocks;
-
- return ;
-}
-
-static int validate_vol_size(ocfs2_filesys *fs)
-{
- uint64_t num_blocks;
-
- if (opts.num_blocks < fs->fs_blocks) {
- printf("Cannot reduce volume size from "
- "%"PRIu64" blocks to %"PRIu64" blocks\n",
- fs->fs_blocks, opts.num_blocks);
- return -1;
- }
-
- num_blocks = ocfs2_clusters_to_blocks(fs, 1);
- if (num_blocks > (opts.num_blocks - fs->fs_blocks)) {
- printf("Cannot increase volume size less than "
- "%d blocks\n", num_blocks);
- return -1;
- }
-
- return 0;
-}
-
static errcode_t add_slots(ocfs2_filesys *fs)
{
errcode_t ret = 0;
@@ -683,68 +628,11 @@
return ret;
}
-#if 0
-typedef struct _ocfs2_chain_list {
-/*00*/ __u16 cl_cpg; /* Clusters per Block Group */
- __u16 cl_bpc; /* Bits per cluster */
- __u16 cl_count; /* Total chains in this list */
- __u16 cl_next_free_rec; /* Next unused chain slot */
- __u64 cl_reserved1;
-/*10*/ ocfs2_chain_rec cl_recs[0]; /* Chain records */
-} ocfs2_chain_list;
-typedef struct _ocfs2_chain_rec {
- __u32 c_free; /* Number of free bits in this chain. */
- __u32 c_total; /* Number of total bits in this chain */
- __u64 c_blkno; /* Physical disk offset (blocks) of 1st group */
-} ocfs2_chain_rec;
-#endif
-
static errcode_t update_volume_size(ocfs2_filesys *fs, int *changed)
{
- errcode_t ret = 0;
- ocfs2_dinode *di;
- uint64_t blkno;
- char *buf = NULL;
- ocfs2_chain_list *cl;
- ocfs2_chain_rec *cr;
-
- num_clusters = ocfs2_blocks_to_clusters(fs, opts.num_blocks);
- new_clusters = num_clusters - fs->fs_clusters;
-
- /* read global bitmap */
- ret = ocfs2_malloc_block(fs->fs_io, &buf);
- if (ret)
- return ret;
-
- ret = ocfs2_lookup_system_inode(fs, GLOBAL_BITMAP_SYSTEM_INODE, 0,
- &blkno);
- if (ret)
- goto bail;
-
- ret = ocfs2_read_inode(fs, blkno, buf);
- if (ret)
- goto bail;
-
- di = (ocfs2_dinode *)buf;
- cl = &(di->id2.i_chain);
-
- if (cl->cl_next_free_rec <= cl->cl_count) {
- cr = cl->cl_recs[cl->cl_next_free_rec - 1];
- if (cr->total < cl->cl_cpg) {
- t = cl->cl_cpg - cr->total;
- }
-
- }
-
- num_clusters = ocfs2_blocks_to_clusters(fs, opts.num_blocks);
-
-
-bail:
- if (buf)
- ocfs2_free(&buf);
-
- return ret;
+ printf("TODO: update_volume_size\n");
+ return 0;
}
int main(int argc, char **argv)
@@ -754,10 +642,11 @@
int upd_label = 0;
int upd_slots = 0;
int upd_jrnls = 0;
- int upd_blocks = 0;
+ int upd_vsize = 0;
uint16_t tmp;
uint64_t def_jrnl_size = 0;
uint64_t num_clusters;
+ uint64_t vol_size = 0;
int dirty = 0;
initialize_ocfs_error_table();
@@ -794,9 +683,6 @@
}
fs_gbl = fs;
- if (resize)
- get_vol_size(fs);
-
ret = ocfs2_initialize_dlm(fs);
if (ret) {
com_err(opts.progname, ret, " ");
@@ -860,7 +746,7 @@
}
}
}
-#if 0
+
/* validate volume size */
if (opts.vol_size) {
num_clusters = (opts.vol_size + fs->fs_clustersize - 1) >>
@@ -874,21 +760,7 @@
printf("Changing volume size %"PRIu64" to %"PRIu64"\n",
vol_size, opts.vol_size);
}
-#endif
- /* validate volume size */
- if (opts.num_blocks) {
- if (validate_vol_size(ocfs2_filesys *fs))
- opts.num_blocks = 0;
- else
- printf("Changing volume size %"PRIu64" blocks to "
- "%"PRIu64" blocks\n", fs->fs_blocks,
- opts.num_blocks);
- }
- if (!opts.vol_label && !opts.num_slots &&
- !opts.jrnl_size && !opts.num_blocks)
- goto unlock;
-
/* Abort? */
if (opts.prompt) {
printf("Proceed (y/N): ");
@@ -930,18 +802,18 @@
}
/* update volume size */
- if (opts.num_blocks) {
- ret = update_volume_size(fs, &upd_blocks);
+ if (opts.vol_size) {
+ ret = update_volume_size(fs, &upd_vsize);
if (ret) {
com_err(opts.progname, ret, "while updating volume size");
goto unlock;
}
- if (upd_blocks)
+ if (upd_vsize)
printf("Resized volume\n");
}
/* write superblock */
- if (upd_label || upd_slots || upd_blocks) {
+ if (upd_label || upd_slots || upd_vsize) {
block_signals(SIG_BLOCK);
ret = ocfs2_write_super(fs);
if (ret) {
More information about the Ocfs2-tools-commits
mailing list